- 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
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 that hires you is your client. Your client setup determines how you manage jobs on Indeed. This guide covers the main ad agency scenarios and what to do for each one.
Scenario 1: ATS integration with sub-account
Your client uses an ATS with an Indeed Apply integration, and you have a sub-account for them.
This scenario covers most agency-client relationships. 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 hosts jobs on Indeed. You have a sub-account for them.
Overview
If Customer Support confirms that your client uses crawled or hosted jobs instead of integrated jobs, use the jobFeedType filter to fetch them.
By default, findEmployerJobsPartner returns jobs from XML feeds or API integrations. To get crawled or hosted jobs, set the jobFeedType filter.
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 prefer crawled or hosted jobs over integrated jobs.
Implementation
When you call findEmployerJobsPartner, include the jobFeedType filter:
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 (XML feed or Job API) sent the job. Default.UNKNOWN: Indeed cannot classify the job feed type.
For details on 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 while you manage their job content.
Overview
When Indeed bills the client directly and you have no sub-account, you need access to the client's employer account to manage their job content through the Job Update API.
Requirements
Have your client add your developer account — the one you used to create your OAuth client ID — to their employer account.
Implementation
-
Ask your client to add your developer account
Have your client add your developer account — the one 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 does not appear in the list
- Verify that your client added your developer account (the one you used to create your OAuth client ID) as a secondary user.
- Confirm that your client granted the right 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 developer account that your client added.
- For more help, see Troubleshoot OAuth errors.
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's ATS does not integrate with Indeed Apply, so you send their jobs to Indeed yourself.
Overview
If your client's ATS does not integrate with Indeed Apply, skip the Job Update API. Use the Job Sync API to send jobs to Indeed 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 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