求人情報連携APIガイド
Indeedで求人を作成および管理するためにAPIと連携します。
このAPIとそのドキュメントを使用して連携を構築すると、APIに関する追加の利用規約およびガイドラインに同意したことになります。
連携の概要
#求人情報連携APIを使用して、IndeedとIndeed PLUSで求人を作成および管理します。
数百のパートナーとの連携実績から、この連携には通常約6週間かかります。この期間には、設定、テスト、Indeedとのレビュー、およびクライアント利用に向けたデプロイが含まれます。
-
jobRequisitionIdはスキーマ上では任意ですが、jobPostingIdと異なる場合、Indeed では必須です。日本の求人の場合: ID または
jobPostingIdと同じ値を設定します。 -
SourcedJobPostingJobContactInputの hiring manager と recruiter の値は、スキーマ上では任意ですが、取得できる場合は Indeed で必須です。
関連項目:
SourcedJobPostingMetadataInputのjobRequisitionIdとjobPostingIdSourcedJobPostingJobContactInput
連携手順
#1. 連携の前提条件を満たす
#連携を開始する前に、次の手順を完了してください。
-
クライアント名を収集してIndeedに送信します。
Indeedは既存のクライアント名の確認を支援します。後で、それらの名称を
SourcedJobPostingJobSourceInput.sourceNameで使用します。 -
貴社とIndeedの間で開発者契約を締結し、Indeedパートナーになる (新しいウィンドウで開きます)から正式な連携リクエストを送信します。
Indeedがアカウントを承認すると、アクセスを有効にし、次の内容を確認するアンケートを送信します。
- Indeed エントリーと審査用の質問のレビュー計画。
- 本番公開の目標日。
- ビジネス担当者とリード開発者またはエンジニアリングマネージャー。
- 想定される求人ボリューム。クライアント数と総求人数を含みます。
- クライアントが採用企業か人材派遣会社か。
- 予定している連携パターン。
-
各求人に公開求人詳細ページのURLを含めて送信します。
IndeedはこのURLをクロールして、送信された求人と一致することを確認します。省略すると、連携レビューが遅れることがあります。
-
連携の問題が発生したときに、完全なリクエストとレスポンスをログに記録します。
トラブルシューティングのために、これらのログをIndeedに提供します。
求人情報連携APIの連携は包括的である必要があります。クライアントごとに、公開されているすべての求人、またはクライアントの採用ページに表示されるすべての求人を送信してください。クライアントはオプトアウトできますが、その場合はそのクライアントのすべての求人を期限切れにし、送信を停止する必要があります。
クライアントの採用サイトで新規、更新、または期限切れの求人が公開されたら、変更をすぐに送信してください。Indeedが15分以内に更新を受信しない場合、求人の可視性が低下することがあります。既存求人を初めてAPI経由で送信するときは、100件未満のバッチで送信してくだ さい。
2. 認証する
#Indeed パートナーになると、Indeed が連携用のアプリを作成します。Partner Console (新しいウィンドウで開きます) にサインインすると、アプリと OAuth 認証情報(クライアント ID とシークレット)を確認できます。API 呼び出しを認証するには、これらの認証情報をアクセストークンと交換します。
3. 求人でIndeed エントリーを設定する
#ATSをIndeedと連携すると、クライアントは求人でカンタン応募を有効にし、応募者データをATSに送信できます。Indeed エントリーは求職者体験を改善し、クライアントの採用を迅速化できます。
ソフトウェア内でIndeed エントリーをエンドツーエンドでテストするには、サンドボックス求人の1件にIndeed エントリーを追加してください。サンドボックス求人とは、Indeedが提供するサンドボックスソースに送信する求人です。その後、その求人を直接開いて応募します。テストには審査用の質問も含めてください。
Indeed エントリーを設定するには:
-
SourcedJobPostingIndeedApplyInputにIndeed エントリーのフィールドを設定します。Indeedから応募データを受信するには、
postUrlを、Indeedが応募データを送信するURLに設定します。 -
システムが応募データを解析して処理できる ことを確認します。
4. Indeed エントリーの審査用の質問を追加する
#審査用の質問は、採用企業が応募者が基準を満たしているかどうかをすばやく判断するのに役立ちます。採用企業が審査用の質問を使うと、適格な候補者とのやり取りにより多くの時間を使えます。Indeedは審査用の質問をホストしません。システムが審査用の質問をサポートしている場合は、Indeedが連携を承認するために実装が必要です。
Indeed エントリーのフローで審査用の質問を表示するには、審査用の質問付きで求人を作成するをご覧ください。
5. Indeedから応募データを受信する
#Indeedから応募データを受信するには、各求人にURLを指定します。IndeedはそのURLに、該当する求人の候補者情報をJSONとして送信します。
応募をプログラムで処理するには:
-
postUrlに設定したHTTPS URLで応募データを受信します。例:
"postUrl": "https://www.example.com/jobs" -
システムが正常に受信したすべての応募に対して、HTTP
2XXステータスコードを返します。Indeedは、それ以外のHTTPステータスコード、POSTタイムアウト、または接続タイムアウトをエラーとして扱います。Indeedが接続タイムアウト、
POSTタイムアウト、または無効なHTTPレスポンスによりHTTP2XXレスポンスを受信しない場合、指数バックオフで応募を再試行します。最後の再試行後も配信できない場合、Indeedはその応募を最終失敗として扱います。POST中に応募内容を検証しないでください。内容を検証して応募者を不適格にする場合は、POSTの後で行ってください。パートナー側の検証エラーによって、Indeedが連携を無効にすることがあります。POSTリクエストを301や302などのレスポンスで別のURLにリダイレクトしないでください。Indeedはリダイレクトをサポートしていません。HTTPステータスコードをご覧ください。
重複する応募
#応募を重複として扱うのは、次の両方に当てはまる場合だけです。
- 同じ求人IDを使用している。
- 過去120日以内のIndeedからの応募と同じ求職者メールアドレスを使用している。
Indeedからの応募が重複かどうかを判断するときに、別ソースから送信された応募を使用しないでください。同じ会社であっても、異なる求人IDで同じ求職者メールアドレスから送信された応募を重複として扱わないでください。
応募データ
#Indeedは応募データをHTTP POSTリクエストの生のボディで送信するため、通常のフォーム送信のようには処理できません。リクエストボディにはJSONドキュメントが含まれており、読み込んで解析する必要があります。Indeedは毎回すべてのJSONフィールドを送信するわけではないため、欠落したフィールドを空として扱い、未知のフィールドを無視する堅牢なJSONパーサーを使用してください。
JSONペイロードに最大サイズはありません。
POSTボディはUTF-8でエンコードされており、Indeedが応募を送信したことを検証するための真正性ヘッダーが含まれます。
Applicantフィールドのファイル部分には、contentType、data、fileNameが含まれます。
- Indeedは
contentTypeをfileNameから判定します。 dataには、Base64エンコードされた履歴書ファイルの生データが含まれます。- 第三者システムは、
.txt、.pdf、.doc、.docx、.rtfに対応する必要があります。
詳細は、応募データリファレンスをご覧ください。
POSTリクエストの認証
#Indeed エントリーは、リクエストが正当かどうかを確認するために使用できるHTTPヘッダーを含めて、postUrlにPOSTリクエストを送信します。
Indeedは、Indeed エントリーの認証情報タイプに対応する共有APIシークレットを使用し、HMAC-SHA1アルゴリズムでメッセージ署名を計算します。その署名はHTTP X-Indeed-Signatureヘッダーで送信されます。
署名の生成には、Indeed エントリーは中括弧({})を含む完全で未変更のJSONペイロードと共有シークレットを使用します。
コード例については、メッセージシグネチャ生成リファレンスをご覧ください。