- Overview
- Scenario 1: ATS integration with sub-account
- Scenario 2: Crawled or hosted jobs with sub-account
- Overview
- Requirements
- Implementation
- Valid jobFeedType values
- 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
Understand different client setups and how they 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, your client is the employer that hired you. Different client setups require different approaches to managing jobs on Indeed. This guide explains the main scenarios for ad agency partners and provides scenario-specific guidance.
Scenario 1: ATS integration with sub-account
Your client uses an ATS that has an Indeed Apply integration and you have a sub-account for this client.
This scenario applies to most agency:client relationships. Follow the Job Update API guide.
Scenario 2: Crawled or hosted jobs with sub-account
Indeed crawls the web to get your client’s jobs, or your client hosts their jobs on Indeed. You have a sub-account for this client.
Overview
If Customer Support indicates that your client has opted to use crawled or hosted jobs instead of integrated jobs, you must use the jobFeedType filter to get these jobs.
By default, findEmployerJobsPartner returns jobs that Indeed gets from XML feeds or API integrations. To get crawled or hosted jobs, specify the jobFeedType filter.
Requirements
Before using this approach:
- Confirm with Indeed Customer Support that your client has opted to use crawled or hosted jobs
- Confirm with your client that they want to use crawled or hosted jobs instead of integrated jobs
Implementation
When calling findEmployerJobsPartner, include the jobFeedType filter in your request:
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: Jobs sourced from the internetCREATED_ON_INDEED: Jobs created directly on IndeedINTEGRATED_FROM_PARTNER: Jobs integrated from partner systems (XML feeds, Job API) - this is the defaultUNKNOWN: Unknown or unclassified job feed type
For more information about the jobFeedType filter, 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 their job content.
Overview
When Indeed bills your client directly and you don't have a sub-account, you need access to the client's employer account to manage their job content through the Job Update API.
Requirements
Your client must add your developer account to their employer account. You used the developer account to create your OAuth client ID.
Implementation
-
Ask your client to add your developer account
Your client must add your developer account that you used to create your OAuth client ID to their employer account as a secondary user. They can do this from their Indeed Account page.
-
Verify employer account access
After your client adds your developer account, confirm access to their employer account:
-
Get an access token with
scope=employer_access. -
Call the
https://secure.indeed.com/v2/api/appinfoendpoint.The client's employer account appears in the list.
-
-
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 doesn't appear in the list
- Verify that your client added your developer account that you used to create your OAuth client ID as a secondary user
- Confirm that your client granted appropriate permissions
- Contact your Indeed Agency Customer Support representative for assistance
You can't get an employer access token
- Ensure you're using the correct developer account
- Verify that your OAuth client ID was created with the developer account that your client added
- See Troubleshoot OAuth errors for more help
For more information about employer account access, see Get access token that represents employer and Sponsored Jobs API account management.
Scenario 4: No ATS integration
Your client doesn't use an ATS that has an Indeed Apply integration with Indeed, so you send your client’s job to Indeed.
Overview
If your client doesn't use an ATS with an Indeed Apply integration, you don't need to use the Job Update API. Instead, use the Job Sync API to send jobs to Indeed.
When to use Job Sync API
Use the Job Sync API when:
- Your client doesn't have an ATS with an Indeed Apply integration
- You need to create, update, or expire jobs on Indeed
- You're sending jobs directly to Indeed (not managing existing jobs from an ATS)
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 - For Scenario 4 (sending jobs directly to Indeed)
- Get access token that represents employer - Required for Scenario 3
- Sponsored Jobs API account management - Employer account information