Most SAP SuccessFactors Recruiting Marketing sites do not show the job requisition id anywhere on the job page. Even the job page url only contains what is usually referred to as the job id. A quick example: https://careers.bjs.com/job/Chicopee-Cashier-Job-MA-01020/634239700/
. The highlighted number is the job id, which is only used by Recruiting Marketing. So, what can you do if need to find the corresponding job requisition id for, say, your custom SAP cloud app integration?
Recruiting Marketing actually provides an on-board solution: When a user clicks “Apply” on any job, a request is sent to an ajax endpoint ([rmk-domain]/services/cas/createpayload/
) to find the job requisition id which is then sent to Recruiting Management in order to start the application process. The request is sent as JSON, the response is sent as JSON and the endpoint does not require any sort of authentication. Let’s take a quick look at the request and response for the above mentioned job.
Request JSON
{
"context": {
"action": "apply",
"locale": "en_US",
"source": "",
"categoryID": "",
"jobID": 634239700,
"brand": "",
"email": ""
},
"sourceData": "",
"agent": {
"keywords": "",
"location": "",
"q": "",
"locationSearch": "",
"geoLocation": "",
"longitude": "",
"latitude": "",
"distance": "",
"units": "",
"country": "",
"frequency": 7,
"filterString": ""
}
}
As you can see, most of the request fields are empty. The only fields you actually need to retrieve the job req id are the action
and jobId
fields under context
. And yes, the retrieval works just fine if you omit the other fields entirely and send something like this:
{
"context": {
"action": "apply",
"jobID": 634239700
}
}
Response JSON
{
"success": true,
"targetUrl": "https://career4.successfactors.com/careers",
"correlation_Id": 22101986300,
"company": "BJSProd",
"lang": "en_US",
"clientId": "jobs2web",
"socialApply": false,
"career_ns": "job_application",
"navBarLevel": "",
"login_ns": "",
"career_job_req_id": "97495",
"externalApply_correlation_Id": null,
"jobPipeline": "Direct",
"ucc_firstname": "",
"ucc_lastname": "",
"ucc_email": "",
"ucc_partnerProfile": "",
"site": "",
"isInternalUser": false
}
And there you have it: The response delivers, among other details, the career_job_req_id
.
A few quick notes on using this technique
When working with multiple Recruiting Marketing brands, you need to set the brand
parameter in the request in order to retrieve the correct site id for the brand. You will still get the job req id for custom brands if you don’t provide the parameter, but the site
field (which would contain the brand’s site id) will be empty.
Recruiting Marketing often returns expired jobs in the search as well as in various feeds. You can easily detect that when making the request, since you will get an HTTP 410 Gone
status code and the success
field in the response body will be false
. However, the endpoint returns 410 Gone
regardless of whether the provided jobId
actually ever existed, so keep that in mind.