Pnet XML GUIDE

(1) BASIC NODES

1.1 XML (DOCUMENT HEADER)

All listings must be provided in encoding UTF-8. Your XML document should also start with UTF-8 header:

<?xml version="1.0" encoding="UTF-8"?>

Please make sure that you have no invisible characters (BOM chracters, non breaking spaces from editor) in your document.


1.2 JOBFEED (ROOT NODE)

Root node/first node after encoding is <jobfeed>, example:

<?xml version="1.0" encoding="UTF-8"?>
<jobfeed>
  ...
</jobfeed>

1.3 JOBLISTING (MAIN LISTING NODE)

Each new listing starts with a main node <joblisting>. This node must contain a unique @reference_id.
JobFeed uses this reference to ensure that actions are addressed correctly to the proper listing. Please check PUSH and PULL documentation for more details.

<?xml version="1.0" encoding="UTF-8"?>
<jobfeed>
  <joblisting reference_id="123456ABCD" sender_id="12345" organisation_id="321" " action="INSERT">
    ...
  </joblisting>
</jobfeed>

xpath to unique reference_id: /jobfeed/joblisting/@reference_id 

Following additional attributes may be provided:
@sender_id is the customer’s ID in the StepStone System where the listing will be published. This ID is provided by StepStone Customer Service. For greater flexibility we suggest to use Company’s full name instead and let StepStone handle the proper mapping of each company to the matching ID. See description for companydetails/companyname
xpath to sender_id: /jobfeed/joblisting/@sender_id 

The @organisation_id is also provided by StepStone. This ID is linked to the contract that will be charged for that certain listing insertion. Like the @sender_id the @organisation_id can also be handled by StepStone through Orgamapping.
xpath to organisation_id: /jobfeed/joblisting/@organisation_id 

If the recruiter already has a StepStone Recruiter Card, the @recruiter_id can be provided in this node.
xpath to recruiter ID: /jobfeed/joblisting/@recruiter_id 

The @action attribute is used only for PUSH-JobFeed-integrations. Possible values are:

  • INSERT – inserts a new offer
  • OFFLINE – takes an offer offline, but does not delete it
  • UPDATE – updates an offer
  • TRANSLATE – on multilingual sites, like StepStone Belgium or StepStone Luxembourg, this action causes the translation of the offer

You find additional details in the PUSH-section of this documentation.
xpath to action: /jobfeed/joblisting/@action


1.4 CHANNEL (MANDATORY)

The node channel defines in which country you want to post an offer. Possible Channels are:

  • AT = Austria
  • BE = Belgium
  • DE = Germany
  • FR = France
  • NL = Netherlands
  • ZA = South Africa
...
<joblisting reference_id="123456ABCD" sender_id="12345" organisation_id="321" recruiter_id="12345" action="INSERT">
  <channel><![CDATA[DE]]></channel>
</joblisting>
...

xpath to channel: /jobfeed/joblisting/channel (CDATA declared)


(2) OFFER INFORMATION

2.1 JOBDETAILS

<jobdetails> is the most important node inside the main node joblisting. The subnodes of <jobdetails> contain the necessary information to post a basic offer on StepStone. Please do not put in any value directly inside this node but use the subnodes instead.

...
<joblisting reference_id="123456ABCD" sender_id="12345" organisation_id="321" recruiter_id="12345" action="INSERT">
  <channel><![CDATA[DE]]></channel>
  <jobdetails>...</jobdetails>
</joblisting>
...

2.2 LANGUAGE (MANDATORY)

<language> contains country code in which language the offer is published. Valid options depending on the used channel (check 1.4) are

  • AT = DE / EN
  • BE = NL / FR / EN
  • DE = EN / DE
  • FR = FR / EN
  • ZA = EN
...
<jobdetails>
  <language><![CDATA[DE]]></language>
</jobdetails>
...

xpath to language: /jobfeed/joblisting/jobdetails/language (CDATA declared)


2.3 JOB TITLE (MANDATORY)

The node <jobtitle> contains the title of the position. This title is visible on stepstone search result list. Maximum number of characters: 200 including spaces and entities.

