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 , example:

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

1.3 joblisting (main listing node)

Each new listing starts with a main node . 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" recruiter_id="12345" 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 in node /jobfeed/joblisting/companydetails/companyname 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
  • 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

is the most important node inside the main node joblisting. The subnodes of 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)

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
  • NL = NL / 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 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 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:

  • AT/DE: Einleitung
  • EN: Introduction
  • BE/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 , 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:

  • AT/DE: Ihre Aufgaben
  • EN: Your tasks
  • BE/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 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:

  • AT/DE: Ihr Profil
  • EN: Your profile
  • BE/NL: Jouw profiel

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


2.7 offer (optional)

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:

  • AT/DE: Wir bieten
  • EN: We offer
  • BE/NL: Ons aanbod

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


2.8 contactInfo (optional)

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:

  • AT/DE: Kontakt
  • EN: Contact
  • BE/NL: Geïnteresseerd?

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


2.9 job locations (Mandatory)

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

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 -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

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

Keywords are not longer supported. All content in a job listings is available for keyword search.

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


2.17 apply (mandatory)

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


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)


2.21 salary (OPTIONAL)

is the top node of the section containing possible salary-data. Do not put in any value directly inside this node, please use the subnodes instead. Salary information is basically optional. But please keep in mind that for some countries (like for example Austria) this information is mandatory inside the listing content.

...
<jobdetails>
<salary>...</salary>
</jobdetails>
...


xpath to salary: /jobfeed/joblisting/jobdetails/salary


2.22 minimum

This node contains the minimum amount of salary for the posted job. The provided value must be an integer. Please avoid usage of dots, commas or similar.

...
<jobdetails>
<salary>
<minimum>20000</minimum>
</salary>
</jobdetails>
...


xpath to minimum: /jobfeed/joblisting/jobdetails/salary/minimum
Datatype: Integer

Example decimal value
In case decimal value is provided it must use the dot, like “10.5”

<salary_details>
        <minimum><![CDATA[10.5]]></minimum>
        <maximum><![CDATA[15.2]]></maximum>
        <currency><![CDATA[euro]]></currency>
        <period><![CDATA[hourly]]></period>
</salary_details>

2.23 maximum

This node contains the maximum amount of salary for the posted job. The provided value must be an integer. Please avoid usage of dots, commas or similar.

...
<jobdetails>
<salary>
<maximum>50000</maximum>
</salary>
</jobdetails>
...


xpath to maximum: /jobfeed/joblisting/jobdetails/salary/maximum
Datatype: Integer


2.24 currency

Please use values according to ISO 4217.

...
<jobdetails>
<salary>
<currency><!--[CDATA[EUR]]--></currency>
</salary>
</jobdetails>
...


xpath to currency: /jobfeed/joblisting/jobdetails/salary/currency


2.25 period

The period can be defined in hourly, daily, monthly or yearly.

...
<jobdetails>
<salary>
	<period><!--[CDATA[monthly]]--></period>
</salary>
</jobdetails>
...


xpath to period: /jobfeed/joblisting/jobdetails/salary/period


(3) Layout informations

3.1 layoutdetails

contains all layout specific values that can be used on StepStone. Do not put in any value directly inside this node, please use the subnodes instead.

...
<layoutdetails>
...
</layoutdetails>
...


xpath to layoutdetails: /jobfeed/joblisting/layoutdetails


3.2 images

This is the base node for all image related data. Do not put in any value directly inside this node, please use the subnodes instead.

...
<layoutdetails>
<images>...</images>
</layoutdetails>
...


xpath to images: /jobfeed/joblisting/layoutdetails/images


3.3 header

For StepStone listings where a header image is allowed it can be defined in this node/s. Maximum of allowed headerpictures is 3, one image per node. Recommended values for images:

  • Recommended minimum 1140px * 456px.
  • size ratio 5:2
  • resolution 72 dpi
  • filesize recommended 500 KB
  • Supported formats are JPG and PNG

2 or 3 images can be used for a slider. In that case all images used must have the same width and height.

