Hiring Lab API
分析と調査のためにIndeed Hiring Labの労働市場データにアクセスします。
このAPIとそのドキュメントを使用して連携を構築すると、Indeedの利用規約に同意したことになります。
Hiring Lab APIと連携する
Hiring Lab APIと連携するには、認証用のAPIキーを取得します。
APIキーを取得する
Indeedは、Hiring Labデータへのアクセスが必要なパートナーおよび研究者にAPIキーを発行します。
APIキーをリクエストするには:
- ユースケースと組織の詳細を記載して、hiring-lab-api@indeed.comにメールします。
- Indeedがリクエストを確認し、APIキーを発行します。
- IndeedがメールでAPIキーを送信します。
APIキーは安全に保管してください。クライアントサイドのコードに埋め込んだり、バージョン管理にコミットしたりしないでください。
リクエストを認証 する
Hiring Lab APIへのすべてのGraphQLリクエストで、Indeed-API-KeyヘッダーにAPIキーを含めます。
curl -X POST 'https://apis.indeed.com/graphql' \ -H 'Content-Type: application/json' \ -H 'Indeed-API-Key: YOUR_API_KEY' \ --data-raw '{ "query": "query { findHiringLabPostingsPublic(first: 10, input: { filter: { country: [\"US\"] } }) { edges { node { ... on HiringLabNationalPosting { date indexSa } } } } }" }'YOUR_API_KEYをAPIキーに置き換えます。
Refererヘッダーを追 加する
セキュリティフィルターにブロックされないよう、リクエストにRefererヘッダーを含めます。このヘッダーは、API呼び出しを行うドメインを識別します。
curl -X POST 'https://apis.indeed.com/graphql' \ -H 'Content-Type: application/json' \ -H 'Indeed-API-Key: YOUR_API_KEY' \ -H 'Referer: https://your-domain.com' \ --data-raw '{ "query": "query { findHiringLabPostingsPublic(first: 10, input: { filter: { country: [\"US\"] } }) { edges { node { ... on HiringLabNationalPosting { date indexSa } } } } }" }'https://your-domain.comをご利用のドメインまたはサービス識別子に置き換えます。
連 携をテストする
簡単なクエリでAPIキーをテストします。
curl -X POST 'https://apis.indeed.com/graphql' \ -H 'Content-Type: application/json' \ -H 'Indeed-API-Key: YOUR_API_KEY' \ -H 'Referer: https://your-domain.com' \ --data-raw '{ "query": "query { findHiringLabPostingsPublic(first: 5, input: { filter: { country: [\"US\"], postingType: TOTAL } }) { edges { node { ... on HiringLabNationalPosting { id date country { countryCode countryName } postingType indexSa indexNsa } } cursor } pageInfo { hasNextPage } } }" }'成功したレスポンスは求人データを返します。
{ "data": { "findHiringLabPostingsPublic": { "edges": [{ "node": { "id": "...", "date": "2024-10-01", "country": { "countryCode": "US", "countryName": "United States" }, "postingType": "TOTAL", "indexSa": 102.5, "indexNsa": 103.2 }, "cursor": "..." }], "pageInfo": { "hasNextPage": true } } }}認証エラーを処理する
APIキーが欠落している、または無効な場合、Indeedは401 Unauthorizedエラーを返します。
リクエストにRefererヘッダーが含まれていない場合、セキュリティフィルターがリクエストをブロックすることがあります。ドメインまたはサービスを識別するRefererヘッダーを含めてください。
Hiring Labのスコープ外のAPIを呼び出すと、IndeedはFORBIDDENエラーを返します。
{ "errors": [{ "message": "The client doesn't have access to any requested field from '[API NAME]'.", "extensions": { "code": "FORBIDDEN" } }], "data": { "[value]": null }}クエリがHiring Lab APIのクエリのみを使用していることを確認してください。対象はfindHiringLabPostingsPublic、findHiringLabRemotePublic、findHiringLabWagesPublic、findHiringLabAiPublic、および関連するメタデータクエリです。
Hiring Lab APIの概要
Hiring Lab APIを使用して、Indeed Hiring Labがdata.indeed.comで公開するデータにアクセスします。このAPIは、求人トレンド、賃金成長、リモートワークのパターン、AI関連の求人機会を含む包括的な労働市場データを提供します。
研究者、政策立案者、経済学者、アナリストは、Hiring Lab APIを呼び出して信頼性の高い労働市場データを取得できます。Hiring Lab APIは、データセットに応じて異なる粒度と頻度のデータを提供します。
主な機能
- 包括的なカバレッジ:複数の国と地域を対象とします。
- 複数の粒度:全国、地域、セクター別のデータを取得します。
- リアルタイム更新:日次および月次のデータ更新を受け取ります。
- カーソルベースのページネーション:大規模データセットを効率的にページ送りします。
- パブリックデータとプライベートデータ:認証に応じてアクセスレベルを選択します。
利用可能なデータセット
Hiring Lab APIは、次のコアデータセットへのアクセスを提供します。
| データセット | 説明 | 粒度 | 頻度 | |||
|---|---|---|---|---|---|---|
| 全国 | 地域 | セクター | 日次 | 月次 | ||
| Job Postings | 季節調整による求人指数 | ✔ | ✔ | ✔ | ✔ | |
| Remote Work | リモートおよびハイブリッドの求人と検索 | ✔ | ✔ | ✔ | ||
| Wage Growth | 求人からの前年比賃金成長 | ✔ | ✔ | ✔ | ||
| AI Jobs | 生成AIを含むAI関連の求人 | ✔ | ✔ | |||
求人データを取得する
求人指数データを取得するには、findHiringLabPostingsPublicクエリを呼び出します。
query { findHiringLabPostingsPublic(first: 50, input: { filter: { country: ["US"], postingType: TOTAL } }) { edges { node { ...on HiringLabNationalPosting { id date country { countryCode countryName } postingType indexSa indexNsa } } cursor } pageInfo { hasNextPage hasPreviousPage startCursor endCursor } }}地域の求人データ
地域の求人データを取得するには、同じクエリを呼び出し、地理と地域でフィルターします。
query { findHiringLabPostingsPublic(input: { filter: { country: ["US"], geography: STATES, region: ["California", "Texas"] } }) { edges { node { ...on HiringLabRegionalPosting { date country { countryCode countryName } region { regionCode regionName } geography { geography } indexSa indexNsa } } } }}セクター別の求人データ
セクター別に求人データを取得するには:
query { findHiringLabPostingsPublic(input: { filter: { country: ["US"], sector: ["Technology", "Healthcare"] } }) { edges { node { ...on HiringLabSectoralPosting { date country { countryCode countryName } sector { sectorCode sectorName } indexSa indexNsa } } } }}リモートワークデータを取得する
リモートワークのトレンドにアクセスするには、findHiringLabRemotePublicクエリを呼び出します。
query { findHiringLabRemotePublic(input: { filter: { country: ["US"], metric: POSTINGS } }) { edges { node { ...on HiringLabNationalRemote { date country { countryCode countryName } metric remoteShare } } } }}remoteShareフィールドは、リモートまたはハイブリッドである求人の割合を返します。POSTINGSまたはSEARCHESでフィルターするには、metricパラメーターを含めます。
賃金成長データを取得する
賃金成長情報を取得するには、findHiringLabWagesPublicクエリを呼び出します。
query { findHiringLabWagesPublic(input: { filter: { country: ["US"] } }) { edges { node { ...on HiringLabNationalWage { date country { countryCode countryName } wageGrowthYoy wageGrowth3Ma } } } }}レスポンスには次が含まれます。
wageGrowthYoy:掲載賃金の前年比変化wageGrowth3Ma:前年比変化の3か月ラグ移動平均
AI求人データを取得する
AI関連の求人トレンドにアクセスするには、findHiringLabAiPublicクエリを使用します。
query { findHiringLabAiPublic(input: { filter: { country: ["US"] } }) { edges { node { ...on HiringLabNationalAI { date country { countryCode countryName } aiShare } } } }}レスポンスには、AI関連求人の割合であるaiShareが含まれます。
利用可能なデータカバレッジを一覧する
データカバレッジがある国を一覧する
query { findHiringLabCountriesPublic(input: { filter: { datasetId: "job_postings", granularity: NATIONAL } }) { results { countryCode countryName } }}利用可能なセクターを一覧する
query { findHiringLabSectorsPublic(input: { filter: { datasetId: "job_postings", country: "US" } }) { results { sectorCode sectorName } }}利用可能な地理区分を一覧する
query { findHiringLabGeographiesPublic(input: { filter: { datasetId: "job_postings", country: "US" } }) { results { geography } }}利用可能な地域を一覧する
query { findHiringLabRegionsPublic(input: { filter: { datasetId: "job_postings", country: "US", geography: STATES } }) { results { regionCode regionName } }}すべてのデータセットを一覧する
query { allHiringLabDatasetsPublic { results { id name description granularity frequency } }}ページネーション
Hiring Lab APIは、大規模データセットを効率的にページ送りするために、カーソルベースのページネーションを使用します。firstパラメーターに1ページあたりの結果数(最大50件)を設定し、次のページを取得するにはafterパラメーターにカーソル値を渡します。
query { findHiringLabPostingsPublic(first: 50, after: "cursor_value_from_previous_response", input: { filter: { country: ["US"] } }) { edges { node { #...your fields } cursor } pageInfo { hasNextPage hasPreviousPage startCursor endCursor } }}エラーのトラブルシューティング
GraphQLエラーについては、GraphQL エラーをトラブルシューティングするをご覧ください。
Hiring Lab APIの用語の定義については、Hiring Lab API用語集をご覧ください。
Hiring Lab APIのよくある質問
すべての求人投稿インデックスは2020年2月1日をベースライン(= 100)として使用しています。このベースラインにより、国や期間を超えた一貫した比較が可能になります。
季節調整済み(SA)インデックスは、基調的なトレンドを示すために典型的な季節パターンを除去します。非季節調整(NSA)インデックスは、年末年始の採用などの通常の季節変動を含む生データを示します。
- 求人投稿およびリモートワークデータ:毎日更新
- 賃金上昇データ:毎月更新
- AI求人投稿データ:毎日更新
カバー範囲はデータセットによって異なります。各データセットと粒度レベルで利用可能な国を確認するには、findHiringLabCountriesPublicクエリを使用してください。
過去のデータを取得するには、カーソルベースのページネーションを使用してください。必要なフィルタを設定し、前回のレスポンスのafterパラメータとカーソル値を使用して結果をページネーションしてください。
リクエストあたりの最大結果数は50件です。より大きなデータセットを取得するにはページネーションを使用してください。
APIは時系列順でデータを返します。必要な期間にフィルタするには、アプリケーションロジックでページネーションと日付フィールドを使用してください。