HasData Indeed について
HasData Indeed は、公開求人情報を扱う MCP クライアント向けのホスト型読み取り専用サービスです。キーワードと勤務地で求人を検索し、個別の求人詳細を構造化 JSON で取得できます。
主な機能
- 01キーワードと勤務地による求人検索
- 02日付順の並べ替えとページ送り
- 03求人説明と応募要件の取得
- 04給与と雇用条件の返却
活用シーン
- 01特定の都市で新着求人を探す
- 02給与を基準に求人を絞り込む
- 03勤務地ごとの給与を比較
- 04求人の要件と福利厚生を確認
MCP 対応
ホスト型リモートサーバーとして、求人検索と求人詳細取得の読み取り専用ツールを MCP クライアントに提供します。採用マップのプロンプトとパラメーター値のリソースもあります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.hasdata.com/mcp?apis=indeedclaude mcp add --transport http com-hasdata-indeed https://mcp.hasdata.com/mcp?apis=indeed{"mcpServers":{"com-hasdata-indeed":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=indeed"}}}Cursor で開く{"servers":{"com-hasdata-indeed":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=indeed"}}}VS Code で開く{"mcpServers":{"com-hasdata-indeed":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=indeed"}}}{"mcpServers":{"com-hasdata-indeed":{"serverUrl":"https://mcp.hasdata.com/mcp?apis=indeed"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.hasdata.com/mcp?apis=indeed認証が必要ツール
2| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| pets | number | いいえ | ペットの数。 |
| neLat | number | いいえ | 地図のバウンディングボックスの北東角の緯度。4 つの境界ボックス座標をすべて指定すると、場所ではなくボックス内でリスティングを検索します。 |
| neLng | number | いいえ | 地図のバウンディングボックスの北東角の経度。 |
| swLat | number | いいえ | 地図のバウンディングボックスの南西角の緯度。 |
| swLng | number | いいえ | 地図のバウンディングボックスの南西角の経度。 |
| adults | number | いいえ | 大人の人数。 |
| checkIn | string | はい | リスティングのチェックイン日。 |
| infants | number | いいえ | 乳幼児の人数。 |
| checkOut | string | いいえ | リスティングのチェックアウト日。 |
| children | number | いいえ | 子どもの人数。 |
| location | string | いいえ | リスティングを検索する場所。完全な地図バウンディングボックス(neLat、neLng、swLat、swLng)を指定しない場合は必須です。 |
| nextPageToken | string | いいえ | 次のページの結果を取得するためのトークン。 |
詳細
Indeed MCP Server
Claude、Cursor、Windsurf、その他あらゆる MCP クライアントから利用できる、ホスト型の Model Context Protocol(MCP)サーバーです。読み取り専用の Indeed ツールを2つ提供します。キーワードと場所で求人情報を検索し、1件の求人情報を全文、構造化された JSON 形式で取得できます。Indeed の開発者アカウントも、パートナー承認も必要ありません。
サインアウト状態の訪問者が閲覧できる公開求人情報を読み取ります。
毎月1,000クレジットが無料、カード登録不要で、Indeed へのリクエストを100回実行できます。
https://mcp.hasdata.com/mcp?apis=indeed
目次
必要なもの
MCP クライアントと、ダッシュボードから取得できる HasData API キーが必要です。カード登録なしで無料で作成でき、無料枠では1か月あたり約100回、1回10クレジットの呼び出しを利用できます。これはリモートサーバーなので、URL と x-api-key ヘッダーを設定するだけで簡単に利用できます。コンテナを実行する必要はなく、利用の過程で Indeed の開発者アカウントも必要ありません。stdio のみをサポートするクライアントからは、下記の薄いランチャーを介して接続できます。ランチャーは npm では @hasdata/indeed-mcp、PyPI では hasdata-indeed-mcp として公開されています。
クイックスタート
サーバー URL はすべてのクライアントで同じです。Claude Code と Claude Desktop では、手順に沿って接続します。その他の設定ブロックは、各クライアントのリモートサーバーに関する公式ドキュメントの形式に準拠しています。
| 項目 | 値 |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=indeed |
| トランスポート | HTTP、ストリーミング可能 |
| 認証ヘッダー | x-api-key: HASDATA_API_KEY |
OAuth に対応しているクライアントでは、同じ URL をコネクタとして追加し、設定ファイルにキーを記載せずにサインインできます。
Claude Code
claude mcp add --transport http indeed "https://mcp.hasdata.com/mcp?apis=indeed" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
「Settings」から「Connectors」、「Add custom connector」の順に選択し、https://mcp.hasdata.com/mcp?apis=indeed を貼り付けてサインインします。
設定ファイルを使う場合、Claude Desktop が読み込むのはローカル(stdio)サーバーのみのため、stdio ランチャーを介してリモートサーバーに接続します。@hasdata/indeed-mcp パッケージがそのランチャーで、キーは環境から読み込みます。claude_desktop_config.json に次の内容を追加します。
{
"mcpServers": {
"indeed": {
"command": "npx",
"args": ["-y", "@hasdata/indeed-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Node の代わりに Python を使う場合は、手動でインストールせずに uvx で実行できる PyPI パッケージにランチャーを置き換えます。
{
"mcpServers": {
"indeed": {
"command": "uvx",
"args": ["hasdata-indeed-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Cursor
すべてのプロジェクトに適用する場合は ~/.cursor/mcp.json、1 つのプロジェクトに適用する場合は .cursor/mcp.json を使用します。
{
"mcpServers": {
"indeed": {
"url": "https://mcp.hasdata.com/mcp?apis=indeed",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json を使用します。Windsurf では url ではなく serverUrl というフィールド名を使います。
{
"mcpServers": {
"indeed": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=indeed",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
VS Code
ワークスペース内の .vscode/mcp.json を使用します。
{
"servers": {
"indeed": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=indeed",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
プロンプトの例
コードではなく、プロンプトです。どれかを貼り付ければ、エージェントがツールを自動で選びます。呼び出しが成功するたびに 10 クレジットかかるため、それぞれに必要な呼び出し回数を記載しています。
ニューヨークの「python developer」の求人を Indeed で検索し、掲載日順に並べて、最新の 10 件を会社名と給与付きで教えてください。
1 回の呼び出しで 10 クレジットです。求人一覧には、会社名、給与、掲載日がすでに含まれています。
その検索結果の一番上の求人について、完全な説明と応募条件を取得してください。
1 回の呼び出しで 10 クレジットです。求人一覧には詳細ツールにそのまま渡せる求人 URL が含まれています。
オースティンの「data analyst」の求人を検索し、給与が記載されている求人 3 件の詳細を取得してください。
4 回の呼び出しで 40 クレジットです。求人一覧の取得が 1 回、3 件それぞれの詳細取得が 1 回ずつです。
シカゴとヒューストンで掲載されている「registered nurse」の給与を比較してください。
2 回の呼び出しで 20 クレジットです。各都市の求人一覧を 1 回ずつ取得します。
求人情報に給与が記載されている場合のみ、求人一覧に給与が表示されます。そのため、「給与が記載された求人」を求めるプロンプトでは、給与があると仮定せずにフィールドで絞り込みます。ページ送りには、start オフセットを使ってページを進めるたびに 1 回の呼び出しが必要です。
ツール
| ツール | 返される内容 |
|---|---|
hasdata_indeed_job_getJobDetails | 求人タイトル、会社名、勤務地、給与・報酬、雇用形態、掲載日、完全な説明、応募条件・福利厚生、応募 URL。呼び出しごとに 10 クレジット |
hasdata_indeed_listing_getJobListings | 指定したページの求人配列。各求人にはタイトル、会社名、勤務地、給与、掲載日、求人 URL、jobKey が含まれます。呼び出しごとに 10 クレジット |
ツールは読み取り専用の 2 つです。以下のサンプルは実際の呼び出しから抜粋したもので、Indeed の更新に応じて数値は変わります。データの形を示すものとしてご覧ください。各ツール名はエンドポイントのリファレンスにリンクしており、すべてのフィールドが記載されています。
サンプルはペイロードであり、レスポンス全体ではありません。tools/call の結果にはテキストブロックが 1 つ含まれ、そのテキスト自体が url、status、text、json を含む JSON で、スクレイピングしたデータは json の下にあります。生の JSON-RPC レスポンスでは、パスは result.content[0].text で、これを解析してから .json にアクセスします。チャットクライアントはこのデータを展開してくれますが、エンドポイントに直接アクセスするコードでは展開されません。
Indeedの求人情報を取得する
hasdata_indeed_listing_getJobListings
キーワードと場所で検索した結果の1ページです。
| パラメーター | 型 | 必須 | 備考 |
|---|---|---|---|
keyword | string | はい | 求職者が入力するような検索語 |
location | string | はい | 市区町村と州、またはIndeedが受け付ける任意の場所文字列 |
sort | string | デフォルトはrelevanceです。新しい順に表示する場合はdateを指定します | |
domain | string | au.indeed.comなどの国別サイトです。デフォルトでは米国のサイトが使用されます | |
start | number | 次のページの結果オフセットです。URLではなく数値を指定します。前回のレスポンスのpagination.nextPageからオフセットを読み取ってください |
searchInformation、jobs配列、peopleAlsoSearchFor、および次のページのURLがnextPageに格納されたpaginationを返します。各求人には、title、company、location、url、短いdescription、sponsored、相対的なdateと絶対的なisoDate、Full-timeやHybrid workなどのラベルを含むdetails配列、benefits配列、掲載情報に記載がある場合はsalaryオブジェクトが含まれます。
求人情報の
detailsは、通常の文字列の配列です。下記の求人詳細ツールが返すdetailsは、jobType配列とworkSetting配列を含むオブジェクトです。同じ名前でも形が異なるため、それぞれのツールに合わせて読み取ってください。
{
"title": "Hedge Fund Application Developer",
"company": "TBA",
"location": "Stamford, CT 06901",
"url": "https://www.indeed.com/pagead/clk?...",
"sponsored": true,
"date": "30+ days ago",
"isoDate": "2025-06-03T17:22:54.869Z",
"details": ["Full-time", "Hybrid work"],
"benefits": ["Health insurance", "401(k)", "401(k) matching"],
"salary": { "min": 80000, "max": 150000, "type": "YEARLY" }
}
Indeedの求人詳細を取得する
hasdata_indeed_job_getJobDetails
求人URLを指定して、求人情報を全件取得します。
| パラメーター | 型 | 必須 | 備考 |
|---|---|---|---|
url | string | はい | 求人情報のURLです。求人一覧の結果に含まれるurlフィールドを指定します |
title、company、location、sponsored、jobType配列とworkSetting配列を含むdetailsオブジェクト、記載がある場合はsalaryオブジェクトを返します。また、求人本文はdescription(プレーンテキスト)とdescriptionHtml(リストと段落のマークアップを保持した同じ内容)の両方で返されます。構造を保持したい場合はdescriptionHtmlを、モデルに整形済みテキストを渡したい場合はdescriptionを使用してください。
{
"title": "Python Developer",
"company": "Think IT Technologies",
"location": "New York, NY 10114",
"sponsored": false,
"details": { "jobType": ["Contract"], "workSetting": ["In-person"] },
"salary": { "min": 60.5, "max": 65, "type": "HOURLY" },
"description": "Overview\nWe are seeking a Python Developer...",
"descriptionHtml": "<p><b>Overview</b></p><p>We are seeking a Python Developer...</p>"
}
プロンプトとリソース
サーバーには1つのプロンプトが用意されています。これは、ユーザーにツール呼び出しを作成してもらう代わりに、クライアントから提示できる、すぐに使えるワークフローです。
| プロンプト | 内容 |
|---|---|
indeed_hiring_map | どの職種がどこで募集されているか、また給与はいくらかを確認します。 |
これらに加えて、サーバーは、受け付ける値が固定リストになっている各パラメーターに対応する4つのリソースを公開します。拒否された呼び出しから値の一覧を調べるよりも、リソースを読み取る方が効率的で、クレジットも消費しません。各URIはhasdata://indeed/<parameter>です。
| パラメーター | 値 | 選択する内容 |
|---|---|---|
sort | 2 | 検索結果の並べ替え方法です。 |
domain | 62 | Indeedサイトのドメインです(任意)。 |
datePosted | 4 | 指定した日数以内に掲載された求人のみを返します。 |
remoteType | 2 | リモート(remote)またはハイブリッド(hybrid)の求人のみを返します。米国では、Indeedは完全リモートの求人を都市ではなく国に関連付けるため、United Statesなど国全体を指定してください。都市を指定すると、リモート求人がほとんど、またはまったく返されません。 |
どちらのリストもAPIキーなしで提供されるため、ユーザーが登録する前でもクライアントから読み取れます。
エラーと失敗パス
ツール呼び出しでクライアントが HTTP エラーコードを受け取ることはほとんどありません。MCP 層は 200 を返し、失敗は結果の中に格納されます。isError が true に設定され、理由はテキストで示されます。エージェントは、ステータス行を期待する場面でメッセージを読み取ります。
キーが間違っていても、接続エラーではなくツールの出力に現れます。 tools/list は空でないキーをすべて受け付け、両方のツールを返すため、クライアントはハンドシェイクを完了し、正常を示す緑色の表示になります。最初のツール呼び出しで isError: true とテキスト HasData API error: 401 Unauthorized が返されます。この文字列に注意してください。フローのそれ以前の段階では、問題は報告されないためです。
キーがない場合だけは、実際に HTTP エラーが発生します。 認証はツールの実行前に行われ、接続自体が 401 で失敗します。CORS ヘッダーが含まれているため、ブラウザクライアントは不透明なネットワークエラーではなく、ステータスを読み取れます。
ツールのスキーマに適合しない引数は、スクレイピングが始まる前に拒否されます。 サーバーは isError: true とテキスト MCP error -32602: Input validation error を返し、問題のあるフィールドを示します。データは取得されず、課金もされません。
検索条件に一致するものがない場合、エラーではなく、空の jobs 配列を含む成功結果が返されます。 求人がないキーワードと勤務地の組み合わせでも、requestMetadata.status は ok になります。反復処理に入る前に、配列の長さを確認してください。
掲載が取り下げられている場合は、requestMetadata.status が error に設定され、400 が返されます。 Indeed では掲載がすぐに終了するため、古い検索結果に含まれていた URL がすでに無効になっていることがあります。
データを含む結果には、サポートへの問い合わせで伝えると役立つ requestMetadata.id も含まれます。
料金、無料枠、制限
Indeed の各ツールは、呼び出しが成功するたびに10 クレジットかかります。レスポンスのサイズによって料金は変わりません。求人が 50 件ある掲載ページも、2 件のページと同じ料金です。
無料枠では、カード登録なしで毎月 1,000 クレジットを利用でき、Indeed を 100 回呼び出せます。請求サイクルごとに更新されるため、利用量の少ないエージェントなら無料枠を無期限に使い続けられます。
有料プランは、200,000 クレジット(20,000 回の呼び出し)が利用できる月額 59 ドルのプランから始まります。利用量が増えるほど単価は下がり、エントリープランでは呼び出し 1,000 回あたり 1.48 ドル、Basic では0.60 ドル、Growth の各プランでは0.41 ドルです。最新の料金は料金ページで確認できます。
同時実行数もプランによって決まります。無料枠は一度に 1 件、Startup は 5 件、Basic は 15 件までで、Growth の各プランでは 50 件から 500 件までです。無人で実行するものでは、上限を超えた場合に備えて適切に処理してください。
200 以外のレスポンスが返されたリクエストは課金されません。成功したものの結果が見つからなかった呼び出しも、1 回として数えられます。
ツールの選択
apis クエリパラメーターによって、エージェントに表示されるツールが決まります。ツールが少ないほど、ツール定義に使うコンテキストが減り、モデルが誤ったツールを選ぶ可能性も低くなります。
?apis=indeed the two tools in this repo
?apis=indeed,glassdoor add Glassdoor jobs
?apis=indeed,google_serp add Google search
このパラメーターには、indeed のようなプロバイダー名と、indeed_listing のような個別の API 名を指定します。スペルを間違えた名前は無視されます。すべての名前が間違っている場合、リクエストは 400 で失敗し、レスポンス本文には認識されなかった名前と、指定可能なすべての値が記載されます。パラメーターを省略すると、同じエンドポイントですべての HasData ツール 57 個が公開されます。
比較
Indeed は一般向けの Publisher API と Job Search API を廃止しており、現在、プログラムからのアクセスにはセルフサービスのキーではなく、承認済みのパートナーシップや ATS 連携が必要です。公開求人や求人情報を任意の検索条件で取得するための、オープンな公式の方法はありません。
| Indeed の公式アクセス | このサーバー | |
|---|---|---|
| アクセス | パートナーまたは ATS の承認 | キー 1 つと URL 1 つ |
| 対象範囲 | パートナーシップで許可された範囲 | あらゆる公開検索または求人情報 |
| 設定 | ビジネス審査 | なし |
| 出力 | 連携によって異なります | 構造化 JSON、給与は事前に解析済み |
| 書き込み | 承認済みパートナー向けの応募フロー | 読み取り専用、公開データのみ |
このサーバーが行わないこと。 応募の送信、雇用主向けダッシュボード、候補者データ、非公開の求人情報は対象外です。サインアウトした訪問者が閲覧できる情報を読み取ります。
FAQ
公式の Indeed MCP サーバーはありますか?
Indeed は公開していません。このサーバーは HasData が保守しており、公開ページを読み取るため、Indeed の開発者アカウントは必要ありません。
Indeed MCP サーバーとは何ですか?
AI クライアントが呼び出せるツールとして、Indeed の求人データを提供するサーバーです。クライアントが Model Context Protocol を介してツール呼び出しを送信し、サーバーがデータを取得して構造化 JSON を返すと、モデルはその結果を処理します。このサーバーは 2 つのツールを提供し、リモートで動作します。
Indeed API キーやパートナーアカウントは必要ですか?
いいえ。必要な認証情報は HasData キーのみです。ツールは Indeed の公開ページを読み取るため、申請が必要な Publisher アカウントはありません。
1 画面分を超える検索結果をページ送りするにはどうすればよいですか?
start オフセットを URL ではなく数値として、求人一覧ツールに渡してください。レスポンスには pagination.nextPage が返され、その start 値が次のページのオフセットです。その数値を読み取って渡し直してください。URL を入力しないでください。
給与が表示されないことがあるのはなぜですか?
求人情報に給与が記載されていないためです。Indeed に金額が表示される場合にのみ、salary オブジェクトが含まれます。存在しない場合も考慮して読み取ってください。
ほかの HasData API と一緒に使用できますか?
はい。apis パラメーターにはリストを指定でき、?apis=indeed,glassdoor を指定すると、エージェントに Indeed と Glassdoor の両方を利用させることができます。パラメーターを省略すると、すべてを取得できます。
コンプライアンスと個人データ
HasData は公開されているデータのみを取得します。プラットフォームの利用規約で自動アクセスが制限されている場合があり、コンプライアンスの遵守はお客様の責任です。収集するデータに個人情報が含まれる場合は、GDPR、CCPA、またはお客様の管轄区域で適用される同等の規則に基づく適法な根拠があることを確認してください。
HasData のリンク
| 製品ページとリクエストビルダー | Indeed Scraper API |
| サーバーのドキュメント | MCP server docs |
| 57 個すべてのツールを 1 つのサーバーで提供 | HasData/hasdata-mcp |
| クライアントの利用ガイド | MCP clients and integrations |
| そのほかのスクレイピング対象 | Indeed Scraper API and 54 more |
| プランとクレジット費用 | Plans and credit costs |
| キーと使用状況 | HasData dashboard |
| npm の Node 起動ツール | @hasdata/indeed-mcp |
| PyPI の Python 起動ツール | hasdata-indeed-mcp |
開発
このリポジトリは、リモートサーバーの設定とドキュメントです。ビルド工程はなく、コンテナ化するものもありません。
test/ のテストでは、ここでコミットしなくても壊れる可能性があるツールの契約を検証します。?apis=indeed が正確に 2 つのツールを返すこと、各ツールが必須パラメーターを引き続き宣言していること、名前が変更されていないこと、使用中のキーが実際に受け付けられることを確認します。最後のチェックではツールを実際に呼び出すため、10 クレジットかかります。これは、正しい理由で失敗する可能性のあるカナリアテストの代償です。
# macOS and Linux
HASDATA_API_KEY=your_key_here npm test
# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test
同じテストスイートは、プッシュごとと週 1 回のスケジュールで CI でも実行されます。これは、誰もこのリポジトリに手を加えていなくても、上流のツール一覧が変更される可能性があるためです。失敗した場合は、ツール一覧が変更されたか、キーが使えなくなったか、エンドポイントに到達できなかったことを意味し、どれに該当するかはアサーションメッセージで示されます。
コントリビュート
ツール一覧表とレスポンスのサンプルは変更されやすいため、これらの修正が最も役立つコントリビュートです。実行した呼び出しと受け取ったレスポンスを記載してください。フォークからのプルリクエストでは、キーなしでテストスイートが実行され、実環境のチェックは失敗扱いにならずにスキップされます。
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。