Disposition Sync API guide
Send job application disposition data to Indeed.
By using this API and its documentation and building an integration, you agree to the Additional API Terms and Guidelines.
Integrate with the Disposition Sync API
After you integrate with the Disposition Sync API:
- 1.Disposition Sync API overview - Learn about the Disposition Sync API.
- 2.Authenticate.
- 3.Send disposition data for Indeed Apply jobs.
- 4.Troubleshoot errors - Resolve GraphQL errors.
Disposition Sync API references
partnerDisposition.send- Sends disposition data for Indeed Apply jobs.
Disposition Sync API overview
Use the Disposition Sync API to send disposition data for Indeed Apply and non-Indeed Apply jobs to Indeed.
Disposition Sync API integration is required to submit disposition data to Indeed.
Use the partnerDisposition.send mutation to send disposition data to Indeed.
Include one of these identifiers in the PartnerDispositionIdentifierInput input object:
| Identifier | Description |
|---|---|
universalApplyId | Unique identifier for the job application in a standard format, such as Indeed Apply ID, Indeed Tracking Token Key (ITTK), or ApplyID. |
indeedApplyID | An Indeed-assigned unique ID for Indeed Apply jobs. Identifies the candidate and the job. |
ittk | Indeed Tracking Token Key (ITTK) to track the job application. |
alternateIdentifier | Alternate set of identifiers to specify the job and job seeker for which you are sending a disposition.
|
Authentication
When you become an Indeed partner, Indeed sets up an app for your integration. Log in to Partner Console to view your app and OAuth credentials (client ID, secret, and authorization code for 3-legged OAuth). Exchange credentials for an access token to authenticate API calls.
Send disposition data for Indeed Apply jobs
To call the API, use the send mutation in the partnerDisposition namespace:
mutation { partnerDisposition { send(input: { dispositions: [{ dispositionStatus: HIRED, rawDispositionStatus: "Hired", rawDispositionDetails: "", identifiedBy: { indeedApplyID: "12345", }, atsName: "MyATS", statusChangeDateTime: "2023-04-25T13:01:01.01Z", }, { dispositionStatus: HIRED, rawDispositionStatus: "Hired", rawDispositionDetails: "", identifiedBy: { indeedApplyID: "12345", }, atsName: "MyATS", statusChangeDateTime: "2023-04-25T13:01:01.01Z", } ], }) { numberGoodDispositions failedDispositions { identifiedBy { indeedApplyID } rationale } } }}In the SendPartnerDispositionInput input object, the dispositions field, which contains an array of PartnerDispositionInput objects, is required. All fields in PartnerDispositionInput are required, except the rawDispositionDetails field.
The partnerDisposition.send mutation returns the SendPartnerDispositionPayload return type.
This return type includes:
- The number of dispositions that succeeded.
- An array of any failed dispositions. Each disposition includes its application identifiers and the reason for the failure.
Troubleshoot errors
To troubleshoot OAuth errors that can occur before you access GraphQL, see Troubleshoot OAuth errors.
To troubleshoot GraphQL errors, see Troubleshoot GraphQL errors.
Indeed standard disposition statuses
The Indeed standard disposition statuses, or hiring stages, are:
| Indeed disposition status | Description | Example raw statuses from ATS | |
|---|---|---|---|
| 1 | HIRED | Required. Candidate accepted a job offer. |
|
| 2 | NEW | Required. ATS received a new job application. |
|
| 3 | NOT_SELECTED | Required. Candidate not selected. |
|
| 4 | ASSESS_QUALIFICATIONS | Pre-hire assessment. Can include skills tests, take-home assignments, and other methods. |
|
| 4 | BACKGROUND_CHECK | Background check in progress. |
|
| 6 | CONTACTED | Candidate contacted by phone or email.
|
|
| 7 | DROPPED_DUPLICATE | Use this disposition status only for application delivery failure, not for the application disposition. If a duplicate application exists and delivery fails asynchronously, the ATS returns HTTP |
|
| 8 | DROPPED_FRAUD_SPAM | Use this disposition status only for application delivery failure, not for the application disposition. If the application is flagged as fraud or spam and delivery fails asynchronously, the ATS returns HTTP |
|
| 9 | DROPPED_JOB_EXPIRED | Use this disposition status only for application delivery failure, not for the application disposition. If the job is expired or no longer available and delivery fails asynchronously, the ATS returns HTTP |
|
| 10 | DROPPED_OTHER | Use this disposition status only for application delivery failure, not for the application disposition. If delivery fails asynchronously for any other reason, the ATS returns HTTP |
|
| 11 | INCOMPLETE | Application incomplete. |
|
| 12 | INTERVIEW | Candidate is interviewing. Can span multiple interviews. |
|
| 13 | JOB_CLOSED | Job was closed. |
|
| 14 | JOB_INACTIVE | The job is inactive and no longer accepting applications. |
|
| 15 | LIKED | Recruiter liked, favorited, or shortlisted the application. |
|
| 16 | OFFER_DECLINED | Candidate declined the offer. |
|
| 17 | OFFER_MADE | Candidate received a job offer. |
|
| 18 | ONBOARDED | Applicant onboarded. |
|
| 19 | POSITIVELY_SCREENED | Applicant passed pre-hire screening. Maps to |
|
| 20 | REVIEW | Application under review. |
|
| 21 | SCREEN | Pre-hire screening. Can include phone screening and other methods. |
|
| 22 | UNABLE_TO_MAP | Use this status when no other status fits. | |
| 23 | VERIFY_ELIGIBILITY | Pre-hire eligibility. Can include license verification, drug test, and other methods. |
|
| 24 | WITHDRAWN | Candidate withdrew application. |
|
Disposition Sync API glossary
| Term | Description |
|---|---|
| ApplyID | A string of uppercase letters and digits appended to each URL when job seekers click through to career sites. It uniquely identifies the application so Indeed can track it and receive disposition data through the Disposition Sync API. |
| ATS | Applicant tracking system. Employers use an ATS to:
|
| disposition data | Any update to an application in your ATS. Includes actions a recruiter or hiring manager takes after a candidate applies. Examples:
|
| GraphQL | An open-source data query and manipulation language for APIs and a query runtime engine. GraphQL enables clients to use declarative data fetching to specify exactly which data they need from an API. Learn more at GraphQL. |
| Indeed Apply ID | An Indeed-assigned unique ID for Indeed Apply jobs. Used to reference the candidate and the job. |
| ITTK | Indeed Tracking Token Key (ITTK). Used to track the job applications sourced by Indeed. |
| job application | A job application. For an OAuth app, see OAuth app. |
Disposition Sync API FAQs
In the ATS, when an employer changes an Indeed candidate's status, the ATS transmits the new status with an anonymized application ID and a date/time stamp.
The job seeker product team aggregates and analyzes the disposition data that Indeed collects from global ATSs. The data improves job ad targeting and the application experience so candidates can better see how their resume skills match your requirements.
Discuss the importance of moving candidates through the stages within their ATS. For example, after reviewing a CV, change the status to reviewed/screened.
Statuses vary by ATS. Indeed needs as many updates as possible for each candidate in the employer's pipeline.
Benefits for clients who send continuous stage or status updates:
- Employers help Indeed match candidates better in the future.
- Employers can quickly see which roles have enough candidates and which do not, so they can shift focus and budget to roles that need more.
- Employers can understand hiring timelines better by seeing how long each stage usually takes.
Indeed defines quality signals as any status other than NEW, INCOMPLETE, and UNABLE_TO_MAP. For tiered status, an ATS needs a quality signal adoption rate of at least 55%.
Indeed measures an ATS's disposition adoption rate by how many Indeed Applyable jobs send disposition signals to Indeed. If all clients are opted in and the ATS sends receipt confirmation to Indeed, the rate is 100%. If 50% of clients are opted in but the ATS sends disposition signals for all those jobs, the rate is still 100%.