The objective of this document is to describe in details the communication interface for exporting vacancies Teamio. The user of this document should have at least basic orientation in Information Technology.
Description of the interface
The standard export is done using a combination of HTTP and SSL (Secure Sockets Layer) protocols. Exported data are available on pre-defined URL address which is unique for each company (exports use different URL’s). Communication must be performed through a secured channel via port 443.
Important hint: Only HTTPS protocol is supported.
Export file download description
- External application sends the HTTP request to download the export file to the assigned URL address (authentication data sent by GET method is included)
- After successful authentication, the export file is generated by XSL transformation and final file is published to pre-defined URL address
- Export file is downloaded from pre-defined URL address to external system after
- In case of authentication error, error code is sent to external system
Syntax of HTTP request
General Url structure
https://g2.lmc.cz/export/custompath?type=type&login=login&password=password
Sample of the XML export Url
https://g2.lmc.cz/export/democompany/positions?type=1&login=test&password=123456
Variable | Sample | Description |
type | 1 | type of export code (1 = export of vacancies) |
login | test | security unique name |
password | password | security password |
custompath | /company/exportname | client’s export path |
Description of XML format
Following paragraphs describe XML file. If “hidden” attribute is mentioned by any element and it is set to value=”true” then content is not visible in published vacancy.
<positionList> – mandatory attribute “create” represents date and time of creating file.
1 2 3 4 |
<positionList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.onrea.net/ei_std_jd/2006-10-19" xsi:schemaLocation="http://www.onrea.net/ei_std_jd/2006-10-19 http://schema.lmc.cz/ei_std/xsd/ei_std_jd_2006-10-19.xsd" create="2013-10-01T15:00:39"> ... </positionList> |
Currently it can gain the following values:
- insert (id=20300001) for creating a new vacancy
- update (id=20300002) for updating, modification of the content of the position
- renew (id=20300004) for changes concerning the changes of services in the published position (e.g. extending the publish period).
Important hint: A document which is no longer active is not contained in the export file!
<date> – contains the date of the validity and the date of the last renew action.
1 2 |
<date validFrom="2013-09-27T08:34:51.626+02:00" validTo="2013-10-27T23:59:59+01:00" renew="2013-09-27T08:34:51.626+02:00"/> |
<parametrList> – contains all client parameters, which serve for identification of the vacancy in the client system or for the transfer of specific entries. The maximum number of client identifiers is 8. The number of additional parameters is not limited.
1 2 3 4 5 6 |
<parameterList> <parameter name="freePositions">1</parameter> <parameter name="companyLoginName">CZ.test</parameter> <parameter name="clientID_0">AAA_189562</parameter> <parameter name="duration"/> </parameterList> |
<organization> – is used only as envelope for notice of the contact person, see element <contactInformation>. Elements <firstName>, <surname> and <email> serves for unique identification of the recruiter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<organization> <organizationalUnit> <contactInformation> <name> <titleBefore>Prof.</titleBefore> <firstName>Jan</firstName> <surname>Novák</surname> <titleAfter>PhD.</titleAfter> </name> <address hidden="false"> <country id="0" svlId="1002000">Česká republika</country> <city id="0" svlId="1010000">Praha</city> <citypart id="0" svlId="1020000">Staré Město</citypart> <street id="0" svlId="1011000">Na příkopě</street> <zip>11000</zip> <number>969</number> <orientationNumber>33</orientationNumber> <latitude id="0"/> <longitude id="0"/> </address> </contactInformation> </organizationalUnit> </organization> |
<jobDescription> – contains entries assigned in the job description form of the vacancy.
1 |
<jobDescription> ...</jobDescription> |
<positionName> – contains internal name of the position, which can differ from the published name of the vacancy. The public name of vacancy you can find in <textFieldList>.
1 |
<positionName>Finanční analytik</positionName> |
Attribute “id” by recruitmentProcessId element uniquely define the recruitment process.
1 |
<recruitmentProcessId id="149886966"/> |
<companyName> – Mandatory attribute id represents unique identifier of company generated by Teamio/LMC G2 application.
1 |
<company> <companyName id="275936">LMC s.r.o.</companyName></company> |
<occupationFieldList> – contains branches (sometimes known also as categories), to which were the vacancy assigned.
1 |
<occupationFieldList> <occupationField id="200900002" svlId="2009000">Bankovnictví a finanční služby</occupationField> <occupationField id="200900026" svlId="2009000">Prodej a obchod</occupationField></occupationFieldList> |
<professionList> – contains professions, to which were the vacancy assigned.
1 2 3 4 5 6 |
<professionList> <profession id="201100470" svlId="2011000">Bankovní poradce</profession> <profession id="201100543" svlId="2011000">Manažer prodejního týmu</profession> <profession id="201100469" svlId="2011000">Osobní bankéř</profession> <profession id="201100152" svlId="2011000">Vedoucí/manažer prodejny</profession> </professionList> |
<employmentTypeList> – contains types of labor relations to given position.
1 2 3 |
<employmentTypeList> <employmentType id="201300001" svlId="2013000">Práce na plný úvazek</employmentType> </employmentTypeList> |
Employments are split to the 3 groups:
- Employment type (ID:201300001,201300002,201300003)
- Experience / Internship, Trainee program (ID:201300005, 201300007)
- Type of contract (ID:212700001,212700002,212700003,212700004)
At least one type of relation is mandatory, it is not possible choose Temporary work and Full-time work in the same vacancy
- Full-time (ID:201300001)
- Part-time (ID:201300002)
- Temporary work (ID:201300003)
Vacancies (Temporary work) can contain additional items for employment type.
- length of employment
- number of hours per week
- categories of employees
- duration from date-to
- work only certain days of the week
<jobMarketStatus> – contains required level of leading for given position.
Job Market Status supports only three values: Graduate, Pensioner, Maternity / paternity leave.
1 2 3 4 5 |
<jobMarketStatusList> <jobMarketStatus id="203000001" svlId="2030000">Graduate</jobMarketStatus> <jobMarketStatus id="203000002"svlId="2030000">Pensioner</jobMarketStatus> <jobMarketStatus id="203000003" svlId="2030000">Maternity / paternity leave</jobMarketStatus> <jobMarketStatusList> |
<healthState> – designates, if the vacancy is available for persons with reduced ability to work and if there is a condition of visiting the company.
1 |
<healthState hidden="false" id="201900001" svlId="2019000">Ne</healthState> |
<educationType> – assigns minimal required education.
1 |
<educationType hidden="false" id="203400003" svlId="2034000">Středoškolské</educationType> |
<remunerationPackage> – contains offered salary and benefits.
1 2 3 4 5 6 7 8 9 10 11 12 |
<remunerationPackage> <salary hidden="true"> <minSalary>30000</minSalary> <maxSalary>40000</maxSalary> <currencyCode id="201400001" svlId="2014000">Kč</currencyCode> <baseInterval id="209800002" svlId="2098000">měsíc</baseInterval> </salary> <benefitList> <benefit id="202800012" svlId="2028000">Volná pracovní doba</benefit> <benefit id="202800011" svlId="2028000">Příspevek na penzijní/životní připojištení</benefit> </benefitList> </remunerationPackage> |
Element <jobLocality>
Assigns specific work location. More work locations can be assigned. See Appendices for best available detail of address. If the specific level of the address is not supported elements remains empty.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<jobLocalityList> <jobLocality> <territory id="1" svlId="1006000">Evropa</territory> <country id="56" svlId="1002000">Česká republika</country> <region id="200000" svlId="1008000">Hlavní město Praha</region> <district id="23009999" svlId="1009000">území Hlavního města Prahy</district> <city id="200002" svlId="1010000">Praha</city> <citypart id="204840" svlId="1020000">Holešovice</citypart> <street svlId="1011000" id="204854">Jankovcova</street> <zip>17000</zip> <number>1569</number> <orientationNumber>2c</orientationNumber> </jobLocality> </jobLocalityList> |
Supported level for address data to element <jobLocality>.
Country | Level of supported details |
Czech Republic | Street and house number |
Slovakia | City |
Estonia | City |
Latvia | City |
Lithuania | City |
Moldova | City |
Romania | City |
Hungary | City |
Poland | City |
Serbia | City |
Montenegro | City |
Ukraine | City |
Finland | City |
Bulgaria | Region |
<linkList> – contains public Url address of the vacancy job description page and the public Url of the application form.
1 2 3 |
<linkList> <link name="URLAplicationAddress">http://www.lmcg2.com/asmt/index.jsp?reportId..</link> <link name="URLPositionAdress">http://www.lmcg2.com/pd/12345678</link></linkList> |
<textFieldList> – contains all texts, which describe the contents of the vacancy (job description text), structured by type:
- type=title >> name of position, which will be published
- type=text >> text field of the advertising. Attribute name contains name of the text field and attribute id in given format “206000000X” where X assigns the order and is limited by the number of text fields stated in the position form.
- type=header >> text field of the advertising header
- type=footer >> text field of the advertising footer.
1 2 3 4 5 6 7 8 9 10 |
<textFieldList> <textField type="title" id="">Finanční analytik</textField> <textField type="text" id="206000001" name="We offer">xyz abc</textField> <textField type="text" id="206000002" name="Professional Requirements">xyz abc</textField> <textField type="text" id="206000003" name="Job Profile">xyz abc</textField> <textField type="text" id="206000004">Předpokládaný nástup: dle dohody</textField> <textField type="header" id="">LMC s.r.o., Praha 7 - Holešovice, hledají...</textField> <textField type="footer" id="">Kontakt:</textField> <textField type="footer" id="">LMC s.r.o.</textField </textFieldList> |
Simple demonstration
PHP script sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php /** * LMC Demonstration PHP script for downloading XML exports from LMC's G2 * */ /** * Settings part, modify as necessary... */ $auth = array( 'login' => 'test', 'password' => '123456', 'url' => 'ie/positions'); $lXmlFile = 'https://g2.lmc.cz/export/' . $auth['url'] . '?login='.$auth['login'].'&password='.$auth['password'].'&type=1'; /** * Working part, do not modify it... */ $lHttpGetFile = ""; if (!$lReq = curl_init($lXmlFile)) die("Not able to connect to: " . $lXmlFile); curl_setopt($lReq, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($lReq, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($lReq, CURLOPT_FAILONERROR, TRUE); $lResult = curl_exec($lReq); if ($lResult) die("Successfuly downloaded!\n " . $lResult); else die("server error: Not able to send data to: " . $lXmlFile . " , error message: " . curl_error($lReq)); curl_close($lReq); ?> |
1 |
XML result sample 2.0 – export with newCustomFields2021
In 2021 we introduced new Custom Fields. The Custom Fields are part of the export file.
Export contains the label, name, uuid of custom field.
1 2 3 4 5 6 |
customFieldList> <customField label="Oddělení společnosti" name="oddeleni_spolecnosti" type="select" uuid="9bd36751-866f-47b4-b98b-8a3fd3c7ce8b"> <customFieldValue label="R&D" name="rad">f54e9d3c-94a8-4627-92ee-7e1462e79922</customFieldValue> <customFieldValue label="Product management" name="product_management">848e32cf-ebb4-4bce-ad41-698e3e51d960</customFieldValue> </customField> </customFieldList> |
Custom field without translated values has no label parameters.
1 2 3 4 5 6 |
<customFieldList> <customField name="oddeleni_spolecnosti" type="select" uuid="9bd36751-866f-47b4-b98b-8a3fd3c7ce8b"> <customFieldValue name="rad">f54e9d3c-94a8-4627-92ee-7e1462e79922</customFieldValue> <customFieldValue name="product_management">848e32cf-ebb4-4bce-ad41-698e3e51d960</customFieldValue> </customField> </customFieldList> |
Completed example of export with newCustomFields.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
<position xmlns="http://www.onrea.net/ei_std_jd/2006-10-19" id="1161316315"> <lang id="19" svlId="1001000">cs</lang> <action id="20300001" svlId="203000">RA_PUBLISH_INSERT</action> <date renew="2021-09-14T15:24:17.870+02:00" validFrom="2021-09-14T15:24:17.870+02:00" validTo="2021-10-14T23:59:59+02:00"/> <lastUpdate at="2021-09-14T15:24:27.132+02:00"/> <parameterList> <parameter name="freePositions">1</parameter> <parameter name="companyLoginName">CZ.alesovaceska</parameter> <parameter name="duration"/> </parameterList> <organization> <organizationalUnit> <contactInformation> <name> <firstName>Aleš</firstName> <surname>Prágr</surname> </name> <phoneList> <phone hidden="false"> <type id="206100003" svlId="2061000">Work phone</type> <number>723000111</number> </phone> </phoneList> <email>noreply@niceemail.com</email> </contactInformation> </organizationalUnit> </organization> <jobDescription> <positionName>Asistent za Jardu</positionName> <recruitmentProcessId id="1161316318"/> <company> <companyName id="1703003989">alesova ceska</companyName> </company> <occupationFieldList> <occupationField id="200900001" svlId="2009000">Administrativa</occupationField> </occupationFieldList> <professionList> <profession id="201100017" svlId="2011000">Asistent/asistentka</profession> </professionList> <employmentTypeList> <employmentType id="201300001" svlId="2013000">Práce na plný úvazek</employmentType> </employmentTypeList> <workSupervisionList/> <healthState hidden="false" id="201900001" svlId="2019000">Ne</healthState> <educationType hidden="false" id="203400003" svlId="2034000">Středoškolské nebo odborné vyučení s maturitou</educationType> <remunerationPackage> <salary hidden="true"> <currencyCode id="201400001" svlId="2014000">Kč</currencyCode> <baseInterval id="209800002" svlId="2098000">měsíc</baseInterval> </salary> <benefitList> <benefit id="202800022" svlId="2028000">Závodní stravování</benefit> </benefitList> </remunerationPackage> <jobLocalityList> <jobLocality> <territory id="1" svlId="1006000">Evropa</territory> <country id="56" svlId="1002000">Česká republika</country> <region id="200000" svlId="1008000">Hlavní město Praha</region> <district id="23009999" svlId="1009000">území Hlavního města Prahy</district> <city id="200002" svlId="1010000">Praha</city> <citypart id="204840" svlId="1020000">Holešovice</citypart> <street id="204854" svlId="1011000">Jankovcova</street> <zip>17000</zip> <number>1569</number> <orientationNumber>2c</orientationNumber> <latitude>50.102865315998415</latitude> <longitude>14.456887295877095</longitude> </jobLocality> </jobLocalityList> </jobDescription> <linkList> <link name="URLAplicationAddress">https://www.lmcg2.com/asmt/index.jsp?brand=g2&reportId=JOF&advId=1161316315&rps=199866&source=3</link> <link name="URLPositionAdress">http://www.lmcg2.com/pd/1161316315?rps=199866&source=3</link> </linkList> <textFieldList> <textField id="-1" type="title">Asistent</textField> <textField id="206000001" type="text">Co vás čeká Popište za co budou noví kolegové zodpovědní, jejich pozici v týmu a úkoly, které budou nejčastěji řešit. Čím konkrétnější budete, tím vyšší je šance, že se přihlásí ten pravý člověk. Jaké znalosti a dovednosti byste měli mít Co musí vhodní uchazeči nutně umět a ovládat? Uveďte skutečně jen to, na čem trváte — stává se, že lidé neodpovídají na inzeráty, u kterých nesplňují všechny požadavky na 100 procent. Výhodou bude, pokud budete umět Sem uveďte takové znalosti a dovednosti, na kterých sice nutně netrváte, ale které na této pozici oceníte. Co vám můžeme nabídnout Nejsilnější argumenty, proč se na vaši pozici přihlásit. Je u vás možnost kariérního postupu, silná firemní kultura, nadstandardní benefity? Tohle je to pravé místo, kde to uvést. </textField> <textField id="-1" type="footer">Kontakt:</textField> <textField id="-1" type="footer">alesova ceska</textField> <textField id="-1" type="richtext"><p><strong>Co vás čeká</strong></p> <p>Popište za co budou noví kolegové zodpovědní, jejich pozici v týmu a úkoly, které budou nejčastěji řešit. Čím konkrétnější budete, tím vyšší je šance, že se přihlásí ten pravý člověk.</p> <p><strong>Jaké znalosti a dovednosti byste měli mít</strong></p> <p>Co musí vhodní uchazeči nutně umět a ovládat? Uveďte skutečně jen to, na čem trváte — stává se, že lidé neodpovídají na inzeráty, u kterých nesplňují všechny požadavky na 100 procent.</p> <p><strong>Výhodou bude, pokud budete umět</strong></p> <p>Sem uveďte takové znalosti a dovednosti, na kterých sice nutně netrváte, ale které na této pozici oceníte.</p> <p><strong>Co vám můžeme nabídnout</strong></p> <p>Nejsilnější argumenty, proč se na vaši pozici přihlásit. Je u vás možnost kariérního postupu, silná firemní kultura, nadstandardní benefity? Tohle je to pravé místo, kde to uvést.</p></textField> </textFieldList> <richtext><p><strong>Co vás čeká</strong></p> <p>Popište za co budou noví kolegové zodpovědní, jejich pozici v týmu a úkoly, které budou nejčastěji řešit. Čím konkrétnější budete, tím vyšší je šance, že se přihlásí ten pravý člověk.</p> <p><strong>Jaké znalosti a dovednosti byste měli mít</strong></p> <p>Co musí vhodní uchazeči nutně umět a ovládat? Uveďte skutečně jen to, na čem trváte — stává se, že lidé neodpovídají na inzeráty, u kterých nesplňují všechny požadavky na 100 procent.</p> <p><strong>Výhodou bude, pokud budete umět</strong></p> <p>Sem uveďte takové znalosti a dovednosti, na kterých sice nutně netrváte, ale které na této pozici oceníte.</p> <p><strong>Co vám můžeme nabídnout</strong></p> <p>Nejsilnější argumenty, proč se na vaši pozici přihlásit. Je u vás možnost kariérního postupu, silná firemní kultura, nadstandardní benefity? Tohle je to pravé místo, kde to uvést.</p></richtext> <customFieldList> <customField label="Oddělení společnosti" name="oddeleni_spolecnosti" type="select" uuid="9bd36751-866f-47b4-b98b-8a3fd3c7ce8b"> <customFieldValue label="R&D" name="rad">f54e9d3c-94a8-4627-92ee-7e1462e79922</customFieldValue> <customFieldValue label="Product management" name="product_management">848e32cf-ebb4-4bce-ad41-698e3e51d960</customFieldValue> </customField> </customFieldList> </position> |
Job description in Teamio
The job description is merged and exported in a <richtext> item, text-formatting HTML tags included.
Export of vacancies’ XML
1 2 3 4 5 6 7 8 9 10 11 12 |
<position> ... <richtext><p><strong>Co vás čeká</strong></p> <ul> <li>Řídit a obsluhovat výdej krmných směsí</li><li>Řídit výrobu krmných směsí dle potřeby vývozu</li> <li>Obsluhovat řídící panel – nastavovat dopravní cesty,</li> <li>Odběry vzorků, včasné předávání ke kontrole jakosti</li> <li>Vedení evidence skladového hospodářství (přijímání objednávek)</li> </ul> <p><strong>Jaké znalosti a dovednosti byste měli mít</strong></p> <ul> <li>Výuční list (SOU), praxe ve skladu výhodou</li> <li>Uživatelská znalost MS Office</li> <li>ŘP skupiny B, obsluha VZV výhodou</li> <li>Zodpovědnost, manuální zručnost</li> <li>Samostatnost, důslednost, spolehlivost</li> </ul> <p><strong>Co vám můžeme nabídnout</strong></p> <ul> <li>Zázemí stabilní společnosti</li> <li>Dobré platební podmínky</li> <li>Využití benefitů společnosti – penzijní připojištění, stravování, týden dovolená navíc, příspěvek na volnočasové aktivity, příspěvek na dopravu</li> </ul></richtext> ... <position> |
Custom categories that add extra attributes to the description (i.e., “Our Department”). You’ll export them individually in a separate <customFieldList> item.
This is how the export with custom categories is going to look like:
1 2 3 4 5 6 7 8 9 |
<position> ... <customFieldList> <customField label="Společnost" name="spolecnost" type="select"> <customFieldValue label="AFEED" name="afeed"/> </customField> </customFieldList> ... </position> |