All clients has API of automatic import of vacancies in v3 version.
API v3 has the following functionality:
- XML of vacancies
- value lists
- endpoint
- credentials
- passwords
- error messages
- returns successfully message in response
- Request XML is validated by XSD schema (see https://integrations.teamio.com/value-lists/) before import. Direct link to XSD: http://schema.lmc.cz/ei_std/xsd/ei_std_jd_2006-10-19.xsd
Example of successfully response after successful import:
HTTP/1.1 200 content-type: text/xml;charset=UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <importStatusResponse> <status>OK</status> <message>OK</message> <positionResultList> <positionResult> <success>true</success> <positionName>Front end developer HTML, JAVASCRIPT</positionName> <pdjdId>101</pdjdId> </positionResult> <positionResult> <success>true</success> <positionName>Java Developer</positionName> <pdjdId>102</pdjdId> </positionResult> </positionResultList> </importStatusResponse> |
Example of errors response after unsuccessful import:
Bad import URL
HTTP/1.1 401 content-type: text/xml;charset=UTF-8
1 2 3 4 5 6 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <importStatusResponse> <status>UNAUTHORIZED</status> <message>Authentication failed - import place does not exist!</message> <positionResultList/> </importStatusResponse> |
Bad credentials
HTTP/1.1 401 content-type: text/xml;charset=UTF-8
1 2 3 4 5 6 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <importStatusResponse> <status>UNAUTHORIZED</status> <message>Authentication failed - wrong credentials!</message> <positionResultList/> </importStatusResponse> |
Service is not active
HTTP/1.1 403 content-type: text/xml;charset=UTF-8
1 2 3 4 5 6 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <importStatusResponse> <status>SERVICE_NOT_ACTIVE</status> <message>Import service is not active - contact LMC support!</message> <positionResultList/> </importStatusResponse> |
The first position was not successfully imported
Position has a external link parameter but company hasn’t active for assessment external link.
HTTP/1.1 422 content-type: text/xml;charset=UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <importStatusResponse> <status>UNPROCESSABLE</status> <message>An error(s) occurred while importing positions</message> <positionResultList> <positionResult> <success>false</success> <positionName>Example imported position 2020-02-07T11:55:07.771276</positionName> <errorMessage>Not active service for assessment external link.</errorMessage> </positionResult> </positionResultList> </importStatusResponse> |
First position imported successfully, the second was not
First position ok. Second one has a external link parameter but company hasn’t active for assessment external link.
HTTP/1.1 207 content-type: text/xml;charset=UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <importStatusResponse> <status>MULTI_STATUS</status> <message>Some imported positions contain error(s)</message> <positionResultList> <positionResult> <success>true</success> <positionName>Example imported position</positionName> <pdjdId>123</pdjdId> </positionResult> <positionResult> <success>false</success> <positionName>Example imported position with external link</positionName> <errorMessage>Not active service for assessment external link.</errorMessage> </positionResult> </positionResultList> </importStatusResponse> |
Import of already existing vacancy
1 |
<errorMessage>Formerly imported PDJD has been changed. It cannot be reimported. Some recent IDs of PDJD with same client ID: [1622762999, 1617942500]</errorMessage> |
There is already a vacancy in Teamio with the same client ID from your ATS.
Which means you are trying to import a duplicate vacancy with client ID that already exists in Teamio. If you want to import the vacancy for the same position again, it must have a different client ID, then already existing vacancies in Teamio.
BR tag
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <importStatusResponse> <status>UNPROCESSABLE</status> <message>An error(s) occurred while importing positions</message> <positionResultList> <positionResult> <success>false</success> <positionName>HR PODPORA BUSINESS PARTNERŮ</positionName> <errorMessage>The element type "br" must be terminated by the matching end-tag "</br>".</errorMessage> </positionResult> </positionResultList> </importStatusResponse> |
In the <richtext> element, an attempt is made to import <br>, however, the correct one is <br/>. We use the XHTML standard which requires <br/> with a slash at the end – as a pair tag.
Long text
1 |
<errorMessage>Oversized pdjd field label: 451</errorMessage> |
The text in the attribute name of the textField element is too long, the limit is 10 000 characters.
Import of already existing vacancy
1 2 3 4 5 6 7 8 9 10 11 |
<importStatusResponse> <status>UNPROCESSABLE</status> <message>An error(s) occurred while importing positions</message> <positionResultList> <positionResult> <success>false</success> <positionName>Treasury Specialist / Finance Specialist</positionName> <errorMessage>Formerly imported PDJD has been changed. It cannot be reimported. PDJD ID: 1536528736</errorMessage> </positionResult> </positionResultList> </importStatusResponse> |
An attempt to import a vacancy with an ID/clientID that is already used for a vacancy in Teamio. It is not possible to import such duplicity, import must be carried out with a unique ID that does not yet appear in any vacancy in Teamio.
Not URL encoded
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="UTF-8" standaone="yes"?> <importStatusResponse> <status>BAD_REQEUST</status> <message>XML validation error: XML document structures must start and end within the same entity.</Message> </message> </positionResultList> </importStatusResponse> |
Import xml is not URL encoded. (the server will evaluate that the string ends earlier, probably somewhere before the first =) and import will not occur)