Indeed MCP Server
Indeed MCP Server
Claude、Cursor、Windsurf、その他あらゆる MCP クライアントに、読み取り専用の Indeed ツールを 2 つ提供するホスト型 Model Context Protocol(MCP)サーバーです。キーワードと場所で求人情報を検索し、個別の投稿を完全に読み取れます。すべて構造化 JSON として返され、Indeed の開発者アカウントもパートナー承認も不要です。
ログアウトした訪問者が見られる公開求人情報を読み取ります。
https://mcp.hasdata.com/api/mcp?apis=indeed
目次
Related MCP server: JobDataLake MCP Server
必要なもの
MCP クライアントと、ダッシュボード で取得できる HasData API キーです。無料で作成でき、クレジットカードは不要で、トライアルは 5 クレジット換算で 200 コール程度をカバーします。リモートサーバーのため、最も簡単な方法は URL と x-api-key ヘッダーの組み合わせで、コンテナを動かす必要も、フローの中に Indeed の開発者アカウントも一切ありません。stdio のみに対応したクライアントは、薄いランチャー経由でアクセスします。このランチャーは npm では @hasdata/indeed-mcp として、PyPI では hasdata-indeed-mcp として公開されており、下に示します。
クイックスタート
サーバーの URL はすべてのクライアントで共通です。私たちは Claude Code と Claude Desktop で手を動かして使っています。他の設定ブロックは、各クライアントが公式に提供するリモートサーバーの形式に従っています。
フィールド | 値 |
URL |
|
トランスポート | HTTP、ストリーム対応 |
認証ヘッダー |
|
OAuth をサポートするクライアントは、同じ URL をコネクタとして追加し、設定ファイルにキーを書かずにサインインできます。
claude mcp add --transport http indeed "https://mcp.hasdata.com/api/mcp?apis=indeed" \
--header "x-api-key: HASDATA_API_KEY"設定 → 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" }
}
}
}Python の場合は Node の代わりに、PyPI パッケージのランチャーに切り替えます。uvx が手動インストールなしで実行します:
{
"mcpServers": {
"indeed": {
"command": "uvx",
"args": ["hasdata-indeed-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}~/.cursor/mcp.json はすべてのプロジェクト用、または .cursor/mcp.json は単一プロジェクト用です:
{
"mcpServers": {
"indeed": {
"url": "https://mcp.hasdata.com/api/mcp?apis=indeed",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.codeium/windsurf/mcp_config.json を使用します。Windsurf は url ではなく serverUrl というフィールド名を使います:
{
"mcpServers": {
"indeed": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=indeed",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}ワークスペース内の .vscode/mcp.json を使用します:
{
"servers": {
"indeed": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=indeed",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}プロンプトの例
コードではなくプロンプトです。貼り付けると、エージェントがツールを選択します。各プロンプトには必要なコール回数を注記しています。呼び出しが成功するたびに 5 クレジットが消費されるためです。
Indeed で「python developer」の求人を New York、日付順で検索し、企業名と給与が入った直近 10 件をください。
コール回数 1 回、5 クレジット。一覧ページに企業名、給与、掲載日時がすでに含まれています。
その検索結果の先頭の求人を取り上げ、説明と条件を全文読み取ってください。
コール回数 1 回、5 クレジット。一覧には求人ページの URL が含まれており、詳細ツールがその URL を直接使用します。
Austin で「data analyst」の求人を検索し、給与が表示されている 3 件について詳細を取得してください。
コール回数 4 回、20 クレジット。一覧が 1 回、3 件それぞれへの詳細が各 1 回です。
Chicago の「registered nurse」の給与と、Houston の給与を比較してください。
コール回数 2 回、10 クレジット。各都市で一覧 1 回ずつです。
給与は、掲載ページが明示している場合にのみ一覧に表示されます。そのため「給与ありの求人」というプロンプトはそのフィールドを前提にするのではなく、フィルタリングに使います。ページ送りは start オフセットを使い、1 回ごとにコールが必要です。
ツール
読み取り専用のツールが 2 つあります。以下のサンプルは実際の API 呼び出しから切り取ったもので、Indeed の更新に合わせて数値は変わります。形の参考として読んでください。各ツール名はエンドポイントのリファレンスにリンクしており、完全なフィールド一覧があります。
各サンプルはペイロードであり、レスポンス全体ではありません。tools/call の結果は 1 つのテキストブロックを持ち、そのテキスト自体が JSON で、url、status、text、json を含み、スクレイピング結果は json の下にあります。生の JSON-RPC レスポンスでは、パスは result.content[0].text(パース後)の .json です。チャットクライアントはそれを展開してくれますが、エンドポイントを直接呼ぶコードでは展開されません。
Indeed 求人一覧を取得
hasdata_indeed_listing_getJobListings
キーワードと場所による検索結果の 1 ページ分です。
パラメーター | 型 | 必須 | 内容 |
| string | はい | 求職者が入力する形式の検索語 |
| string | はい | 市区町村と都道府県、または Indeed が受け入れる任意の場所文字列 |
| string | いいえ | 既定は |
| string | いいえ |
|
| number | いいえ | 次ページの結果オフセット。URL ではなく数値。前回のレスポンスの |
searchInformation、jobs 配列、peopleAlsoSearchFor、そして pagination(その nextPage が次ページの URL)を返します。各求人には 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 で 1 件の投稿を全文表示します。
パラメーター | 型 | 必須 | 内容 |
| string | はい | 一覧結果の |
title、company、location、sponsored、jobType と workSetting の配列を持つ details オブジェクト、存在する場合の salary オブジェクト、そして投稿本文を、description(プレーンテキスト)と descriptionHtml(同じ内容で箇条書き・段落のマークアップを保持)の両方で返します。HTML 構造が必要なら 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>"
}エラーと失敗パターン
ツール呼び出しで HTTP エラーコードが返ることはほとんどありません。MCP 層は 200 を返し、結果の内部に失敗を入れます。isError は true になり、理由はテキストとして入ります。エージェントは、ステータス行を期待する場所でメッセージを読み取ります。
間違ったキーは、接続の失敗ではなくツール出力として現れます。 tools/list は空でない任意のキーを受け入れ、2 つともツールを返すため、クライアントはハンドシェイクを完了してグリーン表示になります。最初のツール呼び出しが isError: true とテキスト HasData API error: 401 Unauthorized で返ってきます。フローの以前の部分ではこの問題を報告しないため、この文字列に注意してください。
キーが見つからないのが、唯一の実 HTTP エラーです。 認証はどのツールよりも先に実行され、接続自体が 401 で失敗します。CORS ヘッダーが含まれるため、ブラウザベースのクライアントは不透明なネットワークエラーではなく、ステータスを読み取れます。
ツールのスキーマを壊す引数は、スクレイピングされる前に拒否されます。 サーバーは isError: true と、問題のあるフィールドを挙げたテキスト MCP error -32602: Input validation error で返します。取得も課金も行われません。
一致するものが何もない検索は、エラーではなく、成功した結果と空の jobs 配列を返します。 キーワードと場所の組み合わせに求人がない場合でも、requestMetadata.status は ok に設定されて返されます。反復処理する前に配列の長さを確認してください。
削除済みの投稿は 400 を返し、requestMetadata.status が error に設定されます。Indeed は掲載をすぐに失効させるため、以前の検索で得た URL が消えている場合があります。
データを含む結果には requestMetadata.id も含まれており、サポートへの問い合わせで役立ちます。
料金、無料枠、制限
各 Indeed ツールは、成功した呼び出し 1 回につき 5 クレジット です。レスポンスのサイズで価格は変わりません。求人 50 件の一覧ページも 2 件の一覧ページも同じ価格です。
無料トライアルは 30 日間 1000 クレジット、クレジットカード不要 で、Indeed 呼び出し約 200 回分です。その後の有料アカウントは、残高が 100 未満のたびに毎日 100 クレジットが補充され続けるため、低頻度のエージェントは無料バーでほぼ無期限に動き続けます。
有料プランは月額 $49 からで、200,000 クレディット(40,000 回)です。単価は量とともに下がります。ライトプランの 1,000 コール当たり $1.23 から、Business では $0.50、Growth では $0.42、最大の High-volume プラン では $0.37 までです。
プランによっ並行リクエスト数も決まります。無料トライアルは同時 1 リクエスト、Startup は 15、BUSINESS 30、Growth 50、high-volume プランは 200〜1500 です。無監視で動作させる場合は、溢れの処理を防御的に組みんでください。
200 以外で戻ったリクエストは課金されません。成功しても何も見つからなか「コール」はコールです。
ツール選択
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つのキーと1つのURL |
範囲 | パートナーシップが与える範囲 | 公開されている検索・求人情報すべて |
セットアップ | ビジネスレビュー | 不要 |
出力 | 統合の実装に依存 | 構造化JSON、給与は事前解析済み |
書き込み | 承認されたパートナー向けの応募フロー | 読み取り専用、公開データのみ |
このサーツーがしないこと。 応募の提出、雇用主向けダッシュボード、候補者データ、非公開の求人はいずれも扱いません。サインアウトした訪問者が見ることができる公開情報だけを読み取ります。
FAQ
公式のIndeed MCPサーツーはありますか?
Indeedは公式のMCPサーバーを公開していますね。本サーバーはHasDataが述メンテナンスし、公開ページを読み取るため、Indeedの開発者アカウントは不要です。
Indeed MCPサーバーとは何ですか?
Indeedの求ラdataをAIクライアントが呼び出し可能なツールとして公開するサーバーです。クライアントがModel Context Protocolを使ってツール呼び出しを送信し、サーツーがデータを取得して構造化JSONを返し、モデルがその結果を扱います。本サーバーは2つのツールを公開し、リモートで動作します。
Indeed APIキーやパートナーアカウントは必要ですか?
いいえ。必要なる資格はHasDataキーだけです。Publisherアカウントに申し込む必要はありません。ツールがIndeedの公開ページを読み取るだけだからです。
複数画面にまたがる結果をどうやってページ送りしますか?
startオフセットをURLではなく数値として一覧ツールに渡してください。レスポンスはpagination.nextPageを返し、そのnextPageのstart値が次のページのオフセットです。そのためURLを渡すのではなく、その数値を読み取って渡し返してください。
給与がたまに表示されないのはなぜですか?
それは求人情報に給与が記載されていないからです。salaryオブジェクトは、Indeedが金額を寄せたときにのみ存在します。その前提で防御的に処理してください。
ほかのHasData APIと一緒に使えますか?
はい。apisパラメータはリストを受け取ることができ、?apis=indeed,glassdoorと指定するとエージェントはIndeedとGlassdoorの両方を使えるようになります。パラメータを取り除くと、すべてを利用できます。
コンプライアンスと個人データ
HasDataは公開されているデータのみにアクセスします。プラットフォームの利用規約が自動化アクセスを制限していることもあり、コンプライアンスの責任は利用者自身にあります。収集するデータに個人情報が含まれる場合は、GDPR、CCPA、またはその地域の同等の規則に基づいて、法適合の根源があることを確認してください。
HasDataリンク
プロダクトページ・リクエストビルダー | |
サーバーのドキュメント | |
57のツールを1つのサーバ−で | |
クライエントのためのチュートリアル | |
そのほかスクレーピング対象なすべて | |
プランとクレジット費用 | |
認証情報と利用状況 |
開発内容
このリポジトリは、リモートサーバーの設定とドキュメントです。build build 手順はなく、るコンテナ化も必要ありません。
test/に置かれたテストはツール契約を検証します。これはこのリポジトリにおけるコミットなしでも壊れうる部分です。?apis=indeedが、ちょうど2つのツールを返すこと、すべてのツールが必須パラメータを依然として宣言していること、名称が変更されていないこと、現在使用中のキーが実際に受け入れられることを確認します。最後のチェックは実際にツールを呼び出し、5クレジットを消費します。これは、正しい理由で失敗するための監視役(カナラ)の価格に相当します。
# macOS and Linux
HASDATA_API_KEY=your_key_here npm test
# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test同じスイートは、すべてのプッシュと週1回のスケジュールのCIで実行されます。上流のツールリストは、誰もこのリポジトリを触っていなくても変わり得るためです。失敗は、ツールリストが動いた、キーが利用できなくなった、またはエンドポイントに到達できなかった、のいずれかを意味します。そのどれに該当するのかは検証のメッセージが示します。
コントリビューション
最も有益な貢献は、ツールの表とレスポンス例の修正です。長期間の間にそれらの内容はずれていくためです。その場合、実行した呼び出しと得られたレスポンスを記載してください。forkからのロールリクエストはキーなしでスイートを実行し、ライブチェックは赤くなる代わりにスキップされます。
ライセンス
MITライセンスで提供されます。LICENSE を参照してください。| | Indeed公式アクセス | 本サーバー | | :--------- | :--------------------------------------------- | :--------------------------------- | | アクセス | パートナーまたはATSの承認 | 1つのキーと1つのURL | | 範囲 | パートナーシップが許可する範囲 | 公開されている検索・求人情報すべて | | セットアップ | ビジネスレビュー | 不要 | | 出力 | 統合の実装に依存 | 構造化JSON、給与は事前解析済み | | 書き込み | 承認済みパートナー向けの応募フロー | 読み取り専用、公開データのみ |
このサーバーがしないこと。 応募の送信、雇用主向けダッシュボード、候補者のデータ、非公開の募集は扱いません。サインアウトした訪問者にも見える公開ページを読み取るだけです。
FAQ
公式のIndeed MCPサーバーはありますか?
Indeedは公式のMCPサーバーを公開していません。本サーバーはHasDataが保守しており、公開ページを読み取るため、Indeedの開発者アカウントは不要です。
Indeed MCPサーバーとは何ですか?
Indeedの求人データを、AIクライアントが呼び出せるツールとして公開するサーバーです。クライアントがModel Context Protocol経由でツール呼び出しを送信し、サーバーがデータを取得して構造化JSONを返し、モデルがその結果を扱います。本サーバーは2つのツールを公開し、リモートで動作します。
Indeed APIキーやパートナーアカウントは必要ですか?
いいえ。必要な資格情報はHasDataキーだけです。取得すべきPublisherアカウントはありません。ツールはIndeedの公開ページを読み取るだけだからです。
複数画面にわたる結果をページ送りするにはどうすればよいですか?
startオフセットをURLではなく数値として一覧ツールに渡してください。レスポンスの中のpagination.nextPageには、そのstart値が次ページのオフセットとして含まれますので、URLを渡すのではなく、その数値を読み取って渡し返してください。
給与が時々欠缺することがあるのはなぜですか?
求人情報に給与が記されていないからです。salaryオブジェクトは、Indeedが額を表示し場合にのみ存在します。防御的に扱ってください。
他のHasData APIと操組めますか?
いエ。apisパラメータはリスト値を受け取れて、?apis=Indeed,glassdoorを指定すると、Indeedに加えてGlassdoorも利用できます。パラメータを外すと、すべてを気に。利用できます。
法務・個人的データ
HasDataは一般公開されたデータのみにアクセスします。プラットフォームの方針が自動アクセスを制限する場合があり、コンプライアンスの責任はあなた自身にあります。収集したデータに個人情報が含まれる場合は、GDPR、CCPAまたはその他あなたの管轄地域における同等のルールに確った正当な法的根行事がをとってください。
HasData関係リンク
プロダクトページと要求ビルダー | |
サーバー ドキュメンテーション | |
57ツールを一のサーバーで | |
クBrイアワークスルー | |
その他スクレイプ対象 | |
プランとクレジット費用 | |
キーと利用状況 |
開発
このリポジトリはリモートサーバーの設定・ドキュメントリポジトリで、ビルド手順やコンテナ化の対象はありません。
test内のテストはツールコントラクト、ここにコミットがなくても崩れ得る部分を検証します。内容は、?apis=indeedがツール4つであること、すべてのツールが必須パラメータを宣言していること、名前変更がないこと、使用中であるキーが実際に受理されることを確認します。最後の確認には実際のツール呼び出しが必要で5クレジットかかります。これは、正しい理由で失敗する可能性があるためのツール信号(カナリー)のコストです。
# macOS and Linux
HASDATA_API_KEY=your_key_here npm test
# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test同じスイートはCIでプッシュのたびと週1回、スケジュールでも実行されます。上流のツールリストはこのリポジトリへのタッチとは無関係に変わり得るからです。失敗肢は、ツールリストの変更、キー停止、エンドポイントへの豚達不能です。そのどれに当たるかをアサーションメッセージが示します。
コントリビューション
ツール表やレスポンス見本の修正が有効です。これらの部分は情報整合します。実行した内容とそのレスポース添えてお寄せください。フォークからのプルリクエストはキーなしでスイートを実行し、ライブ系のチェックは「赤」にせずスキップします。
ライセンス
MITです。LICENSE を参照してください。
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables users to search LinkedIn's public job listings with advanced filters like location, salary, and experience level. It allows MCP-compatible clients to retrieve real-time job opportunities without requiring LinkedIn authentication or API keys.12MIT
- AlicenseAqualityBmaintenanceEnables searching over 1 million enriched job listings from 20,000+ companies directly from MCP-compatible AI tools. Provides tools for job search, company profiles, and AI-powered similar job recommendations with real-time data updates.4812MIT
- AlicenseNot gradedqualityBmaintenanceLive Indeed job-postings data for AI agents via the RolesAPI REST API: search listings by keyword and location, and fetch role details, salary, description, company, and benefits. Available as drop-in agent skills or a hosted remote MCP server.MIT No Attribution
- FlicenseNot gradedqualityBmaintenanceEnables searching real job listings from multiple job boards (Indeed, LinkedIn, Glassdoor, Google Jobs, etc.) through a single MCP tool, designed for use as a custom connector in Claude Cowork.
Related MCP Connectors
Live job postings from 30+ ATS feeds and job boards, one schema. Live results need a Bearer key.
Google Jobs listings with direct apply links via the Apify Google Jobs Scraper, hosted MCP.
One MCP for 160+ live web-data APIs — clean JSON from sites that block scrapers.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HasData/indeed-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server