...
<layoutdetails>
<images>
  <header>
    <!--[CDATA[https://www.exampleimage/images/headerpicture01.jpg]]-->
  </header>
  <header>
    <!--[CDATA[https://www.exampleimage/images/headerpicture02.jpg]]--> 
  </header>
  <header>
    <!--[CDATA[https://www.exampleimage/images/headerpicture03.jpg]]-->
  </header>	
</images>
</layoutdetails>
...


xpath to header: /jobfeed/joblisting/layoutdetails/images/header (CDATA declared)


3.4 background image

In case you want to set a background-image for a listing you can use this node. Recommended values for images:

  • minimum width and height: 1920px * 1080px
  • size ratio 16:9
  • resolution 72 dpi
  • filesize maximum of 2 MB
  • Supported formats are JPG and PNG, JPG is preferred
...
<layoutdetails>
<images>
...
<backgroundimage>
<!--[CDATA[https://www.exampleimage/images/backgroundimage.jpg]]-->
</backgroundimage>
</images>
</layoutdetails>
...

xpath to header: /jobfeed/joblisting/layoutdetails/images/backgroundimage (CDATA declared)


3.5 colors

This is the base node for defining individual colors. Do not put in any value directly inside this node, please use the subnodes instead.

...
<layoutdetails>
<colors>
	...
</colors>
</layoutdetails>
...


xpath to html: /jobfeed/joblisting/layoutdetails/colors (CDATA declared)


3.6 background

This value sets the border color of the listing’s Liquid Design version, but only on mobile devices. Please use hexadecimal color code including the hash sign. Shorthand CSS colors are not allowed.

...
<layoutdetails>
<colors>
	<background><!--[CDATA[#cccccc]]--></background>
</colors>
</layoutdetails>
...


xpath to background: /jobfeed/joblisting/layoutdetails/colors/background (CDATA declared)


3.7 headline

The secondary color formats headlines and links in ‘contact’ section displayed in Liquid Design. Please use hexadecimal color code including the hash sign. Shorthand CSS colors are not allowed.

...
<layoutdetails>
<colors>
	<headline><!--[CDATA[#0c2577]]--></headline>
</colors>
</layoutdetails>
...


xpath to headline: /jobfeed/joblisting/layoutdetails/colors/headline (CDATA declared)


3.8 video

When using StepStone Product that allows branding, a video link (Youtube, Vimeo or Wistia) can be added in this node.

...
<layoutdetails>
<video><!--[CDATA[https://www.youtube.com/embed/hEcnAi5kQbM]]--></video>
</layoutdetails>
...


xpath to video: /jobfeed/joblisting/layoutdetails/video (CDATA declared)


(4) Company information

4.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


4.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)


4.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


4.4 Contract – name

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

...
<companydetails>
<contract>
<name><!--[CDATA[customers frame contract]]--></name>
</contract>
</companydetails>
...


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


4.5 Contract – product (mandatory)

This node covers all products available in the respective Stepstone country (DE, AT, BE, NL) and is most flexible in case of future additions or changes.

Below please find an overview for each country of the possible string values.

BE – Belgium

Possible values are:

Starter
Professional
Premium
Internship

NL – The Netherlands

Possible values are:

Starter
Professional
Premium
Internship

DE – Germany

Possible values are:

Select
Select Brand
Select Plus
Select Plus Brand
Pro
Pro Plus
Pro Ultimate
Pro Campus
Pro XXL

AT- Austria

Possible values are:

Starter
Professional
Internship
Premium (special agreement needed)

XML node valid for all countries
...
<companydetails>
<contract>
	<product><!--[CDATA[Pro]]--></product>
</contract>
</companydetails>
...


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


4.6 Contract – duration

For customers using products with different durations this node is used to set the correct value.

BE – Belgium

Possible values are:
30, 60, 90, 360 

NL – The Netherlands

Possible values are:
30, 60, 90, 360 

DE – Germany

Not mandatory. Duration is defined by product.

15 (Select, Select Brand)
30 (Select Plus, Select Plus Brand, Pro, Pro Plus, Pro Campus)
60 (Pro Ultimate)
360 (Pro XXL)

AT – Austria

Mandatory for professional product.

Possible values are:
30, 60, 90, 360

XML node valid for all countries

...
<companydetails>
<contract>
<duration><!--[CDATA[30]]--></duration>
</contract>
</companydetails>
...


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


4.7 Billing

This is the main node to provide detailed billing information. Do not put in any value directly inside this node, please use the subnodes instead.

...
<companydetails>
<billing>
...
</billing>
</companydetails>
...


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


4.8 Billing – order number

Order- or PO-numbers can be provided in this node.

...
<billing>
...
<ordernumber><!--[CDATA[ordernumber/PO-Nr.]]--></ordernumber>
</billing>
...


xpath to order number: /jobfeed/joblisting/companydetails/billing/ordernumber (CDATA declared)


4.9 Billing – cost center

Cost center information.

...
<billing>
...
<costcenter><!--[CDATA[costcenter]]--></costcenter>
</billing>
...


xpath to cost center: /jobfeed/joblisting/companydetails/billing/costcenter (CDATA declared)


4.10 Billing – company

The company’s name that receives the billing. This is a different information as provided in 4.2 company name.

...
<billing>
...
<company><!--[CDATA[company]]--></company>
</billing>
...


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


4.11 Billing – contact

A person’s name or a department that is responsible for this billing.

...
<billing>
...
<contact><!--[CDATA[orderer]]--></contact>
</billing>
...


xpath to billing contact: /jobfeed/joblisting/companydetails/billing/contact (CDATA declared)


4.12 Billing – address

Additional address information for 4.10 company and 4.11 contact.

...
<billing></billing>

<address><!--[CDATA[billing address]]--></address>		
...


xpath to billing address: /jobfeed/joblisting/companydetails/billing/address (CDATA declared)


4.13 Billing – reference

This can be a manual entered reference string to easily identify a certain listing. This value is only for statistic purposes and won’t be used in the way the value of the node is used.

...
<billing>
<reference><!--[CDATA[internal / secondary reference]]--></reference>
</billing>
...


xpath to billing reference: /jobfeed/joblisting/companydetails/billing/reference (CDATA declared)


4.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


4.15 recruiter – id

Recruiter ID is not used for automatic processing.


4.16 recruiter – position

The recruiter’s position title.

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


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


4.17 recruiter – gender

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

...
<recruiter>
...
<gender><!--[CDATA[F]]--></gender>
</recruiter>
...


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


4.18 recruiter – first name

The recruiter’s first name.

...
<recruiter>
...
<firstname><!--[CDATA[Marlene]]--></firstname>
</recruiter>
...


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


4.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)


4.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)


4.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)

Updated on 2024-01-18

Was this article helpful?

Related Articles