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
  • FR = France
  • NL = Netherlands
  • PL = Poland
  • 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
  • FR = FR / EN
  • NL = NL / EN
  • PL = PL / 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:

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

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:

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

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:

  • DE: Ihr Profil
  • EN: Your profile
  • FR: Votre profil
  • NL: Jouw profiel
  • PL: Twój profil

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:

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

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:

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

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

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)

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


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 either 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></images></layoutdetails>

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

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[Professional Rahmenvertrag]]--></name>
</contract>
</companydetails>
...

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


4.5 Contract – product

This node covers all products available and is most flexible in case of future additions or changes. Available products in the respective country can be clarified with the StepStone Sales representative. Possible values are:

  • Starter
  • Professional
  • Internship
  • Premium
  • Bluecollar
From 06.2021 new products will be available

  • Select (15 days duration)
  • Select Brand (Upgrade in Branding, from 09.2021)
  • Select Plus (30 days duration)
  • Select Plus Brand (Upgrade in Branding, from 09.2021)
  • Pro (30 days duration)
  • Pro Plus (30 days duration)
  • Pro Ultimate (45 days duration)
  • Pro XXL (up to 360 days duration)
  • Pro Campus (30 days duration)

...
<companydetails>
<contract>
	<product><!--[CDATA[Internship]]--></product>
	</contract>
</companydetails>
...

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


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


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


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[M]]--></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[Max]]--></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 10.05.2121

Was this article helpful?

Related Articles