Introduction
A PUSH feed is typically used with the StepStone XML job-feed format. The provider sends individual job offers to StepStone as XML requests.
The supported actions are:
INSERT– publishes a new offer.OFFLINE– removes an offer from the website without deleting it from the system.UPDATE– updates an existing offer. On multilingual StepStone sites, the same action can also be used to add another language version.
Default action-based workflow: a listing remains online until the validity period defined by the contract ends, unless an OFFLINE action is received earlier for that job.
With a PUSH integration, XML data is submitted directly to the StepStone JobFeed interface by HTTP POST. Customer-specific credentials are required for successful posting.
XML is used because it provides a standardized and machine-readable format for transferring job information.
Actions – Detailed Overview
Insert
INSERT creates the offer and makes it visible on the StepStone site to which it was submitted. A successful insertion consumes one credit from the contract assigned to the customer.
Offline
OFFLINE changes the offer from online to offline. The listing is no longer visible on the StepStone site, but it remains stored in the database and can later be put online again with an UPDATE action. The reference number remains assigned to that offer and cannot be reused for a different listing.
Update
UPDATE applies the submitted data to an existing offer. Depending on the customer configuration, categorization values may not be changed by an update.
An update within the listing’s validity period does not consume another credit. If the validity period has already ended, an update may consume a credit. Some contracts do not allow reposting after expiry; in that case, the update is not performed.
Translate
Multilingual portals such as StepStone Belgium can hold multiple language versions of the same listing. A listing that is already online can therefore be published in an additional language.
To add a translation, submit the existing listing again with the same reference number and use UPDATE, but provide the new language value. Apart from categorization data, the content of each language version can differ independently.
When JobFeed receives an existing reference with another language value, it can identify the request as an additional language version.
How It Works

A request is posted to JobFeed, processed, and answered with a response. If processing succeeds, the workflow is complete. If the request fails, the provider should retry after a delay where appropriate.
Contract- or credit-related errors require clarification with StepStone Customer Service. Customer Service should also be contacted when other errors continue after retries.
For retry guidance and error handling, see the Status codes documentation.
Response
The JobFeed interface returns information about the processed request. Depending on the selected response mode, the result is returned as plain text or XML.
| Parameter | Description |
|---|---|
senderid | StepStone internal company identifier. |
organisationid | StepStone internal user identifier. |
reference | Customer job reference. It must be unique within the same sender/company. |
listingid | StepStone internal numeric listing identifier. |
listingexpiration | Date on which the listing expires. |
action | Processed request type. Possible response values include INSERT, UPDATE, IGNORE and OFFLINE. |
status | Status message for the processed request. |
statuscode | Numeric status code. See the Status codes documentation for handling instructions. |
comments | Contains further messages of status code. |
warningcode | Optional numeric warning code. |
contract_endDate | Contract end date. This value is not returned in every response. |
contract_credits | Always returns 0 (deprecated feature). |
Example responses
xmlresponse parameter set to false):Sender_ID=8812;Organisation_ID=12345;Listing_ID=12738;Reference=ABC12345;action=INSERT;STATUS=OK;contract_end_date=30/08/2018;Credits=0;StatusCode=100;listingExpiration=20/04/2018;
xmlresponse parameter set to false):language missing;Sender_ID=8812;Organisation_ID=12345;Listing_ID=12738;Reference=ABC12345;action=ERROR;STATUS=ERROR;contract_end_date=30/08/2018;Credits=0;StatusCode=205;listingExpiration=20/04/2018;
xmlresponse parameter set to true):<jobfeedresponse>
<senderid>8812</senderid>
<organisationid>12345</organisationid>
<reference>ABC12345</reference>
<listingid>12738</listingid>
<listingexpiration>30/07/2018</listingexpiration>
<action>INSERT</action>
<status><![CDATA[OK]]></status>
<statuscode>100</statuscode>
<comments/>
<contract>
<enddate>30/06/2018</enddate>
<credits>0</credits>
</contract>
</jobfeedresponse>
xmlresponse parameter set to true):<jobfeedresponse>
<senderid>8812</senderid>
<organisationid>12345</organisationid>
<reference>ABC12345</reference>
<listingid>12738</listingid>
<listingexpiration>30/07/2018</listingexpiration>
<action>ERROR</action>
<status><![CDATA[ERROR]]></status>
<statuscode>205</statuscode>
<comments>language missing</comments>
<contract>
<enddate>30/06/2018</enddate>
<credits>0</credits>
</contract>
</jobfeedresponse>
Create URL
Create a Link to the Offer from listingid
If the response contains a listing ID, a direct job link can be created by adding that ID to the appropriate StepStone job-board URL.
| Site | Example URL for listingid = 123456 |
|---|---|
| AT | https://www.stepstone.at/job/123456 |
| BE | https://www.stepstone.be/job/123456 |
| DE | https://www.stepstone.de/job/123456 |
| UK | https://www.totaljobs.com/job/123456 |
| NL | https://www.stepstone.nl/job/123456 |
| ZA | https://www.pnet.co.za/job/123456 |
Interface
All PUSH requests are sent to the StepStone HTTP POST service:
https://jobfeed.stepstone.com/listing/
The request contains the following configuration parameters:
| Parameter | Description |
|---|---|
username | Customer username provided by StepStone. |
pwd | Customer password provided by StepStone. |
xmlresponse | Controls the response format. Supported values are true and false. |
xmlfile | The XML document that should be processed. |
Example Request
Form form = new Form();
form.param("username", username);
form.param("pwd", password);
form.param("xmlresponse", "false");
form.param("xmlfile", xmlContent);
Response response = client
.target(httpPostUrl)
.request()
.post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE));