Send Candidates APIガイド
候補者の応募をIndeedと同期します。
By using this API and its documentation and building an integration, you agree to the Additional API Terms and Guidelines.
Send Candidates APIのワークフロー
Send Candidates APIと連携した後、次の操作を呼び出せます。
- 1.Send Candidates APIの概要:Send Candidates APIが候補者の応募をIndeedと同期する仕組みを学びます。
- 2.認証する。
- 3.雇用主を登録する:雇用主を登録し、登録に関する情報を返します。
- 4.応募を初期化して添付ファイルをアップロードする:応募バージョンをIndeedにステージングし、添付ファイル用のアップロードURLを生成して、それらのURLにファイルをアップロードします。
- 5.応募を送信する:応募バージョンをIndeedに送信します。バージョンは送信順に非同期で公開されます。
- 6.応募ステータスを追跡する:応募のステータスと処理エラーを追跡します。
- 7.応募を削除する:応募とそのすべてのバージョンをIndeedから完全に削除します。
- 8.GraphQLエラーをトラブルシューティングする:GraphQLエラーを解決します。
Send Candidates APIリファレンス
registerEmployer:雇用主を登録し、登録に関する情報を返します。application.initialize:応募バージョンをIndeedにステージングし、添付ファイルをアップロードするためのURLを生成します。application.submit:応募を送信します。findStatuses:応募のステータスと処理エラーを追跡します。application.delete:応募を削除します。
Send Candidates APIの概要
Send Candidates APIは、候補者の応募の送信と追跡のための完全なワークフローを提供します。応募の送信には、初期化、添付ファイルのアップロード、送信の3つの手順が必要です。
初期化では、応募バージョンをIndeedにステージングし、添付ファイルをアップロードするためのURLを生成します。初期化のたびに、一意のapplicationVersionIdを持つバージョンが作成されます。初期化後、添付ファイルのアップロードと送信を5分以内に行います。
APIはデータを階層構造で整理します。applicationIdentifierオブジェクトには、応募を一意に識別する次のフィールドが含まれます。
| フィールド | 必須 | 説明 |
|---|---|---|
indeedRegistrationId | ✅ | Indeed雇用主とパートナー雇用主をリンクする一意のID。登録時に発行されます。 |
atsCandidateId | ⬜ | 1つ以上のATS応募に関連付けられた候補者プロファイルのID。 |
atsApplicationId | ✅ | ATS内の応募の一意のID。 |
job.sourcedPostingId | ✅ | createSourcedJobPostingsが返す求人投稿ID。 |
この組み合わせが、1件の論理的な応募を定義します。同じapplicationIdentifierでinitializeを呼び出すたびに、その応募の新しいバージョンが作成さ れます。
任意項目を含むすべてのフィールドがこの一意性に寄与します。たとえば、atsCandidateIdを含む応募は、他のフィールドがすべて同じでも、このフィールドを含まない応募とは別の応募として扱われます。
添付ファイルをアップロードする際は、次の点に注意してください。
- すべての添付ファイルは、ウイルスや有害なコンテンツがないかスキャンされます。安全でないファイルは削除されます。
- すべての添付ファイルの合計サイズは15 MB(15,728,640バイト)を超えてはなりません。
- 個々のファイルサイズは6 MB(6,291,456バイト)を超えてはなりません。
- MD5ハッシュに基づき、添付ファイルの重複は許可されません。
RESUMEは最大1つ、COVER_LETTERは最大1つまで含めることができます。追加のファイルにはOTHER_RESUMEまたはOTHER_COVER_LETTERを使用します。- すべての添付ファイルには、有効なBase64エンコードのMD5チェックサムが必要です。
保護される人口統計情報(人種、性別、年齢、障害の有無など)に関する質問への回答は、Indeedに公開されません。
応募を削除すると、その応募とすべてのバージョンがIndeedから完全に削除されます。削除した応募を再初期化することはできません。
同じ応募に対して同時にミューテーション(initialize、submit、delete)を実行しないでください。短時間に複数の操作を行うと、競合状態、想定外のデータ状態、どのバージョンが公開されているか確認しにくくなる原因になります。
認証する
Indeedパートナーになると、Indeedが連携用のアプリを作成します。Partner Consoleにログインして、アプリとOAuth認証情報(クライアントID、クライアントシークレット、および3-legged OAuthの場合は認可コード)を確認します。認証情報をアクセストークンと交換し、API呼び出しを認証します。
Candidate Sync APIの各操作には、OAuthトークンが必要です。
| API/操作 | OAuthトークンタイプ |
|---|---|
| 認証
雇用主を表す3-legged OAuthトークンをご覧ください。 |
| 認証 2-legged OAuthトークンで認証します。アプリケーションは、ユーザー操作なしでIndeedの認可サーバーと直接認証します。 2-legged OAuthトークンをご覧ください。 |
アクセストークンはATSに安全に保管し、ユーザー間で共有しないでください。Indeedは、お客様のシステムが求人の信頼できる情報源(source of truth)であると想定しています。あるユーザーが投稿した求人に対して別のユーザーのアクセストークンを使用すると、Indeed上で他のユーザーの求人へのアクセス権がそのユーザーに付与される可能性があります。
アクセストークンを取得したら、クエリまたはミューテーションにこのトークンを含めます。最新の求人ステータスを確認するたびにユーザーにログインを求めずに済むよう、アクセストークンは有効期限が切れる前に更新することを推奨します。
Indeedと連携してAPIを呼び出すおよびスコープをご覧ください。
雇用主を登録する
Employer Registration APIを使用して雇用主を登録します。
リクエスト – 雇用主を登録する
雇用主を登録して登録情報を返すには、registerEmployerを呼び出します。
employer.ats_candidate.syncスコープを持つ、雇用主を表す3-legged OAuthトークンで認証します。このトークンは、雇用主のIndeedアカウントとそのATSアカウントを関連付けます。Indeedの管理者またはオーナーが作成する必要があります。
registerEmployerがスコープ不足のエラーを返す場合、トークンが雇用主に関連付けられていない可能性があります。
雇用主を表す3-legged OAuthトークンをご覧ください。
次の入力フィールドを指定します。
| フィールド | 必須 | 説明 |
|---|---|---|
型: | ✅ | パートナーが提供する、雇用主を一意に識別するID。 1つの |
型: | ✅ | パートナーが提供する、雇用主が使用する名称。Indeedの雇用主にはこの名称が表示されます。 |
レスポンス – 雇用主を登録する
レスポンスはEmployerRegistrationを返します。以降のCandidate Sync APIの呼び出しで使用するため、登録のidを保存してください。後からpartnerEmployerIdを使ってfindRegisteredEmployersで検索することもできます。
応募を初期化して添付ファイルをアップロードする
応募バージョンをIndeedにステージングし、添付ファイルのアップロードURLを生成して、それらのURLにファイルをアップロードします。
リクエスト – 応募を初期化する
応募を初期化するには、initializeを呼び出します。この操作は、応募バージョンをIndeedにステージングし、添付ファイル用のアップロードURLを生成します。
2-legged OAuthトークンで認証します。アプリケーションは、ユーザー操作なしでIndeedの認可サーバーと直接認証します。
2-legged OAuthトークンをご覧ください。
indeedRegistrationIdには、registerEmployerが返すEmployerRegistration.idを設定します。雇用主はsendApplications機能を有効化する必要があります。
詳細はこちらをご覧ください。
雇用主はsendApplications機能を有効化している必要があります。
次の入力フィールドを指定します。
| フィールド | 必須 | 説明 |
|---|---|---|
| ✅ | Indeed上の応募の一意のID。 | |
| ✅ | 応募者の詳細情報。 | |
タイプ:[AtsSyncCandidateSyncApplicationQuestionAndAnswerInput!]! | ⬜ | スクリーニング設問と応募者の回答。それぞれプレーンテキストの文字列で指定します。 |
| ✅ | 現在の応募のディスポジションステータス。ステータスマッピングの例については、Indeed標準ディスポジションステータスをご覧ください。 | |
|
タイプ: | ✅ | 自社システム内の応募への直接リンク。 |
|
タイプ: | ⬜ | 自社システム内の候補者プロファイルへの直接リンク。 |
mutation InitializeApplication($input: InitializeAtsSyncCandidateSyncApplicationInput!) { atsSyncCandidateSync { application { initialize(input: $input) { applicationVersionId attachments { fileType fileName contentType contentLength fileChecksum { checksum } url } } } }}レスポンス – 応募を初期化する
| フィールド | 説明 |
|---|---|
|
タイプ: | 新しい応募バージョン。送信時に使用します。 |
| 添付ファイルごとにファイルデータをアップロードします。 |
initializeレスポンスで返される各添付ファイルについて、urlに対するPUTリクエストでファイルデータをアップロードします。initializeミューテーションのapplicant.attachmentsの値と一致する次のヘッダーを含めます。
| ヘッダー | 値のソース | 説明 |
|---|---|---|
Content-Type | contentType | 添付ファイルの元のメディアタイプ。 |
Content-Length | contentLength | ファイルサイズ(バイト数)。 |
Content-MD5 | fileChecksum.checksum | MD5ハッシュ。 重要
|
応募を送信する
2-legged OAuthトークンで認証します。アプリケーションは、ユーザー操作なしでIndeedの認可サーバーと直接認証します。
2-legged OAuthトークンをご覧ください。
応募バージョンをIndeedに送信します。バージョンは送信順に非同期で公開されます。
indeedRegistrationIdには、registerEmployerが返すEmployerRegistration.idを設定します。雇用主はsendApplications機能を有効化する必要があります。
詳細はこちらをご覧ください。
リクエスト – 応募を送信する
応募を送信するには、application.submitミューテーションを呼び出します。
次の入力フィールドを指定します。
| フィールド | 必須 | 説明 |
|---|---|---|
|
タイプ: | ✅ | Indeed雇用主アカウントへのリンク。 |
|
タイプ: | ✅ | application.initializeが返すバージョンID。 |
mutation SubmitApplication($input: SubmitAtsSyncCandidateSyncApplicationInput!) { atsSyncCandidateSync { application { submit(input: $input) { applicationVersionId } } }}レスポンス – 応募を送信する
| フィールド | 説明 |
|---|---|
|
タイプ: | 入力値と同じです。必要に応じて監査用にログを記録してください。 |
初期化から5分以内に呼び出してください。送信前にすべての添付ファイルをアップロードします。添付ファイルが不足している応募も処理されますが、findStatusesはFILE_NOT_UPLOADEDエラーを返します。添付ファイルの処理に失敗した場合でも応募は送信できます。処理は非同期ですが、送信順は維持されます。
応募ステータスを追跡する
2-legged OAuthトークンで認証します。アプリケーションは、ユーザー操作なしでIndeedの認可サーバーと直接認証します。
2-legged OAuthトークンをご覧ください。
送信後、応募バージョンのステータスをクエリして、処理状況の確認とエラーの特定を行います。
リクエスト – 応募ステータスを取得する
ページネーション付きで応募バージョンのステータスをクエリするには、findStatusesを呼び出します。
このクエリは、送信後の公開状況の追跡や、バージョン履歴を含む一括ステータスの確認に使用します。
| フィールド | フィルター対象 |
|---|---|
|
タイプ: | 雇用主。 |
| 応募ID。 | |
|
タイプ: | 応募バージョン。 |
|
タイプ: | ステータス。 |
query FindApplicationStatuses($input: AtsSyncCandidateSyncApplicationFindStatusesInput!$first: Int $after: String $last: Int $before: String) { atsSyncCandidateSync { application { findStatuses(input: $input first: $first after: $after last: $last before: $before) { applicationVersionStatuses { applicationVersionId applicationIdentifier { indeedRegistrationId atsCandidateId atsApplicationId job { sourcedPostingId } } status processingStatus errors } pageInfo { hasNextPage hasPreviousPage startCursor endCursor } } } }}応募を削除する
2-legged OAuthトークンで認証します。アプリケーションは、ユーザー操作なしでIndeedの認可サーバーと直接認証します。
2-legged OAuthトークンをご覧ください。
応募とそのすべてのバージョンをIndeedから完全に削除します。
indeedRegistrationIdには、registerEmployerが返すEmployerRegistration.idを設定します。雇用主はsendApplications機能を有効化する必要があります。
詳細はこちらをご覧ください。
リクエスト – 応募を削除する
応募を削除するには、application.deleteミューテーションを呼び出します。
この操作は永続的です。すべての応募バージョンがIndeedから削除され、再作成できません。削除後に新しいバージョンを作成することはできません。
| フィールド | 必須 | 説明 |
|---|---|---|
| ✅ | 応募の一意のID。 | |
|
タイプ: | ✅ | 応募が削除された日時のタイムスタンプ。 |
mutation DeleteApplication($input: DeleteAtsSyncCandidateSyncApplicationInput!) { atsSyncCandidateSync { application { delete(input: $input) { applicationVersionId } } }}レスポンス – 応募を削除する
| フィールド | 説明 |
|---|---|
|
タイプ: | この削除の一意のID。削除された応募の最終バージョンを参照します。 |