...
<jobdetails>
...
  <jobtitle><![CDATA[offer jobtitle]]></jobtitle>
</jobdetails>
...

xpath to jobtitle: /jobfeed/joblisting/jobdetails/jobtitle (CDATA declared)


2.4 INTRODUCTION (MANDATORY)

The node <introduction> contains information about the company. Note: part of this text is also visible in the search result list on StepStone.

...
<jobdetails>
  ...
  <introduction title=""><![CDATA[company's introduction text]]></introduction>
</jobdetails>
...

xpath to introduction: /jobfeed/joblisting/jobdetails/introduction (CDATA declared) 

If required, you can define your own headline for the introduction block. Use @title for declaration. All special chars must be converted to entities. This attribute is optional and not mandatory.
Default titles:

  • DE: Einleitung
  • EN: Introduction
  • FR: Introduction
  • NL: Introductie

xpath to headline description of introduction: /jobfeed/joblisting/jobdetails/introduction/@title


2.5 TASKS (MANDATORY)

What is the “to do” for the candidate in the new job? Please describe the field of work in node <tasks>, list here the candidate’s tasks and responsibilities. Do not put any other information into this node.

...
<jobdetails>
  ...
  <tasks title=""><![CDATA]></tasks>
</jobdetails>
...

xpath to tasks: /jobfeed/joblisting/jobdetails/tasks (CDATA declared) 

If required, you can define your own headline for the tasks block. Use @title for declaration. All special chars must be converted to entities. This attribute is optional and not mandatory.
Default titles:

  • DE: Ihre Aufgaben
  • EN: Your tasks
  • FR: Vos responsabilités
  • NL: Jouw verantwoordelijkheden

xpath to headline description of tasks: /jobfeed/joblisting/jobdetails/tasks/@title


2.6 PROFILE (MANDATORY)

What skills and qualification should the candidate possess? The node <profile> contains the requirements of your candidate. Do not put any other information into this node.

...
<jobdetails>
  ...
  <profile title=""> <![CDATA[candidate's profile text]]></profile>
</jobdetails>
...

xpath to profile: /jobfeed/joblisting/jobdetails/profile (CDATA declared) 

If required, you can define your own headline for the profile block. Use @title for declaration. All special chars must be converted to entities. This attribute is optional and not mandatory.
Default titles:

  • DE: Ihr Profil
  • EN: Your profile
  • FR: Votre profil
  • NL: Jouw profiel

xpath to headline description of profile: /jobfeed/joblisting/jobdetails/profile/@title


2.7 OFFER (OPTIONAL)

<offer> describes the benefits of your company. What can the applicant look forward to?

...
<jobdetails>
  ...
  <offer title=""><![CDATA[company's benefits text]]></offer>
</jobdetails>
...

xpath to offer: /jobfeed/joblisting/jobdetails/offer (CDATA declared) 

If required, you can define your own headline for the offer block. Use @title for declaration. All special chars must be converted to entities. This attribute is also optional and not mandatory.
Default titles:

  • DE: Wir bieten
  • EN: We offer
  • FR: Notre offer
  • NL: Ons aanbod

xpath to headline description of offer: /jobfeed/joblisting/jobdetails/offer/@title


2.8 CONTACTINFO (OPTIONAL)

<contactinfo> contains the visible contact information inside the listing.

...
<jobdetails>
  ...
  <contactinfo title=""><![CDATA[contact information text]]></contactinfo>
</jobdetails>
...

xpath to contactinfo: /jobfeed/joblisting/jobdetails/contactinfo (CDATA declared) 

If required, you can define your own headline for the contact block. Use @title for declaration. All special chars must be converted to entities. This attribute is also optional and not mandatory.
Default titles:

  • DE: Kontakt
  • EN: Contact
  • FR: Intéressé?
  • NL: Geïnteresseerd?

xpath to headline description of contact: /jobfeed/joblisting/jobdetails/contactinfo/@title


2.9 JOB LOCATIONS (MANDATORY)

<joblocations> is the main node for joblocation specific details. This details are provided in subnodes. Do not put in any value directly inside this node, please use the subnodes instead.

...
<joblocations>
  ...
</joblocations>
...

xpath to joblocation: /jobfeed/joblisting/jobdetails/joblocations


2.10 LOCATION

<location> is the top node for each location where the candidate will work. Full address details are provided in further subnodes. The data contained in its sub nodes are used on StepStone’s own jobsearch and as additional display on Google Maps. A minimum of 1 location is mandatory.
Please note: only the first location node contains data for Google Maps on listing view. If you provide multiple <location>-nodes, Google Maps is not possible on listing view.

...
<joblocations>
  <location>...</location>
  <location>...</location>
</joblocations>
...

xpath to joblocation: /jobfeed/joblisting/jobdetails/joblocations/location


2.11 LOCATION – COUNTRY CODE

Country code specific value.

...
<joblocations>
  <location>
    <countrycode><![CDATA[DE]]></countrycode>
  </location>
</joblocations>
...

xpath to country code: /jobfeed/joblisting/jobdetails/joblocations/location/countrycode (CDATA declared)


2.12 LOCATION – CITY

<city> contains the information about the city the candidate will be working. The number of characters for this information is limited to 100 including spaces and entities.

...
<joblocations>
  <location>
    <city><![CDATA[Berlin]]></city>
  </location>
</joblocations>
...

xpath to municipality: /jobfeed/joblisting/jobdetails/joblocations/location/city (CDATA declared)


2.13 LOCATION – POSTAL CODE

Postal or ZIP code.

...
<joblocations>
  <location>
    <postalcode><![CDATA[10969]]></postalcode>
  </location>
</joblocations>
...

xpath to postal code: /jobfeed/joblisting/jobdetails/joblocations/location/postalcode (CDATA declared)


2.14 LOCATION – STREET NAME

Street’s name.

...
<joblocations>
  <location>
    <streetname><![CDATA[Lindenstraße]]></streetname>
  </location>
</joblocations>
...

xpath to street name: /jobfeed/joblisting/jobdetails/joblocations/location/streetname (CDATA declared)


2.15 LOCATION – BUILDING NUMBER

Building’s number.

...
<joblocations>
  <location>
    <buildingnumber><![CDATA[123]]></buildingnumber>
  </location>
</joblocations>
...

xpath to building number: /jobfeed/joblisting/jobdetails/joblocations/location/buildingnumber (CDATA declared)


2.16 KEYWORDS

Additional position relevant keywords can be put in here. Please set a reliable number of keywords. Content will be checked by Quality team.

...
<jobdetails>
  <keywords><![CDATA[keyword1, keyword2]]></keywords>
</jobdetails>
...

xpath to keywords: /jobfeed/joblisting/jobdetails/keywords (CDATA declared)


2.17 APPLY (MANDATORY)

<apply> is the top node of the section containing possible apply-data. Do not put in any value directly inside this node, please use the subnodes instead. The node that should be used for all applications is defined individually in each feed. At least one apply method is required.

...
<jobdetails>
  <apply>...</apply>
</jobdetails>
...

xpath to applybutton: /jobfeed/joblisting/jobdetails/apply (CDATA declared)


2.18 EMAIL

A valid email address.

...
<jobdetails>
  <apply>
    <email><![CDATA[apply@customer.com]]></email>
  </apply>
</jobdetails>
...

xpath to applybutton: /jobfeed/joblisting/jobdetails/apply/email (CDATA declared)


2.19 URL

This node is used for an online application form.

...
<jobdetails>
  <apply>
    <url><![CDATA[https://www.applyhere.com]]></url>
  </apply>
</jobdetails>
...

xpath to applybutton: /jobfeed/joblisting/jobdetails/apply/url (CDATA declared)


2.20 QUESTIONNAIRE

A questionnaire URL which is only used for www.pnet.co.za.

...
<jobdetails>
  <apply>
    <questionnaire><![CDATA[https://www.applyhere.com]]></questionnaire>
  </apply>
</jobdetails>
...

xpath to questionnaire: /jobfeed/joblisting/jobdetails/apply/questionnaire (CDATA declared).

(3) COMPANY INFORMATION

3.1 COMPANY DETAILS

This is the main node for providing all company related information. Do not put in any value directly inside this node, please use the subnodes instead.

...
<joblisting reference_id="123456ABCD">
    <companydetails>...</companydetails>
</joblisting>
...

xpath to company details: /jobfeed/joblisting/companydetails


3.2 COMPANY NAME

This node provides the name of the company / subsidiary (and thus the dataset on StepStone) where the listing will be published.

...
<companydetails>
    <companyname><![CDATA[Max Mustermann GmbH]]></companyname>
</companydetails>
...

xpath to company name: /jobfeed/joblisting/companydetails/companyname (CDATA declared)


3.3 CONTRACT

This is the main node to provide detailed information about contract types, especially used by agencies with different end customers. Do not put in any value directly inside this node, please use the subnodes instead.

...
<companydetails>
  <contract>
    ...
  </contract>
</companydetails>
...

xpath to contract: /jobfeed/joblisting/companydetails/contract


3.4 CONTRACT – NAME

This node contains the name and – where necessary – additional information about the contract that is valid for consumption of credits.

1 2 3 4 5 6 7… <companydetails>     <contract>         <name><![CDATA[Professional Rahmenvertrag]]></name>     </contract> </companydetails> …




xpath to name: /jobfeed/joblisting/companydetails/contract/name (CDATA declared)


3.5 CONTRACT – INTERNSHIP

In case a customer has an internship contract with StepStone (not valid for all countries), this node can be used to declare a listing as an internship listing. Use true or false as value.

...
<companydetails>
  <contract>
    <internship><![CDATA[true]]></internship>
  </contract>
</companydetails>
...

xpath to internship: /jobfeed/joblisting/companydetails/contract/internship (CDATA declared)


3.6 CONTRACT – DURATION

For customers using contracts with different durations this node is used to set the correct value. Possible values are: 30, 60, 90, 360.
Any other value will be set to Default: 30.

...
<companydetails>
    <contract>
        <duration><![CDATA[90]]></duration>
    </contract>
</companydetails>
...

xpath to duration: /jobfeed/joblisting/companydetails/contract/duration (CDATA declared)



3.14 RECRUITER

This node contains a recruiter’s contact information. It can be useful in case an offline notification or information for statistics are requested. Do not put in any value directly inside this node, please use the subnodes instead.

...
<companydetails>
  <recruiter>
    ...
  </recruiter>
</companydetails>
...

xpath to recruiter: /jobfeed/joblisting/companydetails/recruiter


3.15 RECRUITER – ID


3.16 RECRUITER – POSITION

The recruiter’s position title.

...
<recruiter>
  ...
  <position><![CDATA[Recruiting Manager]]></position>
</recruiter>
...

xpath to recruiter position: /jobfeed/joblisting/companydetails/recruiter


3.17 RECRUITER – GENDER

The recruiter’s gender, please use M or F in upper case.

...
<recruiter>
  ...
  <gender><![CDATA[M]]></gender>
</recruiter>
...

xpath to recruiter gender: /jobfeed/joblisting/companydetails/recruiter/gender (CDATA declared)


3.18 RECRUITER – FIRST NAME

The recruiter’s first name.

...
<recruiter>
  ...
  <firstname><![CDATA[Max]]></firstname>
</recruiter>
...

xpath to recruiter first name: /jobfeed/joblisting/companydetails/recruiter/firstname (CDATA declared)


3.19 RECRUITER – LAST NAME

The recruiter’s last name.

...
<recruiter>
  ...
  <lastname><![CDATA[Mustermann]]></lastname>
</recruiter>
...

xpath to recruiter last name: /jobfeed/joblisting/companydetails/recruiter/lastname (CDATA declared)


3.20 RECRUITER – EMAIL

The recruiter’s email. Please insert a valid email-address.

...
<recruiter>
  ...
  <email><![CDATA[mustermann@company-group.de]]></email>
</recruiter>
...

xpath to recruiter email: /jobfeed/joblisting/companydetails/recruiter/email (CDATA declared)


3.21 RECRUITER – PHONE

The recruiter’s phone number.

...
<recruiter>
  ...
  <phone><![CDATA[+4912356789]]></phone>
</recruiter>
...

xpath to recruiter email: /jobfeed/joblisting/companydetails/recruiter/phone (CDATA declared)