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.
Disposition Sync API integration guide
After you integrate the Disposition Sync API:
- 1.Disposition Sync API overview – Use the Disposition Sync API to send disposition data for Indeed Apply and non-Indeed Apply jobs to Indeed.
- 2.Authenticate.
- 3.Send disposition data for Indeed Apply jobs.
- 4.Troubleshoot errors.
GraphQL API references
partnerDisposition.send– Sends disposition data for Indeed Apply jobs.
Disposition Sync API references
Disposition Sync API overview
Use the Disposition Sync API to send disposition data for Indeed Apply and non-Indeed Apply jobs to Indeed.
To submit disposition data to Indeed, integrate the Disposition Sync API.
Send disposition data with the partnerDisposition.send mutation.
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 | Indeed-assigned unique ID for Indeed Apply jobs. Identifies the candidate and the job. |
ittk | Indeed Tracking Token Key (ITTK). Tracks the job application. |
alternateIdentifier | Alternate set of identifiers for the job and job seeker you send a disposition for.
|
Authentication
When you become an Indeed partner, Indeed creates an app for your integration. Sign in to Partner Console to view the app and your OAuth credentials: client ID, secret, and a 3-legged OAuth authorization code. Exchange those 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 } } }}The SendPartnerDispositionInput input object requires the dispositions field, which holds an array of PartnerDispositionInput objects. Every PartnerDispositionInput field is required, except rawDispositionDetails.
The partnerDisposition.send mutation returns the SendPartnerDispositionPayload type.
The return type includes:
- The number of dispositions that succeeded.
- An array of any failed dispositions. Each entry includes the application identifiers and the failure reason.
Troubleshoot errors
To troubleshoot OAuth errors that can occur before you access GraphQL, see Troubleshoot OAuth errors.
For 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. Employer did not select the candidate. |
|
| 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 | Recruiter contacted the candidate by phone or email.
|
|
| 7 | DROPPED_DUPLICATE | Use this status only for an 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 status only for an 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 status only for an 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 status only for an 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 | Employer closed the job. |
|
| 14 | JOB_INACTIVE | The job is inactive and no longer accepts applications. |
|
| 15 | LIKED | Recruiter liked, favorited, or shortlisted the application. |
|
| 16 | OFFER_DECLINED | Candidate declined the offer. |
|
| 17 | OFFER_MADE | Employer made an offer to the candidate. |
|
| 18 | ONBOARDED | Employer onboarded the applicant. |
|
| 19 | POSITIVELY_SCREENED | Applicant passed pre-hire screening. Maps to the |
|
| 20 | REVIEW | Recruiter is reviewing the application. |
|
| 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 check. Can include license verification, drug test, and other methods. |
|
| 24 | WITHDRAWN | Candidate withdrew the application. |
|
Disposition Sync API FAQs
When an employer changes the status of an Indeed candidate in the ATS, the ATS sends the new status signal to Indeed, along with an anonymized application ID and a date/time stamp.
Indeed's job seeker product team aggregates and analyzes the disposition data Indeed collects from global ATSs. Indeed uses this data to improve job advertisement targeting and the application experience, so candidates can better understand how the skills on their resumes meet your requirements.
When clients are already opted in, encourage them to move candidates through the stages within their ATS. For example, after a recruiter reviews a CV, change the status to reviewed/screened, and so on.
Statuses vary by ATS. The most important thing is that Indeed receives as many updates as possible for every candidate in the employer's pipeline.
Clients who send continuous stage and status updates can:
- Help Indeed deliver better-matched candidates over time.
- Quickly identify which roles do not yet have enough candidates, so the client can shift focus and budget to the roles that need help.
- Better understand hiring timelines by analyzing how long each stage typically takes.
Indeed considers any signal beyond NEW, INCOMPLETE, and UNABLE_TO_MAP a quality signal. To qualify for tiered status, an ATS must reach a quality signal adoption rate of at least 55%.
Indeed measures an ATS's disposition adoption rate as the share of Indeed Applyable jobs that send disposition signals back to Indeed. If every one of your clients opts in to Indeed Apply and the ATS confirms applicant receipt, your disposition adoption rate is 100%. If half of your clients opt in to Indeed Apply but the ATS sends disposition signals on every one of those jobs, your disposition adoption rate is also 100%.
Indeed understands that ATS partners cannot control how their clients move candidates through the hiring funnel. Indeed measures disposition signal adoption as the share of Indeed Apply-enabled jobs that send a signal. If Indeed receives confirmation that the ATS received the application, that counts as a signal sent. Indeed encourages partners to map every quality disposition signal, encourage clients to use the signals, and automate signal delivery to Indeed when applicants reach milestones to improve the performance of the Indeed Apply integration and build a higher-quality pipeline over time.
Salary and location fields are data nodes that partners send to Indeed with their clients' jobs. According to job seekers, salary is one of the most important pieces of information. Job location is one of the most-requested details for a job description, and ideally as precise as possible.
Jobs with salary and a precise location perform better. Sponsored indexed jobs with salary and a precise location receive:
- 2.5X more impressions per job
- 2.3X more clicks per job
- 3.3X more apply starts per job
Disposition Sync API glossary
For definitions of Disposition Sync API terms, see Disposition Sync API glossary.