ENTRA Jobs について
ENTRA Jobs は、ENTRA の求人プラットフォームに接続する MCP サーバーです。求職者は確認済みの AI・テック求人を検索でき、雇用主は採用業務を管理できます。マッチングは決定的なルールに基づき、応募は本人が行います。
主な機能
- 01勤務地・給与・経験で求人を検索
- 02履歴書やスキルに基づく求人の順位付け
- 03給与統計と採用中の企業の確認
- 04応募リンクとチェックリストの準備
- 05雇用主による求人掲載と応募管理
活用シーン
- 01給与条件に合うリモート求人の絞り込み
- 02履歴書のスキルに合う求人の検索
- 03職種ごとの掲載給与帯の確認
- 04求人掲載と候補者情報の確認
MCP 対応
ローカルの npx またはホスト済み Streamable HTTP で接続できます。求職者向けツールに API キーは不要で、雇用主キーを設定すると求人掲載、応募管理、候補者検索などのツールが利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.entracareers.com/mcpclaude mcp add --transport http dubaikseniia-wq-entra https://mcp.entracareers.com/mcp{"mcpServers":{"dubaikseniia-wq-entra":{"type":"http","url":"https://mcp.entracareers.com/mcp"}}}Cursor で開く{"servers":{"dubaikseniia-wq-entra":{"type":"http","url":"https://mcp.entracareers.com/mcp"}}}VS Code で開く{"mcpServers":{"dubaikseniia-wq-entra":{"type":"http","url":"https://mcp.entracareers.com/mcp"}}}{"mcpServers":{"dubaikseniia-wq-entra":{"serverUrl":"https://mcp.entracareers.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.entracareers.com/mcp認証が必要ツール
8| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 結果の最大数(デフォルト 10、最大 50) |
| query | string | はい | フリーテキスト検索。例:"machine learning engineer" |
| remote | boolean | いいえ | work_location="remote" の省略形 |
| company | string | いいえ | 企業の slug または名称。例:"openai" または "Stripe" |
| country | string | いいえ | ISO-2 国コード(US、GB、DE、AE…)または国名 |
| rank_by | enum | いいえ | date(デフォルト) · salary(記載された給与のみ、高い順) · fit(profile_keywords が必要)date | salary | fit |
| experience | enum | いいえ | 経験レベルno_experience | 1_3_years | 3_6_years | 6_plus_years |
| salary_min | number | いいえ | 最低年収(デフォルト通貨は USD。ENTRA が他の通貨を換算します) |
| work_location | enum | いいえ | 勤務地で絞り込みますremote | onsite | hybrid |
| sort_by_salary | boolean | いいえ | 非推奨—rank_by="salary" を使用してください |
| salary_currency | string | いいえ | salary_min に使用する通貨(デフォルトは USD) |
| profile_keywords | array | いいえ | rank_by="fit" に使用する候補者のスキル。例:["python","pytorch","llm"] |
| posted_within_days | integer | いいえ | 過去 N 日以内に掲載された求人のみ |
詳細
ENTRA MCP — エージェント対応の初の求人プラットフォーム
AI に仕事を探してもらいましょう。この MCP サーバーは、Claude、ChatGPT、Cursor、Windsurf、または任意の MCP クライアントを、ローカルの npx 経由またはホスト型の https://mcp.entracareers.com/mcp 経由で ENTRA に接続します。ENTRA には、企業の採用システムから直接集約された、検証済みの AI・テック系求人が数千件あります(OpenAI、Anthropic、SpaceX、Stripe など、ほか 300 社以上)。幽霊求人はゼロです。
エージェントは検索、マッチング、順位付け、応募準備を行います。応募するかどうかを決めて応募するのは人間です — スパム送信や自動応募はありません。
インストール
Claude Code
claude mcp add entra -- npx -y entra-mcp
Claude Desktop — ワンクリック拡張機能(.mcpb)
entra-mcp.mcpb をダウンロードして、Claude Desktop で開きます(Settings → Extensions → Install from file)。Node のインストールは不要です。雇用主は拡張機能の設定に API キーを貼り付けられます。
Claude Desktop(claude_desktop_config.json)、Cursor(.cursor/mcp.json)、Windsurf(~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"entra": { "command": "npx", "args": ["-y", "entra-mcp"] }
}
}
ソースからインストールする場合:
npm install && npm run build
claude mcp add entra -- node "/path/to/entra-mcp/dist/index.js"
Node 18 以降が必要です。候補者向けツールには API キーは不要です。公開 ENTRA API に対する読み取り専用ツールだからです。雇用主は環境変数を 1 つ追加してください。詳しくは雇用主モードをご覧ください。
あとは、次のように尋ねてください:「年収 20 万ドル以上のリモート ML エンジニア職を探して、最も多く採用している企業を教え、最適な求人への応募準備をしてください。」
ホスト型エンドポイント(インストール不要)
同じサーバーが https://mcp.entracareers.com/mcp(MCP Streamable HTTP)で稼働しています。インストールは不要で、候補者向けツールにはアカウントも必要ありません。
| クライアント | 設定方法 |
|---|---|
| ChatGPT | Settings → Connectors → Create → MCP Server URL に https://mcp.entracareers.com/mcp を指定し、認証を「None」に設定します(カスタムコネクターには、Plus/Pro/Business/Enterprise の開発者モードなど、対応する ChatGPT プランが必要です) |
| claude.ai | Settings → Connectors → Add custom connector → URL に https://mcp.entracareers.com/mcp を指定します |
Cursor(.cursor/mcp.json) | { "mcpServers": { "entra": { "url": "https://mcp.entracareers.com/mcp" } } } |
| Claude Code | claude mcp add --transport http entra https://mcp.entracareers.com/mcp |
| Gemini CLI / Smithery / 任意の Streamable HTTP クライアント | 上記の URL を指定します |
HTTP 経由の雇用主モード: リクエストごとに Authorization: Bearer entra_live_… としてキーを送信すると、そのリクエストで 8 つの雇用主向けツールが利用できます(Cursor:url の隣に "headers": { "Authorization": "Bearer entra_live_…" } を追加します)。ChatGPT と claude.ai のコネクターは現在カスタムヘッダーを送信できないため、候補者モードのみ利用できます。雇用主は ENTRA_API_KEY を使ったローカルの npx セットアップを利用してください(雇用主モード)。
ホスト型サーバーの動作:
- ステートレスです。各リクエストは独立しており(セッションも
Mcp-Session-Idもありません)、クライアントに影響を与えることなくスケールや再デプロイが可能です。仕様で許可されているとおり、GET /mcpとDELETE /mcpは405を返します。 Authorizationヘッダーはそのリクエストにのみ使用され、保存もログ記録もされません。サーバーの環境変数からキーが読み取られることもありません。/mcpではクライアント IP ごとに 1 分あたり 120 リクエストまでに制限されます。リクエスト本文は最大 1 MB で、ブラウザベースのエージェント向けに CORS は開放されています。ヘルスチェック:GET /healthz。- 以下と同じ誠実さのルールが適用されます。ホスト型サーバーは、同一のツールを利用するための別のトランスポートにすぎません。
ツール
| ツール | 機能 | 呼び出し例 |
|---|---|---|
search_jobs | 現在募集中の確認済み求人を検索します。フィルター:work_location(リモート/出社/ハイブリッド)、country(ISO-2)、company(スラッグまたは名称)、salary_min(年収)、experience、posted_within_days。rank_by:date(デフォルト)・salary・fit(profile_keywords を指定)。total_found と、id/title/company/location/salary/published_at/url を含む求人を返します。 | {"query":"machine learning engineer","remote":true,"country":"US","salary_min":200000,"rank_by":"salary","posted_within_days":14,"limit":10} |
get_job | 職務の詳細情報:職務内容、応募要件、スキル、給与幅、応募リンク | {"job_id":"<id from search_jobs>"} |
list_companies | ENTRA で採用中の企業を、募集中の職種数とプロフィールリンクとともに表示します | {"query":"anthropic"} |
match_jobs | AI によるライブ求人マッチング。 resume_text(最大8000文字)または skills[] を渡します。target_role、remote_only、country、min_salary、limit(最大20)は任意です。スキル/職種/シニアリティを決定論的に抽出し、2~4回の検索を実行して重複を除去し、fit_score(0~100)、why[]、matched_skills、skill_gaps、salary、interview_chance_hint(高/中/低)を含むランク付けされた一覧を返します。 | {"resume_text":"Senior ML engineer, 7 years, PyTorch, RAG, AWS…","remote_only":true,"limit":10} |
match_profile | match_jobs の後方互換エイリアス(skills[]、role_hint) | {"skills":["python","llm","rag"],"role_hint":"ML engineer"} |
salary_stats | 給与幅を掲載している求人情報に基づく職種別の給与統計:通貨ごとの count_with_salary、最低額/25パーセンタイル/中央値/75パーセンタイル/最高額(年換算。USD は USD 相当額、その他の通貨はそのまま)、上位5社 | {"query":"software engineer","country":"US"} |
companies_hiring | 現在その職種を採用している企業:募集中の職種数、求人タイトルの例、最新の掲載日、確認済みフラグ、プロフィール URL | {"query":"AI engineer","remote_only":true,"limit":15} |
prepare_application | 人間による操作を介した応募リンクとチェックリスト | {"job_id":"<id>"} |
すべてのレスポンスに含まれるすべての求人には、verified: true、企業が掲載している場合は給与幅、次の形式の応募 URL が含まれます:https://entracareers.com/{country}/vacancies/{id}?utm_source=agent&utm_medium=mcp — エージェントからのアクセスを歓迎します。
例:match_jobs
{
"source": "ENTRA — verified roles aggregated from company ATSs. Finds and ranks; you apply.",
"profile": { "skills_used": ["machine learning", "python", "rag", "llm", "pytorch", "aws"], "target_role": "machine learning engineer", "seniority": "6+ yrs (7+ years mentioned)" },
"queries_run": ["machine learning engineer", "python", "rag", "llm"],
"candidates_considered": 142,
"matches": [
{
"title": "Machine Learning Engineer, Inference",
"company": "OpenAI",
"location": "San Francisco, United States",
"work_location": "remote",
"salary": "$295K–555K/yr",
"url": "https://entracareers.com/us/vacancies/…?utm_source=agent&utm_medium=mcp",
"fit_score": 88,
"interview_chance_hint": "high",
"why": [
"Skills: 5/6 matched (machine learning, python, llm, pytorch, aws)",
"Title match: \"Machine Learning Engineer, Inference\" fits \"machine learning engineer\"",
"Seniority: job asks 6+ yrs, you read as 6+ yrs — match",
"Remote role (as requested)",
"Salary band listed: $295K–555K/yr"
],
"skill_gaps": ["rag"]
}
]
}
誠実性に関する注記
- マッチングは決定論的です。キーワード辞書とルールを使用し、LLM は処理に関与しません。
fit_scoreは説明可能な指標であり、予測ではありません。interview_chance_hintはfit_scoreのみから算出されます(根拠のないパーセンテージを作ることはありません)。 salary_statsが使用するのは掲載済みの給与幅のみです。給与幅が公開されていない職種は除外され、推定は行いません。search_jobsのrank_by: "salary"は給与掲載のある求人のみを返します。posted_within_daysは、最も新しい500件の一致結果を対象にクライアント側で適用されます。- こちらがあなたに代わって応募を送信することはありません。
prepare_applicationはリンクとチェックリストを返し、応募は人間が行います。
雇用主モード(API キー)
同じパッケージで、環境変数を 1 つ設定するだけです。ENTRA_API_KEY を設定すると、8 個の候補者向けツールはそのまま利用でき、さらに自社向けの 8 個の雇用主向けツールが追加されます。求人の掲載、求人情報の管理、応募の確認、候補者の検索とマッチングができます。
- entracareers.com/employer/profile?tab=api-keysでキーを作成します(必要なスコープを選択してください。キーは一度だけ表示されます)。
- 接続します。
Claude Code
export ENTRA_API_KEY="entra_live_…"
claude mcp add entra -e ENTRA_API_KEY=$ENTRA_API_KEY -- npx -y entra-mcp --employer
Claude Desktop / Cursor / Windsurf
{
"mcpServers": {
"entra": {
"command": "npx",
"args": ["-y", "entra-mcp", "--employer"],
"env": { "ENTRA_API_KEY": "entra_live_…" }
}
}
}
次のように依頼します。「ドバイでシニアセールスマネージャーの求人を掲載してください。ハイブリッド勤務、月給 15~22K AED、45 日間で。その後、この求人に最適な候補者を 5 人表示し、すでに応募した人も教えてください。」
動作について:
- キーは環境変数からのみ読み取られます(引数から読み取ることはありません)。キーがない場合、雇用主向けツールは登録されません。
--employerだけを指定すると、stderr にヒントが表示されます。 - 起動時に API は呼び出されません。最初の雇用主向け呼び出し時に、
GET /employer/api-keys/meを通じて会社とスコープを特定し、キャッシュします。 - Bearer ヘッダーが付与されるのは雇用主向けエンドポイントのみです。公開情報(国、都市、専門分野、求人の詳細)は匿名で検索されます。
- レート制限はキーごとに 1 分あたり 120 リクエストです。
429が返された場合は、retry-afterの時間経過後に 1 回再試行します。
雇用主向けツール
| ツール | スコープ | 機能 | 呼び出し例 |
|---|---|---|---|
employer_whoami | any | 会社、キー名/プレフィックス、付与されたスコープ、利用可能なツールを表示します | {} |
post_job | jobs:write | 求人を掲載します。人が入力しやすい形式の入力項目:title、description、employment_type(full_time/part_time/contract/freelance/internship)、work_location(remote/onsite/hybrid)、country(ISO-2 または国名)、city(都市名。リモート勤務でも ENTRA では必須)、任意項目の specialization(自由記述から最適な有効な専門分野を選択。デフォルトは求人タイトル)、experience_level、salary_min/max/currency/period、benefits、skills(スキル名)、internal_job_id、expires_in_days(デフォルトは 30)。公開 URL、管理 URL、およびすべての解決内容(resolved、notes)を返します。 | {"title":"Senior Sales Manager","description":"…","employment_type":"full_time","work_location":"hybrid","country":"AE","city":"Dubai","salary_min":15000,"salary_max":22000,"salary_currency":"AED","salary_period":"monthly","expires_in_days":45} |
my_jobs | jobs:read | 自社の求人を表示します。status は active(デフォルト)/closed/all、search、limit、page を指定できます。ステータス、給与、応募数、有効期限、URL が表示されます。 | {"status":"active"} |
update_job | jobs:write | 一部の項目を変更します:title、description、requirements、employment/work location、experience、salary、benefits、expires_in_days(延長)、country+city、specialization、is_active(再掲載) | {"job_id":"…","salary_max":25000,"expires_in_days":60} |
close_job | jobs:write | 求人の掲載を停止します。confirm:true がない場合はプレビューのみを返します。指定した場合は PATCH {isActive:false} を実行します(元に戻せます)。 | {"job_id":"…","confirm":true} |
job_applications | applications:read | 1 件の求人(job_id)または会社のすべての求人への応募を表示します。任意で status(クライアント側)、limit、page を指定できます。候補者、職務経歴書の見出し、カバーレター、連絡先は、返された内容をそのまま表示します。 | {"job_id":"…","status":"pending"} |
search_candidates | candidates:read | 公開済みの職務経歴書を検索します。query、skills[](いずれかに一致)、specialization、country/city、experience、work_location/remote_only、employment_type、ready_to_relocate、希望給与の範囲、has_linkedin/has_portfolio、published_within_days、limit(最大 25)を指定できます。 | {"query":"sales manager","country":"AE","experience":"3_6_years"} |
match_candidates | candidates:read | job_id(または job_text)に基づいて候補者をランク付けします。スキル、職種、職位のレベルを決定論的に抽出し、職務経歴書を 2~3 回検索します。fit_score(0~100)、why[]、matched_skills、skill_gaps を返します。 | {"job_id":"…","limit":10} |
明確な結果(予期しない動作はありません)
| 状況 | 結果 |
|---|---|
| キーが無効/失効している | {"error":…,"code":"AUTH_ERROR","status":401,"hint":"…create a new key at …/employer/profile?tab=api-keys"} |
| キーに必要なスコープがない | {"code":"MISSING_SCOPE","scope":"jobs:write",…} — リクエストを送信する前にローカルでチェックします |
| 空き求人枠がない | post_job → {"needs_subscription":true,"pricing_url":"https://entracareers.com/employer/pricing","note":"Founding plan from $10"}(エラーではありません) |
| 履歴書データベースの利用にプランが必要 | search_candidates / match_candidates → {"needs_subscription":true,…,"note":"Resume Access"} |
| レート制限に達した | 1 回再試行し、その後 {"code":"API_KEY_RATE_LIMIT_EXCEEDED","status":429,…} を返します |
| バリデーションに失敗した | {"status":400,"validation":[{field,message}]} |
正直な説明(雇用主向け)
match_candidatesは 決定論的なキーワードスコアリング(スキルの一致、見出しと職種の一致、経験レベル、勤務地/リモート)を行います。説明可能な評価であり、予測ではありません。連絡する前にプロフィールを確認してください。- 連絡先情報(メールアドレス、電話番号、WhatsApp、LinkedIn、ポートフォリオ)は、ENTRA から返された場合にのみ表示されます。つまり、候補者があなたの求人に応募したか、招待を承諾した場合に限られます。情報を推測したり、スクレイピングしたりすることはありません。
post_jobは、推測した内容をすべて報告します。都市/専門分野の一致度、検出またはデフォルト設定されたexperience_level(検出できない場合は1_3_years)、およびデフォルトで 月額 となるsalary_period(ENTRA のデフォルトです。年額を指定する場合は"yearly"を渡してください)。- データは削除されません。
close_jobはisActive:falseに設定するだけで、update_job {is_active:true}で取り消せます。応募ステータスの変更は API キーでは利用できません。雇用主向けダッシュボードを使用してください。
ENTRA がエージェントに対応し、ほかのサービスがそうでない理由
- LinkedIn はエージェントを禁止しています。Indeed の MCP は検索専用です。スクレイピングするツールは CAPTCHA によって動作しなくなります。
- ENTRA は 求人情報を自ら管理 しています。企業の ATS から確認済みの求人を提供しているため、エージェントは同意を得た応募リンクを通じて、整備された合法的な構造化アクセスを利用できます。
- すべての求人情報には
verified: true、給与幅、utm_source=agentが含まれます(エージェントからのアクセスを歓迎します)。
match_jobs による AI マッチングは利用可能です。entracareers.com でプロフィールを連携してください。
ロードマップ
- API キーを通じた応募ステータスの変更と招待(現時点では応募情報は読み取り専用です)。
- ホスト型エンドポイントでの OAuth により、ChatGPT / claude.ai のコネクターがローカルインストールなしで雇用主向けモードを利用できるようにします。
雇用主の方:entracareers.com/employer/pricing — Founding プランは $10 からです。
リンク
- 開発者向け:entracareers.com/developers
- AI エージェント向け:entracareers.com/ai-agents
開発
npm run build # tsc → dist/
npm run selftest # calls the live API directly, no MCP client (candidate tools)
npm run smoke # spawns the server over stdio with the MCP SDK client and exercises every candidate tool (live API)
npm run smoke:employer # employer mode against an in-process mock of the employer API (no network, no real key)
npm run smoke:http # starts dist/http.js on a random port and drives it with the SDK's Streamable HTTP client (live API + fake employer key)
npm run start:http # hosted transport locally: http://localhost:8080/mcp (PORT, HOST, RATE_LIMIT_PER_MINUTE, TRUST_PROXY, MCP_ALLOWED_HOSTS)
npm run bundle # builds dist-bundle/entra-mcp.mcpb (Claude Desktop extension / Smithery local bundle) from manifest.json
docker build -t entra-mcp . && docker run -p 8080:8080 entra-mcp # the image the hosted endpoint runs (node:22-alpine, dist/http.js)
レイアウト:src/server.ts はサーバーを構築します(createServer({ apiKey? }) — ツールとリクエストごとのキーコンテキスト)。src/index.ts は stdio エントリ(npx entra-mcp)、src/http.ts はホスト型 Streamable HTTP エントリです。
環境変数:ENTRA_API_KEY(stdio のみ — 雇用主向けモードを有効化)、ENTRA_API_URL(デフォルトは https://entracareers.com/api)、ENTRA_SITE_URL(デフォルトは https://entracareers.com)。
MIT © ENTRA
プライバシーポリシー
このサーバーは、ツールへの入力のみを公開 ENTRA API(https://entracareers.com/api)に送信します。テレメトリーやサードパーティサービスは使用しません。ローカル環境(`npx entra-mcp)では、雇用主向けモードは ENTRA_API_KEY環境変数の API キーを使用します。ホスト型エンドポイント(https://mcp.entracareers.com/mcp)では、各リクエストのAuthorization` ヘッダーからキーを取得し、ENTRA の雇用主向けエンドポイントにのみ転送します。キーが保存またはログに記録されることはありません。ホスト型サーバーはセッションやリクエスト履歴を保持しません。ただし、短期間のアクセスログ(メソッド、ツール名、ステータス、所要時間)は保持します。ポリシー全文:https://entracareers.com/privacy-policy
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。