Business rationale

At StepStone, we care not only about quantity but also about the quality of applicants delivered to our clients. We’d like to build our stronger partnerships with ATSes and Clients and receive feedback on Application Status and be able to provide this feedback to jobseekers using our services.

We’d like to:

  • show job seekers information about their applications in one place for all jobs they applied to
  • get some data proving the quality of applicants we send to clients and their ATSes in order to improve our services

Technical implementation

Candidate Status flow for ATSes that implement ATSi Apply API:

  1. ATS receives an apply request and saves the value of AtsiApplicationId (a field in the Header section) with the job application.
  2. Any change in the job application status on the ATS side should trigger sending a message to the ATSi Application Status service with a status change information and AtsiApplicationId correlated with the application. The message format is described below.

Authorization

Authorization to ATSi Application Status service is done by setting a token value into the request header. To get a token and ATS_ID values contact ATSi support team.
A token value must be set under a request header key: X-AtsiToken.

Below is a sample curl request with an authorization token and an application status change body.

curl -X POST https://atsi-prod/qs-api/public/atsi/v1/ATS_ID \
  -H 'Content-Type: application/json' \
  -H 'X-AtsiToken: 1nwh2px2exa8a1d7006h0cnbof7' \
  -d '{
    "AtsiApplicationId": "51c3be16-0f93-41ed-9cc0-9092222d7333",
    "Status": "QUALIFIED"
  }'

Application status change message

Every change of a job application status should trigger sending an ApplicationStatus message to the ATSi Application Status service. The message must have a format as below and contain X-AtsiToken in the request header.

{
  "AtsiApplicationId": "51c3be16-0f93-41ed-9cc0-9092222d7333",
  "Status": "QUALIFIED"
}

Available statuses:
APPLICATION_CONFIRMED – Candidate has successfully applied – Application is received by the ATS
QUALIFIED– Candidate has been chosen/selected for an interview.
HIRED – Candidate was hired
REJECTED – Candidate was rejected/has withdrawn interest

API Responses

Successfull response – HTTP 200 OK

{
   "Status": "OK"
}

Invalid status or ATS_ID – HTTP 400 BAD REQUEST

{
   "Status": "ERROR",
   "Message": "Invalid Status value, supported values are [APPLICATION_CONFIRMED, QUALIFIED, HIRED, REJECTED]"
}

Invalid X-AtsiToken – HTTP 401 Unauthorized

{
   "Status": "ERROR",
   "Message": "Unauthorized, invalid token"
}