Talentplug WebService Documentation
Version 1.13.1 - February 2026
This document is intended for ATS partners and explains how to interact with the Web Service provided by Talentplug in order to interface with our IS and thus multi-distribute from ATS.
Objective
The purpose of the webservice is to enable communication with Talentplug via an XML feed that will save a job offer as a draft and return a URL allowing the job offer to be finalised (SendToUbipostingLite).
The URL returned will allow the job posting to be finalised by providing the recruiter with an interface containing the pre-filled job posting. The recruiter can then complete and validate it.
Environment
As part of the interfacing between our two solutions, a dedicated account will be created for your testing. We will provide you with the following:
- An APIKey
- A login
- A password
Access to the web service
Web service address
You can run your tests directly on this environment, available at the following address:
https://v2.mytalentplug.com/webservice/WebService.asmx?wsdl
SendToUbipostingLite method
This method allows you to send an offer without pre-selecting jobboard and returns a URL to an interface where you can finalise the offer entry.
It takes four pieces of information as parameters:
| Field name | Field type | Description |
|---|---|---|
apiK | Text | Unique key identifying the partner (provided by TalentPlug) |
login | Text | Login ID of the user posting the offer (100 characters max) |
passwd | Text | User password |
xml | XML | Offer content in XML format |
XML content
To create an offer, the following fields are required as a minimum:
- The release date
- The reference
- The title
- The action
- The job description
- A unique
Offerkey_ID - A method for receiving the application (email, URL or API)
The Application API documentation can be found here: API Documentation
The offerkey_ID is generated by you (ATS) and is unique to identify the offer for each action.
The table below summarises the tags that are present and mandatory in the XML:
| Field | Field type |
|---|---|
posting_date | Date |
job_reference | Text (75 characters max) |
job_title | Text (75 characters max) |
job_description | Text (2500 characters max) |
application_email / application_url | Text (100 characters max) |
Offerkey_ID | Varchar (50 characters max) |
action | Text |
CDATA and special characters
For "Text" type tags, it is advisable to encapsulate the values in a CDATA section.
To take into account special characters such as accents or apostrophes, it is advisable to set a content-type parameter defined as text/plain;charset=utf-8 in the request to the Web Service.
HTML is not supported by the Web Service.
Available fields
| Data | Tag name | Special feature |
|---|---|---|
| Unique offer identifier | offerkey_ID | Mandatory (50 characters max) |
| Action to be taken | action_name | Required |
| Release date | posting_date | Optional, Date |
| Job title | job_title | Required (75 characters max) |
| Job reference | job_reference | Required (75 characters max) |
| Company ID | companyID | Option |
| Company URL | company_url | Optional |
| Company description | company_description | Optional (2500 characters max) |
| Job description | job_description | Required (2500 characters max) |
| Industry | job_industry | Optional, List |
| Second industry sector | job_industry2 | Optional, depends on sites used, List |
| Function | job_function | Optional, List |
| Second function | job_function2 | Optional, depends on sites used, List |
| Job type | job_type | Optional, List |
| Status | job_status | Optional, List |
| Type of employment | job_contract | Optional, List |
| Contract duration | job_duration | Optional, List |
| Start date | job_startdate | Optional |
| Required profile | applicant_profile | Optional (2500 characters max) |
| Level of education | applicant_degree | Optional, List |
| Level of experience | applicant_experience | Optional, List |
| Skills | applicant_skills | Optional (75 characters max) |
| Minimum salary | salary_from | Optional, List |
| Maximum salary | salary_to | Optional, List |
| Salary currency | salary_currency | Optional, List |
| Salary per | salary_per | Optional, List |
| Salary benefits | salary_benefits | Optional (75 characters max) |
| Address | location_street | Optional |
| Postcode | location_zipcode | Optional |
| Town | location_town | Optional |
| County | location_subadministrativearea | Optional, List |
| Second department | location_subadministrativearea2 | Optional, depends on sites used, List |
| Region | location_administrativearea | Optional, List |
| Second region | location_administrativearea2 | Optional, depends on sites used, List |
| Country | location_country | Optional, List |
| Application email | application_email | Required if application_url is empty (100 characters max) |
| Application URL | application_url | Required if application_email is empty |
| Name of recruitment officer | contact_name | Optional |
| Recruiter's telephone number | contact_phone | Optional |
| Alternative Email | uniquement_email | Optional, can be enabled for media that do not support URL mode |
| Redirect URL | redirectionUrl | Option |
| Customer platform language | offer_language | Option (French = 24954, English = 4644) |
| Publish "under the name of" | Published_as | Option |
| Retrieve applications via API | enable_application_api | True, Option |
| Force republishing | force | True, Option |
The names of these tags are configurable and can be adapted to the service provider's requirements. Initially, we set up your ATS's default feed with a standard configuration.
Available actions
| Value | Usage |
|---|---|
add | Add a new job offer |
edit | Modify an existing offer |
delete | Archive an existing offer |
republish | Republishing an offer |
The values shown are the default values; these can be customised for the partner.
The republish command on an active offer causes it to be archived, and the publication of a new copy on H+6.
If the offer has been archived for more than one day, republishing takes place immediately (depending on how often the advertisements are retrieved by the various jobboards).
By default, when republishing, if an error is detected on at least one of the jobboard, the entire publication on all media will be blocked, and an error will be returned to you.
Force
This option allows you to republish an advertisement even if one of the sites included in the initial offer is no longer available at the time of republishing:
<force>true</force>
Values
The values in our repository can be retrieved by identifier using the following two methods:
- GetListNames: Returns the names of the different value lists in our repository
- GetListValues: Returns the values from a list in our repository
However, it is possible to configure the XML so that you can use your own repository values. To do this, you will need to provide us with the lists of values corresponding to the fields for which you wish to use them so that we can configure them in our solution.
Templates via the SendToUbipostingLite method
See the available request templates:
Options
Subsidiaries
For customers who wish to distribute specifically to one of their subsidiaries, an option is available via the enterpriseID tag.
The company ID in the request means that users do not have to select their subsidiary when they arrive on Talentplug and link a given user to their parent company on Talentplug. There is therefore only one possible channel for this user.
Below are the different user configuration options for the various company configurations (determined at the time of configuration):
- Parent company and 0 subsidiaries: admin or user linked to parent
- Parent company and 1 subsidiary: admin attached to parent and subsidiary, user linked to parent and subsidiary, or user linked to subsidiary only
- Parent company and 2 subsidiaries: admin linked to parent and both subsidiaries, user linked to parent and both subsidiaries, user linked to 1 or 2 subsidiaries
- Parent company and N subsidiaries: admin linked to parent and N subsidiaries, user linked to parent and N subsidiaries, or user linked to N subsidiaries
When you send a request with Login/Password/Entity, the user is logged into their Talentplug account. If we have granted them rights to multiple entities, the user can choose another entity for distribution if they wish in our step 1.
A company ID that is not the one previously included in the creation request will return an error on editing, republishing and unpublishing actions.
Similarly, editing, republishing and unpublishing actions will result in an error if you do not have a company ID and the user who wishes to perform the action is not linked to the parent company.
Two possible configurations:
- Simple mode: 1 TP user = 1 TP entity — requests contain IDs for creations, archiving, editing and republishing
- Multi-entity mode: 1 TP user = X TP entities — requests do not contain IDs; the user chooses their entity on Talentplug, and you archive, republish, and edit using only the (unique)
offer_key_id
Not sending the ID simplifies your queries and any inconsistencies as soon as a change is made to a user's entities at our level.
Redirection at the end of publication
Once the offer has been published, it is possible to redirect the user to a URL of your choice. To use this option, simply use the redirectionUrl tag available to send the address to which you want the user to be redirected.
This tag can be mapped like any other to allow you to use the value of your choice.
Process for publishing an offer via Published_as
If your system does not allow you to provide a login and password for each user when creating an offer, you can publish the offer under a Talentplug user using the Published_as tag.
Steps to follow:
- When sending the job offer, use the login and password provided to you for the client.
- In the
Published_astag, specify the login of the user to whom the job offer should be associated. - Talentplug will automatically identify the user, where each login corresponds to an email address.
The offer will then be automatically associated with the user specified in Published_as.
Error messages
| Error code | Message | Reason |
|---|---|---|
error_100 | One or more mandatory fields are empty | One or more mandatory fields are empty |
error_102 | Email and/or URL not found | The email or application URL is missing |
error_103 | Invalid email | The email address is invalid |
error_104 | Invalid URL | The URL is invalid |
error_105 | Application mode mismatch: email and URL found | Both the email and URL fields are filled in, when only one of them should be filled in |
error_106 | Missing tracking address | The tracking address is missing |
error_200 | Invalid partner API key | The API key is missing or incorrect |
error_201 | Invalid partner mapping | The partner configuration is invalid or could not be found |
error_203 | Invalid offer_keyID | The unique offer ID is incorrect and no offer could be found |
error_204 | Partner is not set on this company | The partner was not found in the company configuration |
error_205 | Administrator access required | The user is not an administrator, whereas the method called requires it |
error_210 | The list is empty | The list query did not return any results |
error_300 | Authentication failed: login and/or password not found | Authentication failed because the login or password is missing or incorrect |
error_301 | User not found | The user was not found for the current request |
error_400 | Invalid token | The token provided is invalid |
error_401 | Token not created | The token could not be generated |
error_402 | Unable to decrypt | Decryption failed |
error_500 | Undefined action tag or action value | The action could not be found on an offer |
error_501 | Cannot generate Talentplug platform URL | The redirect link to the Talentplug platform could not be generated |
error_600 | HTML not allowed | HTML is not permitted in values |
error_700 | The offer has not been added | The addition has not been made |
error_701 | No active offer for this user | No offer was found for the current user |
error_702 | Unable to delete: the offer was already deleted | The offer was unable to be unpublished because it had already been unpublished previously |
error_703 | Unable to delete: more than one occurrence of the offer has been found | The offer has been unpublished because several offers were found for this identifier |
error_704 | Invalid user | The user who wants to edit the offer is not the same as the one who created it |
error_705 | The offer has expired on all job boards | The offer has expired on all media where it was published |
error_706 | User is not permitted on this company | The user does not have access to the company |
error_707 | Invalid company ID | The company ID is not listed |
error_708 | No user found on this company | No user found on this company |
error_709 | Offer not republished | The offer has not been republished |
error_710 | Offer not processed when attempting to republish | The offer was not processed when republishing |
error_711 | Unable to republish: more than one occurrence of the offer has been found | The offer republishing failed because multiple offers were found for this identifier |
error_712 | Unable to republish: you cannot republish this offer yet | The offer reposting failed because the number of days is less than the number of days defined by the customer in their Talentplug settings |
error_800 | Invalid job board ID | The media ID is incorrect |
error_801 | Invalid SchoolPosting job board ID | The SchoolPosting media ID could not be found |
error_802 | No job board found | No media found |
error_900 | One or more parameters are empty | One or more parameters sent to the method are empty |
error_901 | Invalid parameter: [param] must be a value between [min] and [max] | The specified parameter must be between the minimum and maximum values indicated |
error_902 | Invalid parameter: [param] must be a numeric | The specified parameter must be a numeric value |
error_903 | Invalid parameter: [param] is not a correct location code | The specified parameter does not correspond to a valid location code (country or region) |
error_1000 | The validity date has expired | The account validity date has expired |
error_1100 | Unexpected error. Please contact Talentplug support | Unidentified error. Please contact Talentplug support |
Retrieving information from an offer
GetOffer method
This method allows you to retrieve information about an offer. It takes the following parameters:
| Field name | Field type | Description |
|---|---|---|
apiKey | Text | Unique key identifying the partner (provided by TalentPlug) |
login | Text | Login ID of the user posting the offer |
password | Text | User password |
offerKey | Text | Unique identifier for the offer |
includeSpecificFields | Boolean | 1: Include specific fields / 0: Do not include specific fields |
SOAP request template
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetOffer xmlns="http://www.mytalentplug.com/webservice/WebService.asmx">
<apiKey>string</apiKey>
<login>string</login>
<password>string</password>
<offerKey>string</offerKey>
<includeSpecificFields>boolean</includeSpecificFields>
</GetOffer>
</soap:Body>
</soap:Envelope>
Return XML
The offer tag contains a status attribute that will return the overall status of the offer:
- Normal: active offer
- Draft (brouillon): unpublished offer
- Archived (archive): archived offer
| Tag name | Type | Specific information |
|---|---|---|
jobBoards | Tag | Container for job boards |
jobBoard | Text | Job board name with id, status, reason, external_reference attributes |
general_informations | Tag | General job information |
posting_date | Date | Date the vacancy was posted |
job_reference | Text | Job reference |
job_title | Text | Job title |
offer_language | Text | Job offer language |
company | Tag | Company information |
company_name | Text | Company name |
company_description | Text (CData) | Company description |
company_url | Text | Company website |
job | Tag | Position information |
job_description | Text (CData) | Job description |
job_industry | Text | Industry |
job_industry2 | Text | Second industry sector |
job_function | Text | Function |
job_function2 | Text | Second function |
job_type | Text | Type of employment |
job_status | Text | Job status |
job_contract | Text | Contract type |
job_duration | Text | Contract duration |
job_startdate | Text | Start date |
Profile | Tag | Candidate profile information |
applicant_profile | Text (CData) | Required profile |
applicant_degree | Text | Level of education |
applicant_experience | Text | Level of experience |
applicant_skills | Text | Specific skills |
salary | Tag | Salary information |
salary_from | Text | Lower limit of proposed salary |
salary_to | Text | Proposed upper salary limit |
salary_currency | Text | Currency |
salary_per | Text | Salary frequency |
salary_benefits | Text | Salary benefits |
salary_text | Text | Summary of other salary-related fields |
location | Tag | Location information |
location_street | Text | Address |
location_zipcode | Text | Postcode |
location_town | Text | Town |
location_administrativearea | Text | Region |
location_subadministrativearea | Text | Department |
location_administrativearea2 | Text | Second region |
location_subadministrativearea2 | Text | Second department |
location_country | Text | Country |
specific_fields | Tag | Specific field information |
contact | Tag | Recruitment officer information |
contact_name | Text | Recruitment officer |
contact_phone | Text | Recruitment officer's telephone number |
Error messages (GetOffer)
| Error code | Message | Reason |
|---|---|---|
error_200 | Partner API key not found | The APIKey (partner key) is not present |
error_203 | Offer key not found | The unique identifier is invalid |
error_300 | Authentication failed | The identifiers are invalid |
error_900 | Parameters are empty | One of the parameters in the method is empty |
error_1000 | The account has expired | The account's validity date has passed |
Retrieving information from a job board
GetJobBoardInfo method
This method allows you to retrieve information from a job board for a given client. It returns the name, theme, number of credits (or slots) remaining, expiry date, investment amount and application acquisition cost.
| Field name | Field type | Description |
|---|---|---|
apiKey | Text | Unique key identifying the partner (provided by TalentPlug) |
login | Text | Login ID of the user posting the offer |
password | Text | User password |
companyID | Int | TalentPlug ID of the client's company |
jobBoardID | Int | Job board Talent ID |
SOAP request template
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetJobBoardInfo xmlns="http://www.mytalentplug.com/webservice/WebService.asmx">
<apiKey>string</apiKey>
<login>string</login>
<password>string</password>
<companyID>int</companyID>
<jobBoardID>int</jobBoardID>
</GetJobBoardInfo>
</soap:Body>
</soap:Envelope>
Retrieving companies
UserCompanies method
This method retrieves the list of companies for a given customer. It returns the company ID and name.
| Field name | Field type | Description |
|---|---|---|
apiK | Text | Unique key identifying the partner (provided by TalentPlug) |
login | Text | Login ID of the user posting the offer |
passwd | Text | User password |
SOAP request template
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<UserCompanies xmlns="http://www.mytalentplug.com/webservice/WebService.asmx">
<apiK>string</apiK>
<login>string</login>
<passwd>string</passwd>
</UserCompanies>
</soap:Body>
</soap:Envelope>
Other available functions
List of media available for a given user (UserJobBoards)
Returns a list of the different media available for a given user.
Input parameters:
ApiK: unique identifier for the third-party application provided by TalentplugEmail: email address used by the user to log in to TalentplugPasswd: password used by the user to log in to Talentplug
Web service call
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<UserJobBoards xmlns="http://www.mytalentplug.com/webservice/WebService.asmx">
<apiK>apiK</apiK>
<email>Email</email>
<passwd>password</passwd>
</UserJobBoards>
</soap:Body>
</soap:Envelope>
Response example
<user_jobboards>
<jobboard>
<name>LA VOIX EMPLOI.COM</name>
<isPaying>True</isPaying>
<expiry_date></expiry_date>
<pack></pack>
<quota></quota>
</jobboard>
</user_jobboards>
Tag definitions
<user_jobboards>: delimits the beginning and end of the list<jobboard>: delimits each medium<name>: name of the medium<isPaying>: whether the medium is paid (true) or free (false)<expiry_date>: expiry date of the company's package for the medium<pack>: number of advertisements in the company's package<quota>: number of advertisements (quota) available to the given user
List of countries (CountryList)
Input parameters:
ApiK: unique identifier for the third-party application provided by Talentplug
Web service call
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CountryList xmlns="http://www.mytalentplug.com/webservice/WebService.asmx">
<apiK>apiK</apiK>
</CountryList>
</soap:Body>
</soap:Envelope>
Response example
<listCountries>
<country>
<id>1167</id>
<name>France</name>
</country>
<country>
<id>1292</id>
<name>Belgium</name>
</country>
<country>
<id>1304</id>
<name>Luxembourg</name>
</country>
<country>
<id>1305</id>
<name>Switzerland</name>
</country>
<country>
<id>1333</id>
<name>Canada</name>
</country>
</listCountries>
List of regions (ListRegions)
Returns a list of the regions where the positions are located.
Input parameters:
ApiK: unique identifier for the third-party application provided by TalentplugCountry: identification code for the country being searched
Code 0 provides a global list of all departments and regions.
Web service call
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ListeRegions xmlns="http://www.mytalentplug.com/webservice/WebService.asmx">
<apiK>apiK</apiK>
<country>country code</country>
</ListeRegions>
</soap:Body>
</soap:Envelope>
Response example
<country id="1304" name="Luxembourg">
<regions>
<region>
<id>1330</id>
<name>Diekirch</name>
</region>
<region>
<id>1331</id>
<name>Luxembourg</name>
</region>
<region>
<id>1332</id>
<name>Grevenmacher</name>
</region>
</regions>
</country>
List of departments (ListDepartments)
Returns a list of the departments where the positions are located.
Input parameters:
ApiK: unique identifier for the third-party application provided by TalentplugRegion: identification code for the search region
Code 0 provides a general list of all departments in all regions.
Web service call
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<DepartmentList xmlns="http://www.mytalentplug.com/webservice/WebService.asmx">
<apiK>apiK</apiK>
<region>region code</region>
</DepartmentList>
</soap:Body>
</soap:Envelope>
Response example
<region id="1252" name="Nord-Pas-de-Calais" country_id="1167" country_name="France">
<departments>
<department>
<id>1253</id>
<name>59 - Nord</name>
</department>
<department>
<id>1254</id>
<name>62 - Pas-de-Calais</name>
</department>
</departments>
</region>
List of all active offers (GetAllActiveOfferStatus)
List of active offers for a given period with their status on each job board. If the request is made by an administrator, you will see all of the company's offers. If the request is made by a regular user, you will only see their offers.
Example request
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:web="http://www.mytalentplug.com/webservice/WebService.asmx">
<soap:Header/>
<soap:Body>
<web:GetAllActiveOfferStatus>
<web:apiKey>ApiKey</web:apiKey>
<web:login>login@login.com</web:login>
<web:password>testPassword</web:password>
<web:monthNumber>1</web:monthNumber>
</web:GetAllActiveOfferStatus>
</soap:Body>
</soap:Envelope>
List of all active users (GetActiveUserList)
Returns all users with hashed passwords and whether or not they are administrators. Regardless of who makes the request, administrator or not, users will be displayed but with a hashed password that will allow users to query other endpoints that require authentication.
Example request
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:web="http://www.mytalentplug.com/webservice/WebService.asmx">
<soap:Header/>
<soap:Body>
<web:GetActiveUserList>
<web:apiKey>ApiKey</web:apiKey>
<web:login>login@login.com</web:login>
<web:password>testPassword</web:password>
</web:GetActiveUserList>
</soap:Body>
</soap:Envelope>