- Overview
- Scenario 1: ATS integration with sub-account
- Scenario 2: Crawled or hosted jobs with sub-account
- Overview
- Requirements
- Implementation
- Valid
jobFeedTypevalues - Scenario 3: Direct billing, no sub-account
- Overview
- Requirements
- Implementation
- Troubleshooting
- Scenario 4: No ATS integration
- Overview
- When to use Job Sync API
- Next steps
- Related documentation
Agency scenarios
How different client setups affect Job Update API usage.
By using this API and its documentation and building an integration, you agree to the Additional API Terms and Guidelines.
Overview
If you are an ad agency, the employer you work for is your client. How you manage that client’s jobs on Indeed depends on the client’s setup.
This guide explains the main agency scenarios and what to do in each one.
Scenario 1: ATS integration with sub-account
Your client uses an ATS with Indeed Apply, and you have a sub-account for that client.
This is the most common agency setup. Follow the Job Update API guide.
Scenario 2: Crawled or hosted jobs with sub-account
Indeed crawls your client’s site for jobs, or your client creates jobs directly on Indeed. You have a sub-account for that client.
Overview
If Customer Support confirms that your client uses crawled or hosted jobs instead of integrated jobs, use the jobFeedType filter to retrieve those jobs.
By default, findEmployerJobsPartner returns jobs from XML feeds or API integrations. To retrieve crawled or hosted jobs, set jobFeedType explicitly.
Requirements
Before you use this approach:
- Confirm with Indeed Customer Support that your client uses crawled or hosted jobs.
- Confirm with your client that they want to keep using crawled or hosted jobs instead of integrated jobs.
Implementation
When you call findEmployerJobsPartner, include the jobFeedType filter.
For crawled jobs:
query FindEmployerJobsPartner { findEmployerJobsPartner( input: { filters: { legacySourceId: "60a9614a5d973a21", jobFeedType: ["CRAWLED_FROM_WEB"] } }, first: 10 ) { employerJobs { id jobData { title } } }}For hosted jobs:
query FindEmployerJobsPartner { findEmployerJobsPartner( input: { filters: { legacySourceId: "60a9614a5d973a21", jobFeedType: ["CREATED_ON_INDEED"] } }, first: 10 ) { employerJobs { id jobData { title } } }}Valid jobFeedType values
CRAWLED_FROM_WEB: Indeed crawled the job from the web.CREATED_ON_INDEED: Someone created the job directly on Indeed.INTEGRATED_FROM_PARTNER: A partner system, such as an XML feed or Job API, sent the job. This is the default.UNKNOWN: Indeed cannot classify the job feed type.
For more information, see the findEmployerJobsPartner API reference.
Scenario 3: Direct billing, no sub-account
You do not have a sub-account for this client. Indeed bills the client directly, and you manage the client’s job content.
Overview
If Indeed bills the client directly and you do not have a sub-account, you must have access to the client’s employer account before you can manage job content through the Job Update API.
Requirements
Ask your client to add your developer account, the account you used to create your OAuth client ID, to the client’s employer account.
Implementation
-
Ask your client to add your developer account
Ask your client to add your developer account as a secondary user on their employer account. They can do this from their Indeed Account page.
-
Verify employer account access
After the client adds your developer account:
- Get an access token with
scope=employer_access. - Call the
https://secure.indeed.com/v2/api/appinfoendpoint. - Confirm that the client’s employer account appears in the response.
- Get an access token with
-
Get an employer access token
After you verify access, get an access token that represents the employer to call the Job Update API.
Troubleshooting
The employer account does not appear in the list
- Verify that your client added your developer account as a secondary user.
- Confirm that your client granted the correct permissions.
- Contact your Indeed Agency Customer Support representative for help.
You cannot get an employer access token
- Verify that you are using the correct developer account.
- Verify that you created your OAuth client ID with the same developer account that the client added.
- For more help, see Troubleshoot OAuth errors.
For more information, see Get access token that represents employer and Sponsored Jobs API account management.
Scenario 4: No ATS integration
Your client’s ATS does not integrate with Indeed Apply, so you send the client’s jobs to Indeed yourself.
Overview
If your client’s ATS does not integrate with Indeed Apply, do not use the Job Update API. Use the Job Sync API instead.
When to use Job Sync API
Use the Job Sync API when:
- Your client’s ATS does not integrate with Indeed Apply.
- You need to create, update, or expire jobs on Indeed.
- You send jobs directly to Indeed instead of managing ATS-sourced jobs.
Next steps
- Review the Job Sync API documentation.
- Follow the Job Sync API guide to implement job posting management.
Related documentation
- Job Update API guide - Standard workflow for Scenario 1.
- Job Sync API - Use for Scenario 4, when you send jobs directly to Indeed.
- Get access token that represents employer - Required for Scenario 3.
- Sponsored Jobs API account management - Employer account details.