- Job Update API のワークフロー
- Job Update API リファレンス
- 認証
- 求人を更新する
- リクエスト – 求人を更新する
- 更新内容を確認する
- 部分的な更新
- レスポンス – 求人を更新する
- 求人情報を取得するクエリ方法を選択する
- ID で求人ステータスを取得する
- 認証
- 単一求人のクエリ (node)
- 複数求人のクエリ (nodes)
- Webhook を使用する
- 条件で求人を一覧表示する
- 求人の更新をクリアする
- リクエスト – 求人の更新をクリアする
- レスポンス – 求人の更新をクリアする
- 求人ステータス
- スポンサーなしのオーガニック求人
- スポンサー求人
- 拒否された求人
- レート制限
- エラーのトラブルシューティング
- よくある質問
Job Update API ガイド
Indeed 上の求人の更新、更新のクリア、詳細の取得、一覧表示を行います。
このAPIとそのドキュメントを使用して連携を構築すると、APIに関する追加の利用規約およびガイドラインに同意したことになります。
Job Update API のワークフロー
Job Update API を使用して、Indeed 上の求人の更新、更新のクリア、求人の詳細の取得、求人の一覧表示を行います。これらの呼び出しは無料で、Sponsored Jobs API 使用ポリシー の上限にはカウントされません。
- 1.開始前にを確認する — クライアントは Indeed エントリーに対応した ATS を使用しており、お客様はサブアカウントをお持ちです。Single-Source Feed Policy に基づき、採用企業の求人の正しい情報源は ATS です。
- 2.認証
- 3.求人を更新する — Indeed および Indeed PLUS 上で、サポートされているフィールドを変更します。
- 4.求人情報を取得するクエリ方法を選択する
- 5.ID で求人ステータスを取得する — 求人 IRI がある場合は、
nodeクエリまたはnodesクエリを使用します。 - 6.条件で求人を一覧表示する — 一括取得には
findEmployerJobsPartnerを使用します。 - 7.求人の更新をクリアする —
clearSourcedJobPostingUpdatesを使用して更新を削除します。 - 8.求人ステータスを確認する
- 9.レート制限を確認する
- 10.エラーのトラブルシューティング
- 11.よくある質問を読む — よくある質問の答えを確認します。
Job Update API リファレンス
clearSourcedJobPostingUpdates— 求人の更新をクリアします。findEmployerJobsPartner— 採用企業の求人を一覧表示します。node— ID で 1 件の求人を取得します。nodes— ID で複数の求人を取得します。updateSourcedJobPostings— サポートされている求人フィールドを更新します。
求人の作成と期限切れは ATS が管理します。
認証
Indeed パートナーになると、Indeed が連携用のアプリを作成します。Partner Console にサインインして、アプリと OAuth 認証情報(クライアント ID、シークレット、および 3-legged OAuth の認可コード)を確認します。これらの認証情報をアクセストークンと交換し、API 呼び出しを認証します。
設定の詳細については、Indeedとの連携とAPIの呼び出し をご覧ください。
findEmployerJobsPartner、node、nodes の各クエリには、次のいずれかの OAuth トークンタイプが必要です。
| トークンタイプ | 説明 |
|---|---|
| 広告主を指定する 2‑legged OAuth token | すでに Sponsored Jobs API を client credentials grant type (2-legged OAuth) で使用している場合は、このトークンタイプをすでにお持ちの可能性があります。 |
| 3-legged OAuth token | すでに 3-legged OAuth トークンをお持ちの場合は、それを使用できます。 |
アクセストークンには、次のスコープが必要です。
employer_accessemployer.hosted_job
スコープの詳細については、スコープ をご覧ください。
アクセストークンを取得したら、クエリにそのトークンを含めます。更新後の求人ステータスを表示するたびにユーザーがサインインしなくて済むよう、Indeed ではアクセストークンの有効期限が切れる前に更新することを推奨しています。
求人を更新する
この機能はベータ版であり、日本では利用できません。詳細については Indeed にお問い合わせください。
- 自社がIndeedに送信した求人は、upsertします。
- 別のパートナーが送信した求人は、updateします。updateは主に広告代理店向けです。
日本のみ:広告代理店およびIndeed PLUSパブリッシャーネットワークのパートナーを除き、すべてのパートナーが求人をupdateできます。
関連項目:
広告代理店がIndeedおよびIndeed PLUS上で求人のフィールドを更新できるようにします。
クライアントから認可された求人のみを更新してください。認可されていない更新を行うと、クライアントがその求人で他のIndeedツールを使用できなくなることがあります。ATSにない勤務地を追加する場合は、自社のXMLまたはAPI連携を使用してください。
Indeed に送信していない求人を更新するには、次の手順に従います。
-
追加するクライアントを選択する: Indeed にお問い合わせください。
-
findEmployerJobsPartnerを呼び出し、JobPostSurfaceStatus.isRejectedがfalseの求人を探します。これらの求人は Indeed で検索できます。次の手順で使用するため、EmployerJob.idを保存します。求人が拒否されている場合は、その理由をstatusCommunicationで確認します。 -
updateSourcedJobPostingsを呼び出し、保存したEmployerJob.idをsourcedPostingIdとして指定します。トラッキング URL や求人 URL などのフィールドを更新できます。すべてのフィールドについては、UpdateSourcedJobPostingMetadataInputとUpdateSourcedJobPostingBodyInputをご覧ください。フィールドを更新すると、そのフィールドに対する以降の ATS 側の変更は求職者に表示されなくなります。 -
更新内容を確認する
次のいずれかのクエリを使用します。
findEmployerJobsPartner: 呼び出しは、アクセストークンごとに 1 時間に 1 回までにしてください。更新は通常 30 秒以内に反映されますが、Indeed はタイミングを保証しません。node:EmployerJob.idで 1 件の求人を取得します。nodes: 複数のEmployerJob.idの値を指定して、1 回の呼び出しで複数の求人を取得します。
キャンペーンのスポンサ ー求人を一覧表示するには、
campaignCategoriesにad_campaign_category:{category}を設定します。たとえば、ad_campaign_category:fooはfooキャンペーンのスポンサー求人を返します。
この呼び出しのレート制限については、レート制限 をご覧ください。
リクエスト – 求人を更新する
求人の一部のフィールドを更新するには、jobsIngest.updateSourcedJobPostings ミューテーションを呼び出します。
この操作には、広告主を表すアクセストークンが必要です。
アクセストークンには、次のスコープが必要です。
employer_accessemployer.hosted_job
採用企業を表すアクセストークンを取得する をご覧ください。採用企業 ID の代わりに、広告主 ID をトークンに関連付けます。
更新したいフィールドのみを指定します。フィールドを変更しない場合は、省略するか null を設定します。
次の例では、updateSourcedJobPostings ミューテーションを呼び出して、求人の複数のフィールドを更新します。
mutation UpdateSourcedJobPostings { jobsIngest { updateSourcedJobPostings( input: { updates: [ { sourcedPostingId: "<SOURCED POSTING ID OF JOB POSTING>" metadata: { url: "https://www.example.com/jobs/123" campaignCategories: ["springCampaign"] trackingUrl: "https://www.example.com/jobs/123?utm_source=indeed" } body: { title: "Software Developer" description: "Come build the future with us!" jobLocation: { general: { cityRegionPostal: "Phoenix, AZ 85003" streetAddress: "1234 Sunny Lane, Phoenix, AZ 85003" } } salary: { currency: "USD" maximumMinor: 1000 minimumMinor: 1000 period: "HOUR" } } } ] } ) { results { jobPosting { sourcedPostingId employerJobId } } } }}mutation UpdateSourcedJobPostings { jobsIngest { updateSourcedJobPostings(input: { updates: [{ sourcedPostingId: "<SOURCED POSTING ID OF JOB POSTING>" body: { description: "<h2>About the role</h2><p>Join our team as a software engineer. You design and build scalable backend services.</p><ul><li>Competitive salary</li><li>Remote-friendly</li><li>Health and dental benefits</li></ul>" descriptionFormatting: HTML } }] }) { results { jobPosting { sourcedPostingId employerJobId } } } }}updateSourcedJobPostings は、UpdateSourcedJobPostingsInput 型の input という 1 つの引数を取ります。
input には updates という 1 つのフィールドがあり、これは UpdateSourcedJobPostingInput オブジェクトの配列です。各オブジェクトは、1 件の求人に対する更新内容を定義します。
各 UpdateSourcedJobPostingInput オブジェクトは、次のフィールドをサポートします。
| フィールド | タイプ | 説明 |
|---|---|---|
sourcedPostingId | ID! | 必須。求人ごとに、次のいずれかの値を指定します。
|
metadata.url | WebUrl | Indeed エントリーを利用できない場合に、求職者が応募できる広告代理店の URL です。 |
metadata.campaignCategories | [String!] | キャンペーン選択のために関連する求人をグループ化するカテゴリータグです。指定した値については、ad_campaign_category:{category} で Sponsored Jobs API にクエリを実行します。 |
metadata.trackingUrl | WebUrl | 求人のトラッキング URL です。求職者が Indeed 上でその求人を表示すると、Indeed はこの URL に HTTP リクエストを送信します。 |
body.title | String | 求人のタイトルです。 |
body.description | String | 求人の説明です。
|
body.descriptionFormatting | DescriptionFormatting | 求人の説明の形式です。HTML 形式を有効にするには、このフィールドに |
body.jobLocation .general.cityRegionPostal | String! | 勤務地を更新する場合は必須。求人の市区町村、都道府県や州などの行政区分、および郵便番号です。 リモート求人にこのフィールドを設定すると、Indeed はその求人を地域限定のリモート求人として扱います。 |
body.jobLocation .general.streetAddress | String | 求人の主な勤務地の番地です。Indeed が勤務地のマッチングを改善し、求職者に住所を表示できるよう、完全な住所を指定してください。 |
body.salary.currency | CurrencyCode | ISO 4217 形式の給与の通貨コードです。 |
body.salary.maximumMinor | Int64 | 現地通貨の補助単位で表した給与の上限です。USD の場合、 |
body.salary.minimumMinor | Int64 | 現地通貨の補助単位で表した給与の下限です。USD の場合、 |
body.salary.period | JobSalaryPeriod! | 給与を更新する場合は必須。時給、日給、週給など、給与の計算に使用する単位です。 |
body.companyName | String | 求人の会社名を更新します。変更しない場合は、このフィールドを省略するか |
詳細については、API リファレンス をご覧ください。
更新内容を確認する
updateSourcedJobPostings のレスポンスには求人 IRI が含まれます。変更を確認するには、返された IRI を指定して node クエリを使用します。
ID で求人ステータスを取得する をご覧ください 。
部分的な更新
フィールドの更新はアトミックではありません。1 回のリクエストで複数のフィールドを更新した場合、まれに一部の変更のみが適用されることがあります。その場合、レスポンスにエラーが含まれます。
エラーレスポンスが返っても、必ず部分的な更新が発生したとは限りません。複数フィールドのリクエストでエラーが返された場合は、更新後の求人を表示して、どのフィールドが成功したかを確認してください。エラー処理の方法については、GraphQL エラーをトラブルシューティングする をご覧ください。
レスポンス – 求人を更新する
updateSourcedJobPostings は UpdateSourcedJobPostingsPayload オブジェクトを返します。このオブジェクトには results フィールドが含まれ、これは UpdateSourcedJobPostingResult オブジェクトの配列です。各オブジェクトは、1 件の 求人の更新に対応します。
各 UpdateSourcedJobPostingResult オブジェクトには、SourcedJobPostingUpdate 型の jobPosting フィールドが含まれます。Indeed が更新を受け付けない場合、このフィールドは null です。それ以外の場合は、次の値が含まれます。
sourcedPostingId: 求人の UUID です。これは、Indeed が求人を作成したときに生成したSourcedJobPosting.sourcedPostingIdと一致します。この値を使用して、求人を期限切れにしたり更新したりします。employerJobId: 求人の Indeed Resource Identifier (IRI) です。これはEmployerJob.idと一致します。
求人情報を取得するクエリ方法を選択する
求人情報を取得するには、次のいずれかの方法を使用します。
-
ID で求人ステータスを取得する(
nodeクエリまたはnodesクエリ)求人 IRI(
EmployerJobの ID) がすでにある場合は、この方法を使用します。IRI がすでに分かっている場合は、findEmployerJobsPartnerよりも高速です。ユースケース:
- 更新の確認:
updateSourcedJobPostingsを呼び出して求人 IRI を取得し、nodeで変更を確認します。 - Webhook の処理: Webhook を受信した後、ペイロードに含まれる求人 IRI を指定して
nodeを使用し、現在の求人の状態を取得します。
- 更新の確認:
-
条件で求人を一覧表示する(
findEmployerJobsPartner)すべての求人を一覧表示するには、この検索ベースの方法を使用します。求人在庫の一括取得に最適です。
ユースケース:
- 在庫の同期: IRI がない場合は、
findEmployerJobsPartnerを呼び出して関連する求人を一括で取得します。使用できるフィルターはlegacySourceIdとfeedTypeのみです。
- 在庫の同期: IRI がない場合は、
ID で求人ステータスを取得する
IRI(EmployerJob の ID)で求人ステータスを取得するには、GraphQL の node クエリまたは nodes クエリを呼び出します。これらのクエリは、条件で求人を一覧表示する方法よりも効率的です。
認証
findEmployerJobsPartner と同じ認証と認可を使用します。認証 をご覧ください。アクセストークンには、次のスコープが必要です。
employer_accessemployer.hosted_job
単一求人のクエリ (node)
Relay Node パターンを使用して、IRI(EmployerJob の ID)で 1 件の求人を取得します。
query GetJob($id: ID!) { node(id: $id) { ...on EmployerJob { id jobData { title description company dateCreated datePostedOnIndeed jobLocation { city countryCode fullAddress } salary { max min period } externalPostingMetadata { jobPostingId jobRequisitionId } } managementUrls { viewJob } } }}変数:
{ "id": "dXJuOmluZGVlZDplbXBsb3llcmpvYjphMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTA="}求人 IRI(EmployerJob の ID)は base64 でエンコードされています。レスポンスの id フィールドは、エンコードされた IRI です。
EmployerJob をご覧ください。
POST https://apis.indeed.com/graphqlAuthorization: Bearer YOUR_ACCESS_TOKENContent-Type: application/json
{ "query": "query GetJob($id: ID!) { node(id: $id) { ... on EmployerJob { id jobData { title description company } } } }", "variables": { "id": "dXJuOmluZGVlZDplbXBsb3llcmpvYjphMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTA=" }}複数求人のクエリ (nodes)
IRI(EmployerJob の ID)で複数の求人のステータスを取得します。
複数の更新を確認する場合や、Webhook イベントをバッチ処理する場合は、このクエリを使用します。
query GetMultipleJobs($ids: [ID!] !) { nodes(ids: $ids) { ... on EmployerJob { id jobData { title description company datePostedOnIndeed jobLocation { city countryCode } } } }}変数:
{ "ids": [ "dXJuOmluZGVlZDplbXBsb3llcmpvYjphMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTA=", "dXJuOmluZGVlZDplbXBsb3llcmpvYjpiMmMzZDRlNS1mNmE3LTg5MDEtYmNkZS1mMjM0NTY3ODkwMTI=", "dXJuOmluZGVlZDplbXBsb3llcmpvYjpjM2Q0ZTVmNi1hN2I4LTkwMTItY2RlZi0zNDU2Nzg5MDEyMzQ=" ]}求人 IRI(EmployerJob の ID)は base64 でエンコードされています。レスポンスの id フィールドは、エンコードされた IRI です。
EmployerJob をご覧ください。
Webhook を使用する
Webhook のペイロードには、求人 IRI が含まれます。
{ "eventType": "job.updated", "jobIri": "dXJuOmluZGVlZDplbXBsb3llcmpvYjphMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTA=", "timestamp": "2025-12-10T15:30:00Z"}IRI を指定して node クエリを使用し、現在の求人ステータスを取得します。例については、ID で求人ステータスを取得する をご覧ください。
利点:
- リアルタイムの更新
- IRI による高速な取得
- 表示前のデータ補完期間
条件で求人を一覧表示する
この機能を使用するには、Indeed にお問い合わせください。追加の要件があります。
雇用主の求人を一覧表示します。
この呼び出しにはレート制限があります。
クライアントごとに 1 時間に 1 回この操作を呼び出す場合は、制限に達しない可能性があります。ただし、HTTP 429 が発生することはあります。発生した場合は、リクエス トの頻度を下げてください。429 エラーコード をご覧ください。
この呼び出しのレート制限については、レート制限 をご覧ください。
リクエスト – 条件で求人を一覧表示する
採用企業の求人を一覧表示するには、findEmployerJobsPartner を呼び出します。
次の例では、findEmployerJobsPartner を呼び出して、Indeed への掲載日の降順で求人を一覧表示します。
query FindEmployerJobsPartner { findEmployerJobsPartner(input: { filters: { legacySourceId: "60a9614a5d973a21", jobFeedType: ["INTEGRATED_FROM_PARTNER"] }, sort: [{ sortDirection: DESC, sortField: datePostedOnIndeed }] }, first: 10, before: null, after: null) { employerJobs { id jobData { title datePostedOnIndeed dateCreated description company jobLocation { countryCode city postalCode fullAddress } externalJobPageUrl externalPostingMetadata { jobPostingId jobRequisitionId campaignCategories trackingUrls rawInputLocation isIntegratedJob } } managementUrls { viewJob } seatsConnection { pageInfo { endCursor hasNextPage hasPreviousPage startCursor } seats { jobPost { id externalPartnerCallToAction(input: { locale: "en-us" }) { imageAltText imageUrl } status { globalStatus { isIndeedApplyActive } surfaceStatuses { isRejected isSponsorshipRequired isMissingRequiredSponsorship statusCommunication { messagingTagMatches { message } } } } } } } } estimatedTotalResultsCount pageInfo { endCursor hasNextPage hasPreviousPage startCursor } }}findEmployerJobsPartner は、ソース ID で求人を検索するか、採用企業の求人を一覧表示します。次の入力フ ィールドをサポートします。
| フィールド | 説明 |
|---|---|
求人の取得元を示すフィードタイプで求人をフィルタリングします。 有効な値は次のとおりです。
指定できる値は 1 つです。ただし、 デフォルト: デフォルトでは、 | |
求人に指定された ATS の採用管理 ID( このフィールドが返す値をそのまま送信してください。照合では大文字と小文字を区別せず、前後の空白も除去されません。
採用管理 ID は一意ではないため、1 つのフィルターが複数の求人に一致することがあります。 デフォルトでは、 | |
input.sort | レスポンス内の求人の並び順を定義するオブジェクトの配列です。各オブジェクトには、次のフィールドがあります。
|
first | 返す求人の件数です。
|
before | この値より前のカーソル値を持つ項目を返します。ページネーションの詳細については、レスポンスの PageInfo を使用してください。 |
after | この値より後のカーソル値を持つ項目を返します。ページネーションの詳細については、レスポンスの PageInfo を使用してください。 |
レスポンス – 条件で求人を一覧表示する
findEmployerJobsPartner は、アクセストークンに関連付けられた採用企業の求人を一覧表示します。
リクエストにフィルターや並び替えを含めた場合、API はそれらを結果に適用します。
トークンで期待した求人が返らない場合は、Indeed の採用企業アカウントページから Indeed のサポート担当者に問い合わせるようユーザーに依頼してください。必要に応じて、担当者が Indeed 上の求人と広告主またはユーザーアカウントの関連付けを支援できます。
API は、次のフィールドを持つ FindEmployerJobsPartnerConnection オブジェクトを返します。
| フィールド | タイプ | 説明 |
|---|---|---|
employerJobs | [EmployerJob]! | 求人オブジェクトの配列です。フィールドの詳細については、レスポンス – IDで求人ステータスを取得する をご覧ください。 |
estimatedTotalResultsCount | Int! | レスポンスに含まれる求人の推定総数です。 |
pageInfo | PageInfo! | ページネーション情報です。 |
次のレスポンス例は、求人を一覧表示します。
この API は seats に 1 件のみを返すため、startCursor と endCursor は同じ値になり、hasNextPage と hasPreviousPage は false になります。
{ "data": { "findEmployerJobsPartner": { "employerJobs": [{ "id": "aXJpOi8vYXBpcy5pbmRlZWQuY29tL0VtcGxveWVySm9iLzkxZGU0ZjVhLWE1MWYtNGQ1Ni1iOWI0LWNhMDQzZWVjNDAzMQ==", "jobData": { "title": "Certified Nursing Assistant CNA", "externalPostingMetadata": { "jobPostingId": "CBA-Anytown-Posting-Id", "jobRequisitionId": "CBA-Anytown-Req-Id" } }, "seatsConnection": { "seats": [{ "jobPost": { "id": "aXJpOi8vYXBpcy5pbmRlZWQuY29tL0pvYlBvc3QvNDAxNTY1MmNhZDc2YTQxNQ==", "status": { "surfaceStatuses": [{ "isRejected": true, "isSponsorshipRequired": false, "isMissingRequiredSponsorship": false, "statusCommunication": { "messagingTagMatches": [{ "message": "This job does not meet Indeed's job posting standards. Review the job description and resubmit." }] } }] } } }] } }], "estimatedTotalResultsCount": 1, "pageInfo": { "endCursor": "MQ==", "hasNextPage": false, "hasPreviousPage": false, "startCursor": "MQ==" } } }}検証エラーのトラブルシューティングについては、GraphQL エラーをトラブルシューティングする をご覧ください。詳細については、GraphQL ドキュメントの Validation をご覧ください。
求人の更新をクリアする
このベータ機能は日本では利用できません。詳細については Indeed にお問い合わせください。
広告代理店は、この操作を使用して、クライアントの求人に対して行った更新をクリアします。求人は最新の ATS データに戻るため、クライアントは他の Indeed のツールで再びその求人を管理できます。たとえば、クライアントとの取引を終了する場合に、自社が行った更新をクリアします。
-
クライアントを追加し、その求人を更新します。
-
findEmployerJobsPartnerを呼び出して、更新後の値を確認します。legacySourceIdには、更新操作が返したsourcedPostingIdを設定します。 -
clearSourcedJobPostingUpdatesを呼び出して、更新したフィールドをクリアします。リクエストの形式については、リクエスト – 求人の更新をクリアする をご覧ください。 -
同じ
legacySourceIdを指定してfindEmployerJobsPartnerをもう一度呼び出し、フィールドが ATS データを表示していることを確認します。
この呼び出しのレート制限については、レート制限 をご覧ください。
リクエスト – 求人の更新をクリアする
updateSourcedJobPostings で以前に変更したフィールドをクリアするには、jobsIngest.clearSourcedJobPostingUpdates ミューテーションを呼び出します。
この操作には、元の更新を行った広告主のアクセストークンが必要です。
アクセストークンには、次のスコープが必要です。
employer_accessemployer.hosted_job
採用企業を表すアクセストークンを取得する をご覧ください。採用企業 ID の代わりに、広告主 ID をトークンに関連付けます。
次の例では、clearSourcedJobPostingUpdates ミューテーションを呼び出して、求人の更新をクリアします。
mutation ClearSourcedJobPostingUpdates { jobsIngest { clearSourcedJobPostingUpdates(input: { updates: [{ sourcedPostingId: "<SOURCED POSTING ID OF JOB POSTING>" }] }) { results { jobPosting { sourcedPostingId employerJobId } } } }}clearSourcedJobPostingUpdates は、ClearSourcedJobPostingUpdatesInput 型の input という 1 つの引数を取ります。
input には updates という 1 つのフィールドがあり、これは ClearSourcedJobPostingUpdateInput オブジェクトの配列です。各オブジェクトは、更新をクリアする求人を 1 件指定します。
1 回のリクエストで複数の求人の更新をクリアするには、 複数の ClearSourcedJobPostingUpdateInput オブジェクトを指定します。
各 ClearSourcedJobPostingUpdateInput オブジェクトは、次のフィールドをサポートします。
| フィールド | タイプ | 説明 |
|---|---|---|
sourcedPostingId | ID! | 必須。求人ごとに、次のいずれかの値を指定します。
|
レスポンス – 求人の更新をクリアする
clearSourcedJobPostingUpdates は ClearSourcedJobPostingUpdatesPayload オブジェクトを返します。このオブジェクトには results フィールドが含まれ、これは ClearSourcedJobPostingUpdateResult オブジェクトの配列です。各オブジェクトは、更新をクリアした求人 1 件に対応します。
各 ClearSourcedJobPostingUpdateResult オブジェクトには、SourcedJobPostingUpdate 型の jobPosting フィールドが含まれます。Indeed がリクエストを受け付けない場合、このフィールドは null です。それ以外の場合は、次の値が含まれます。
sourcedPostingId: 求人の UUID です。これは、Indeed が求人を作成したときに生成したSourcedJobPosting.sourcedPostingIdと一致します。この値を使用して、求人を期限切れにしたり更新したりします。employerJobId: 求人の Indeed Resource Identifier (IRI) です。これはEmployerJob.idと一致します。
求人ステータス
フィードポリシーが変更されたため、Indeed 上で管理する求人の多くは、 自社のフィード由来ではなくなりました。
求人のステータスは、次のいずれかです。
- オーガニック:
"isRejected": falseおよび"isSponsorshipRequired": false。スポンサーなしのオーガニック求人 をご覧ください。 - スポンサー求人のみ(消費あり):
"isRejected": false、"isSponsorshipRequired": true、"isMissingRequiredSponsorship": false。スポンサー求人 をご覧ください。 - スポンサー求人のみ(消費なし):
"isRejected": true、"isSponsorshipRequired": true、"isMissingRequiredSponsorship": true。スポンサー求人 をご覧ください。 - どこにも表示されない:
"isRejected": trueおよび"isSponsorshipRequired": false。拒否された求人 をご覧ください。
スポンサーなしのオーガニック求人
スポンサー求人ではない求人のオーガニックトラフィックのデータを取得するには、次のいずれかの方法を使用します。
trackingUrlフィールドを追加する: 求人のクリックごとに HTTP リクエストを受け 取ります。オーガニックトラフィックとスポンサートラフィックのどちらでも、また Indeed エントリーを使用しているかどうかにかかわらず機能します。UpdateSourcedJobPostingMetadataInputのtrackingUrlをご覧ください。- カスタムの求人 URL を使用する: 求人 URL を自社が所有する採用ページに置き換えるか、ATS パートナーと連携してトラッキング用のメタデータを付加します。求職者がこの URL に移動するのは、求人が Indeed エントリーを使用していない場合のみです。
UpdateSourcedJobPostingMetadataInputのurlをご覧ください。 - クライアントの ATS と連携する: クライアントおよびそのクライアントの ATS と連携して、オーガニックのパフォーマンスデータを収集します。
- クライアントに Indeed Analytics にサインインしてもらう: クライアントは、スポンサー求人かどうかにかかわらず、すべての求人の完全なオーガニックパフォーマンスを確認できます。
スポンサー求人
スポンサー求人のトラフィックデータを取得するには、Sponsored Jobs API v8 以降を呼び出して、Job Update API が返す ID と一致する採用企業の求人 ID を取得します。
拒否された求人
isRejected が true で isSponsorshipRequired が false の場合、その求人は Indeed で検索できません。理由と対処方法を確認するには、ステータスメッセージを取得します。
-
findEmployerJobsPartnerを呼び出して、条件で求人を一覧表示するを実行します。 -
レスポンスで、
JobPostSurfaceStatusのisRejectedがtrue、isSponsorshipRequiredがfalseの求人を探します。以降の API 呼び出しのために
EmployerJob.idを保存します。 -
拒否の理由については、
JobPostStatusMessagingTagMatch.message(JobPostSurfaceStatus.statusCommunication内)を確認します。
レート制限
Job Update API では、次の操作にレート制限が適用されます。
- 条件で求人を一覧表示するための
findEmployerJobsPartner - 求人を更新するための
jobsIngest.updateSourcedJobPostings - 求人の更新をクリアするための
jobsIngest.clearSourcedJobPostingUpdates
これらの制限は、API の可用性を維持するためのものです。Indeed は Job Update API の通常の 1 日の使用量を上回る値を設定していますが、短期間に大量のリクエストが発生した場合はスロットリングを行います。スロットリングの可能性を下げるには、リクエストを 10 分間に分散してください。
制限を超えると、API は HTTP レスポンスまたは GraphQL の JSON errors 配列のいずれかで HTTP 429 を返します。
特別な対応は必要ありません。これらの制限への対処についてサポートが必要な場合は、サポートをリクエストしてください。
これらのレート制限を超えると、API から通知されます。
| クエリまたはミューテーション | レート制限 |
|---|---|
findEmployerJobsPartner クエリ | 1 秒あたり 5 リクエスト |
| 2 つのミューテーション合計で 1 秒あたり 20 リクエスト |
関連情報:
エラーのトラブルシューティング
- Job Update API エラーのトラブルシューティング — よくある Job Update API エラーと、その解決方法。
- OAuthエラーのトラブルシューティング — GraphQL にアクセスする前に発生する可能性がある OAuth エラーをトラブルシューティングします。
- GraphQL エラーをトラブルシューティングする。
よくある質問
Job visibility
求人でIndeed エントリーが使用されている場合、EmployerJob.seatConnections.jobPost.isIndeedApplyActiveはtrueを返します。パートナーはfindEmployerJobsPartnerでこのフィールドを取得できます。