Retrieve Candidates API guide
Get candidate information from Indeed for employers.
このAPIとそのドキュメントを使用して連携を構築すると、APIに関する追加の利用規約およびガイドラインに同意したことになります。
API overview
Call the Retrieve Candidates API to get candidate information from Indeed for employers.
Asset types
The Retrieve Candidates API returns these candidate asset types, which implement the AtsSyncCandidateSyncAsset interface:
-
AtsSyncCandidateSyncInterestedCandidateAssetfrom Smart Sourcing.Includes this candidate information (
AtsSyncCandidateSyncInterestedCandidate):AtsSyncCandidateSyncInterestedCandidate fields Field Description Type:
String!The candidate's full name. Type:
EmailAddress!The candidate's email address.
Type:
StringThe candidate's location, if provided.
A presigned S3 URL to download the candidate's resume. See Download and upload objects with presigned URLs (新しいウィンドウで開きます).
-
AtsSyncCandidateSyncSmartScreeningUpdateAssetfrom Smart Screening updates.Smart Screening updates apply to the partner, not to one employer registration, so any Smart Screening job can produce application updates. Fetch results omit
employerIdentifierand staging input omitsmetadata.employerIdentifier, so use the Indeed Apply ID to identify the application.Smart Sourcing requires
employerIdentifierbecause it targets one employer registration.Includes this candidate information (
AtsSyncCandidateSyncSmartScreeningUpdate):AtsSyncCandidateSyncSmartScreeningUpdate fields Field Description Application ID for the screening update. Select the Indeed Apply union member and read its indeedApply.indeedApplyId.Type:
FloatThe candidate's smart fit score, if available. Returns
nullif no score was staged.The candidate's resume file. Use:
resume {urlnamecontentType}The download URL is a short-lived presigned URL. See Download and upload objects with presigned URLs (新しいウィンドウで開きます).
Type:
DateTime!When the screening update was created. Order updates by this timestamp.
These fetch operations can return both types:
Create test assets (stageAssets) accepts either asset type as input.
Best practices
| Best practice | Description |
|---|---|
| Handle interfaces and unions defensively | For the For the |
| Apply updates in order | Order Smart Screening updates by Do not order Smart Screening updates by If you apply updates out of order, older data can overwrite newer data. |
API steps
After you integrate with the Retrieve Candidates API, complete these steps to get candidate information from Indeed for employers:
1. Authenticate
Indeed パートナーになると、Indeed が連携用のアプリを作成します。Partner Console (新しいウィンドウで開きます) にサインインして、アプリと OAuth 認証情報(クライアント ID、シークレット、および 3-legged OAuth の認可コード)を確認します。これらの認証情報をアクセストークンと交換し、API 呼び出しを認証します。
Candidate Sync API の各オペレーションには OAuth トークンが必要です。
| API とオペレーション | OAuth トークンタイプ |
|---|---|
| 採用企業を表す 3-legged OAuth トークン を使用し、employer.ats_candidate.sync スコープで認証します。このトークンは採用企業の Indeed アカウントと ATS アカウントを関連付けます。Indeed の管理者またはオーナーが作成する必要があります。registerEmployer がスコープ不足のエラーを返す場合、このトークンが採用企業に関連付けられていない可能性があります。 |
| 2-legged OAuth トークン で認証します。ユーザー操作は必要ありません。 |
アクセストークンは ATS 内に安全に保存し、ユーザー間で共有しないでください。Indeed は、お客様のシステムが求人の信頼できる情報源であることを前提としています。あるユーザーのアクセストークンを別のユーザーが投稿した求人に使用すると、Indeed 上でその ユーザーに別のユーザーの求人へのアクセスを付与する可能性があります。
アクセストークンを取得したら、クエリまたはミューテーションにこのトークンを含めます。最新の求人ステータスを確認するたびにユーザーへサインインを求めることがないよう、Indeed ではアクセストークンの有効期限が切れる前に更新することを推奨しています。
Indeed と連携して API を呼び出す と スコープ をご覧ください。
2. Register employer
Use the Employer Registration API to register an employer.
リクエスト – Register employer
採用企業を登録し、登録情報を返すには、registerEmployer を呼び出します。
採用企業を表す 3-legged OAuth トークン を使用し、employer.ats_candidate.sync スコープで認証します。このトークンは採用企業の Indeed アカウントと ATS アカウントを関連付けます。Indeed の管理者またはオーナーが作成する必要があります。registerEmployer がスコープ不足のエラーを返す場合、このトークンが採用企業に関連付けられていない可能性があります。
RegisterEmployerInput では、次の入力フィールドを指定します。
| フィールド | 必須 | 説明 |
|---|---|---|
型: | ✅ | 採用企業を一意に識別するために指定する ID です。 1 つの |
型: | ✅ | 採用企業に対して指定する名称です。Indeed 上では、この名称が採用企業に表示されます。 |
レスポンス – Register employer
API は EmployerRegistration を返します。後続の Candidate Sync API 呼び出しで使用するために id を保存するか、partnerEmployerId を指定して findRegisteredEmployers でもう一度取得します。
3. Get unacknowledged assets
Call fetchAssets to get unacknowledged assets in the order you staged them, from oldest to newest.
fetchAssets returns assets from:
- Smart Sourcing outreach (
AtsSyncCandidateSyncInterestedCandidateAsset) - Smart Screening updates (
AtsSyncCandidateSyncSmartScreeningUpdateAsset)
A single request can return a mix of both asset types. Indeed might add asset types, so handle types you do not recognize rather than assuming every asset is one of these two.
2-legged OAuth トークン で認証します。アプリケー ションは、ユーザー操作なしで Indeed の認可サーバーに直接認証します。
Smart Sourcing assets use employerIdentifier.
Smart Screening assets use applicationIdentifier.indeedApply.indeedApplyId.
Either the employerIdentifier or the indeedApplyId in the response matches the ID you sent when you created the registration. Use it to identify which employer receives the candidate.
Request — Get unacknowledged assets
This mutation returns a token, asset metadata, candidate details for interested candidates, and screening update details for Smart Screening assets:
mutation FetchAssets($input: FetchAssetsAtsSyncCandidateSyncInput) { atsSyncCandidateSync { fetchAssets(input: $input) { token assets { id metadata { stagedAt stagedTest employerIdentifier completeSourceAttribution { enumKey name } } ... on AtsSyncCandidateSyncInterestedCandidateAsset { contact { candidate { email location name phone resume { files { url name contentType } } } job { sourcedPostingId } tracking { recruiterEmail } } } ... on AtsSyncCandidateSyncSmartScreeningUpdateAsset { smartScreeningUpdate { smartFitScore createdAt applicationIdentifier { __typename ... on AtsSyncCandidateSyncIndeedApplyApplicationIdentifier { indeedApplyId } } resume { url name contentType } } } } } }}Provide these input fields:
Response — Get unacknowledged assets
The API returns a FetchAssetsAtsSyncCandidateSyncPayload object with these fields:
| Field | Type | Description |
|---|---|---|
assets | [AtsSyncCandidateSyncAsset]! | Next available |
token | String | Acknowledgment token for this batch. Pass it in the next fetchAssets call to acknowledge receipt and request the next batch. If the token is null or empty, Indeed has delivered all assets, so wait the standard polling interval before you call again. |
4. Get assets by time range
After you acknowledge assets, call assetsByTimeRange to fetch them again. Use this query to recover from data loss, and persist asset data in your own data store. For pagination best practices, see the GraphQL Cursor Connections Specification (新しいウィンドウで開きます).
2-legged OAuth トークン で認証します。アプリケーションは、ユーザー操作なしで Indeed の認可サーバーに直接認証します。
To retrieve new assets, use fetchAssets.
Request — Get assets by time range
If you omit a start or end date, the query uses the earliest and latest acknowledgment dates as defaults.
This query returns assets for a time range, including candidate details, Smart Screening updates, and pagination information:
query AssetsByTimeRange($input: AtsSyncCandidateSyncAssetsByTimeRangeInput!, $after: String) { atsSyncCandidateSync { assetsByTimeRange(input: $input, after: $after) { assets { id metadata { employerIdentifier stagedAt stagedTest completeSourceAttribution { enumKey name } } ... on AtsSyncCandidateSyncInterestedCandidateAsset { contact { candidate { email location name phone resume { files { url name contentType } } } job { sourcedPostingId } tracking { recruiterEmail } } } ... on AtsSyncCandidateSyncSmartScreeningUpdateAsset { smartScreeningUpdate { smartFitScore createdAt applicationIdentifier { __typename ... on AtsSyncCandidateSyncIndeedApplyApplicationIdentifier { indeedApplyId } } resume { url name contentType } } } } pageInfo { hasNextPage endCursor } } }}Response — Get assets by time range
assetsByTimeRange returns the same asset data as fetchAssets, but only for acknowledged assets. See Response — Get unacknowledged assets.
Test assets expire after 14 days and stop appearing in assetsByTimeRange responses. See Create test assets.
5. Create test assets
Call stageAssets to create test candidate assets in sandbox mode. Test assets behave like real ones, so you can retrieve them with fetchAssets to test your workflow.
2-legged OAuth トークン で認証します。アプリケーションは、ユーザー操作なしで Indeed の認可サーバーに直接認証します。