Push

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

StepStone PUSH feed workflow: post, process, response and retry on internal error

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.

ParameterDescription
senderidStepStone internal company identifier.
organisationidStepStone internal user identifier.
referenceCustomer job reference. It must be unique within the same sender/company.
listingidStepStone internal numeric listing identifier.
listingexpirationDate on which the listing expires.
actionProcessed request type. Possible response values include INSERT, UPDATE, IGNORE and OFFLINE.
statusStatus message for the processed request.
statuscodeNumeric status code. See the Status codes documentation for handling instructions.
commentsContains further messages of status code.
warningcodeOptional numeric warning code.
contract_endDateContract end date. This value is not returned in every response.
contract_creditsAlways returns 0 (deprecated feature).

Example responses

Plain text response Status OK (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;
Plain text response Status ERROR (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;
XML response Status OK (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>
XML response Status ERROR (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.

Interface

All PUSH requests are sent to the StepStone HTTP POST service:

https://jobfeed.stepstone.com/listing/

The request contains the following configuration parameters:

ParameterDescription
usernameCustomer username provided by StepStone.
pwdCustomer password provided by StepStone.
xmlresponseControls the response format. Supported values are true and false.
xmlfileThe 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));
Updated on 2026-10-16

Related Articles