mcpField
J
jd-intel-mcp

jd-intel-mcp

ローカル
github.com/prPMDevビジネス・マーケティング12 週間前に更新

jd-intel-mcp について

jd-intel-mcpは、MCP対応AIクライアントから9種類のATSの求人情報を取得・絞り込みできるサーバーです。求人を共通形式に整え、読みやすいMarkdownの説明文や、提供されている給与・勤務地情報を返します。

主な機能

  1. 019種類のATSから求人を取得
  2. 02職種、分野、勤務地、掲載時期で絞り込み
  3. 03求人情報を共通形式に統一
  4. 04完全な求人説明をMarkdownで提供
  5. 05企業レジストリー検索とATS判定

活用シーン

  1. 01企業の募集中ポジションの検索
  2. 02候補者の経歴に基づく求人比較
  3. 03業界内の求人説明の一括確認
  4. 04企業が利用する採用プラットフォームの特定

MCP 対応

MCPサーバーはfetch_jobs、search_registry、detect_atsの各ツールと、registry://jd-intel/allリソースを提供します。ローカルで動作し、APIキー不要で公開ATS APIを利用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"prpmdev-jd-intel": {
"command": "npx",
"args": [
"-y",
"jd-intel-mcp"
]
}
}
}
起動コマンドnpx -y jd-intel-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmjd-intel-mcp0.13.0

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
limitintegerいいえ1 ページあたりの最大求人件数(デフォルトは 100)。通常は max_tokens が先に出力を制限します。
orderenumいいえ"newest"(デフォルト):postedAt 順で、投稿日なしは最後。"board":ATS 独自の順序。newest | board
filterstringいいえタイトル、部門、説明に対する正規表現マッチ:トピック/範囲
offsetintegerいいえ並べ替え後にスキップする一致件数(デフォルトは 0)。次のページを取得するには、前回の応答の next_offset を渡します。
companystringはい会社の slug または名前(例:"stripe")
workdayobjectいいえインデックスにない Workday 採用ボードのレジストリ設定を上書きします。採用ページの URL https://{tenant}.{env}.myworkdayjobs.com/{site} から 3 つの値を導出してください。推測しないでください。
workday.envstringはいWorkday の環境/データセンター。例:"wd108"、"wd5"
workday.sitestringはいWorkday 採用サイトのパス。例:"search"、"Cisco_Careers"
workday.tenantstringはいWorkday テナント。URL の最初のラベル。例:"expedia"
max_tokensintegerいいえ応答のトークン予算。テキストブロックの文字数÷4(デフォルトは 12000、1 以上の任意の整数)。求人は全体のみ返し、常に少なくとも 1 件を返します。値を大きくすると 1 回の呼び出しでより多くの求人情報が返り、小さくするとすばやく確認できます。
title_filterstringいいえタイトルのみを対象に正規表現でマッチ:職種
location_excludesarrayいいえ求人に記載されたすべての勤務地にキーワードが含まれる場合のみ、その求人を除外します
location_includesarrayいいえ記載された勤務地のいずれかに、いずれかのキーワードが含まれる求人を保持します
posted_within_daysintegerいいえ過去 N 日以内に掲載された求人のみ

詳細

jd-intel

MIT License Node.js 18+ npm jd-intel downloads jd-intel-mcp downloads GitHub stars

求人情報をAIアシスタントに貼り付けるのはもうやめましょう。AIが求人情報を直接取得できるようになります。

全文を取得。構造も整理済み。9つの主要なATSに対応。コピー&ペーストは不要です。コンテキストも失われません。


これが生まれた理由

AIアシスタントは、すでにあなたについて多くのことを知っています。履歴書は記憶されています。希望する職種、これまでのプロジェクト、経歴も把握しています。求人情報を渡せば、すぐにサポートできる状態です。

そこで、あなたはコピー&ペーストします。

ある会社の求人情報。次の会社の求人情報。希望企業リストからさらに半ダース。半分はHTMLが壊れています。給与情報は変換時に消えます。リンクは取り除かれます。そして、職種が変わるたびに、同じ作業を最初から繰り返します。

求人サイトが独自のMCPを公開するのを待つこともできます。いずれは登場するでしょう。彼らのスケジュールで。あなたの優先事項ではなく、彼らの優先事項に沿って。彼らのクエリ抽象化に縛られて。

jd-intelなら、待つ必要はありません。AIが求人情報の生データを直接、あなたのやり方で取得します。厳選された情報層の一段下で動作します。

AIにこう尋ねてみてください。

「今週掲載されたAI/MLエンジニアリングの求人を探して」 「今、フィンテック企業で募集中のプロダクトデザイナー職は?」 「過去7日間に掲載されたスタッフPM職を取得して」

これで完了です。


スクレイピングではだめなのですか?

スクレイピングは失敗する場面でも、jd-intelなら対応できるからです。

  • ブラウジングに失敗しても求人情報の全文を取得できます。 SPAで描画される求人サイト、読み込みの遅さ、認証の壁、地域制限はブラウザーを妨げます。しかし、公開API呼び出しは妨げません。
  • HTMLの寄せ集めではなく、構造化データを取得します。 給与、勤務地の種類、部署、整ったMarkdownを、9つのATS間で正規化します。
  • APIキーもブラウザーも不要です。 公開APIのみを使用します。AIが動く環境ならどこでも実行できます。
  • すべてのプラットフォームで共通のスキーマを使います。 Greenhouse、Lever、Ashby、SmartRecruiters、Teamtailor、Recruitee、Personio、Workable、Workdayから、同じ形式で情報を取得できます。

できること

  • コピー&ペーストせずに、AIから直接、どの会社の募集中の職種も検索する
  • 1回の会話で、10職種に合わせて履歴書を調整する
  • 経歴との適合度に基づいて求人をランク付けする
  • 業界全体を調べる:「今週掲載されたフィンテック企業の募集中の職種を取得して」
  • 大量の求人情報を読んでチームを調査する

このツールキットが情報を取得します。AIが考えます。


インストール

Claude Desktop、Claude Code、Cursor、Windsurf、VS Codeなど、MCP対応のAIクライアントで動作します。ChatGPT、GeminiなどMCP非対応のクライアントは、現時点ではサポートされていません。これらは異なるツール呼び出しシステムを使用しています。(対応してほしいところです。どのAIと会話する場合でも、プロトコルの仕組みは同じです。)

すべての処理は、お使いのマシン上でローカルに実行されます。そのため、デスクトップでのみ利用できます。モバイルアプリではローカルのMCPサーバーを実行できないため、スマートフォンやタブレットではjd-intelを使用できません。

Claude Desktop(ワンファイルでインストール、ターミナル不要)

最も簡単な方法です。Node.js もターミナルも不要です。Claude Desktop が同梱のランタイムでサーバーを実行します。

  1. 拡張機能をダウンロードします:jd-intel.mcpb。
  2. Claude Desktop で設定を開き、拡張機能、詳細設定の順に選択して、拡張機能をインストールをクリックします。ダウンロードしたファイルを選択します。
  3. アクセス内容を確認してインストールをクリックし、新しいチャットを開始します。ツールが自動的に表示されます。

ショートカット:.mcpb を設定ウィンドウにドラッグするか、システムで .mcpb ファイルを Claude Desktop で開くよう設定されている場合は、ファイルをダブルクリックします。この拡張機能はオープンソースで署名されていないため、Claude Desktop に「未検証」の通知が表示されます。それでもインストールを選択してください。

ターミナルを使いたい場合、または古いバージョンの Claude Desktop をお使いの場合は、Node.js 18+ をインストールし、npx jd-intel-mcp install を実行してから、Claude Desktop を再起動してください。または、設定ファイルを直接編集してください。詳しくは手動インストール(代替方法)をご覧ください。

その他のクライアント(Claude Code、Cursor、Windsurf、VS Code)

ワンファイルの .mcpb インストールは Claude Desktop の機能です。これらのクライアントでは同じサーバーを npx 経由で実行するため、Node.js 18+ が必要です。

Claude Code

claude mcp add jd-intel -- npx -y jd-intel-mcp

Cursor(設定、ツールと MCP、新しい MCP サーバーの順に選択するか、~/.cursor/mcp.json を編集します):

{
  "mcpServers": {
    "jd-intel": { "command": "npx", "args": ["-y", "jd-intel-mcp"] }
  }
}

Windsurf(設定、ツール、Windsurf 設定、サーバーの追加の順に選択するか、「Raw Config を表示」から mcp_config.json を編集します)。Cursor と同じ mcpServers ブロックを使用し、更新をクリックします。

VS Code(Copilot エージェントモード):MCP: Add Server コマンドを実行するか、.vscode/mcp.json を作成します。キーは servers、タイプは stdio です:

{
  "servers": {
    "jd-intel": { "type": "stdio", "command": "npx", "args": ["-y", "jd-intel-mcp"] }
  }
}
動作を確認する

新しいチャットを開始して、**「jd-intel の登録リストにあるフィンテック企業を教えてください」**と尋ねます。企業が表示されれば準備完了です。次に、実際に使ってみましょう:「今募集中で、自分に合いそうなシニア PM の求人を探してください。」

ツールが表示されませんか?

  • クライアントを完全に終了して再起動します(ウィンドウを閉じるだけでなく、終了してください)。Claude Desktop の場合は、システムトレイから「終了」(Windows)、または ⌘Q(macOS)を選択します。
  • npx クライアント(Claude Code、Cursor、Windsurf、VS Code)の場合は、npx clear-npx-cache を実行してから再起動します。
  • npx を使う方法では、node --version で Node.js 18 以降であることを確認します。ワンクリックの .mcpb インストールには Node.js は不要です。
開発者向け
npm install jd-intel
import { fetchJobs } from 'jd-intel';

const jobs = await fetchJobs({
  company: '<your-target-company>',
  titleFilter: 'designer',
  postedWithinDays: 14,
  limit: 50,
});

結果はpostedAtの新しい順に返され、日付のないものは最後になります(order: 'board'ではATS独自の順序が維持されます)。fetchJobsはページを配列として返します。fetchJobsDetailedは同じページに加えて、offsetとlimitを適用する前の一致件数であるtotal_matchedも返すため、掲載数が少ないのか、結果が途中で切られているのかを判断し、残りのページを取得できます。

import { fetchJobsDetailed } from 'jd-intel';

const { jobs, total_matched } = await fetchJobsDetailed({
  company: '<your-target-company>',
  titleFilter: 'engineer',
  limit: 20,
  offset: 20, // second page
});

同じ結果から、企業がどのように特定されたか、どのボードから応答があったかも分かります。

  • match:registry(登録済み企業。アダプターの呼び出しは1回)、probe(レジストリ未登録のため、すべてのアダプターに問い合わせ)またはworkday_override(明示的なWorkday設定)。
  • company:レジストリに一致した場合はレジストリ行の{ key, name }、それ以外はnullです。
  • boards:応答があったボードごとのエントリーです。{ ats, slug, name, site, board_url, org_name, org_url, jobs_found, matched, selected, scan }が含まれます。jobs_foundは、フィルター適用前にボードが掲載していた行数です。WorkdayとSmartRecruitersでは詳細を取得する前に掲載リストをフィルタリングするため、この件数はリストの件数であり、返された行数ではありません(リストのスキャンに上限がある場合は下限値になります)。matchedはフィルター適用後、offsetとlimitを適用する前に残った行数です。そのため、行がすべてページから外れたボードも表示されます。board_urlはslugから作られます。org_nameとorg_urlはボードが自身について示す情報、つまりATSの応答に含まれる組織名と、リンク先の採用情報または会社のホストです。プラットフォームが情報を公開していない場合はnullになります(LeverとAshbyはどちらも公開していません)。slugやレジストリの名前で補完されることはありません。probeによる一致はslugの一致であり、本人確認済みではありません。求人をその企業のものとして扱う前に、org_nameとorg_urlが意図した企業と一致するか確認し、これらがnullの場合はboard_urlを開いてください。
  • failed:検出中に例外を発生させたアダプターです。{ ats, slug, name, code, message }が含まれ、codeはrate_limitedまたはats_unreachableです。どのボードからも応答がなく、確認に失敗した場合、fetchJobsは[]を返す代わりにそのエラーをスローするため、障害が「見つからない」と誤って認識されることはありません。
  • total_before_filters:jobs_foundの合計です。一致件数がゼロでtotal_before_filtersが正の値の場合、企業は採用中ですが、どのATSでもフィルターを通過した求人がなかったことを意味します。

detectAtsDetailed(company)は{ boards, failed }を返します。まずレジストリ行(source: 'registry'。プローブは行いません)、続いて応答があったすべてのライブプローブ(source: 'probe')がプラットフォーム順に並びます。failedには確認できなかったプローブが同じコードとともに一覧表示されます。detectAtsは引き続き[{ ats, slug }]を返します。

ライブラリが実行できない呼び出しではArgumentError(code: 'invalid_args')がスローされます。対象企業が指定されていない場合、atsが不明な場合、またはtitleFilterやfilterを正規表現としてコンパイルできない場合が該当します。リクエストを送信する前にスローされます。

CLIの使用例:npx jd-intel fetch <company-slug> --title-filter "engineer" --posted-within-days 14。フィルターの完全なリファレンスは以下をご覧ください。

各ATSへのリクエストでは、サーバーから応答が始まるまで10秒待ちます。429、5xx、またはネットワークエラーの場合は、最大3回、バックオフ(1秒、2秒)を挟んで再試行し、ATSからRetry-Afterが送信された場合はその値に従います。1つのホストにつき、同時に実行するリクエストは最大4件です。再試行後も失敗する場合は、codeがrate_limitedまたはats_unreachableのAtsErrorがスローされます。

Node.js 18以降。APIキーは不要です。設定も不要です。

手動インストール(代替手順)

npx jd-intel-mcp installが失敗する場合は、設定を直接編集してください。

設定ファイルの場所:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "jd-intel": {
      "command": "npx",
      "args": ["-y", "jd-intel-mcp"]
    }
  }
}

Claude Desktopを再起動してください。

更新
  • **Claude Desktop 拡張機能(.mcpb):**現在のものに新しい .mcpb をインストールするか、Settings、次に Extensions から管理します。リセットするには、削除して再インストールします。
  • npx クライアント(Claude Code、Cursor、Windsurf、VS Code):npx -y jd-intel-mcp は npm のキャッシュから新しいバージョンを取得します(約24時間以内)。すぐに強制的に更新するには、npx clear-npx-cache を実行してからクライアントを再起動します。
  • ライブラリまたは CLI:npm install jd-intel@latest(最新バージョンを強制)または npm update jd-intel(semver に従う)を実行します。

企業レジストリは自動的に更新されます。jd-intel は起動時に最新のリストを取得し、オフライン時は同梱のコピーを使用するため、再インストールしなくても新しい企業が表示されます。


MCP ツール

ツール目的
fetch_jobs職種、トピック、勤務地、掲載時期で絞り込んで、企業の募集中の職種を取得します
search_registry名前または業種で企業を検索します
detect_ats企業が利用している ATS プラットフォームを特定します

さらに、1つのリソースがあります:registry://jd-intel/all。ATS ごとに分類された企業レジストリ全体です。広範なカタログ調査向けに、遅延取得されます。


取得できる内容

すべてのプラットフォームの求人情報は、1つのスキーマに正規化されます:

{
  "id": "a1b2c3d4e5f6",
  "company": "Example Co",
  "title": "Senior Software Engineer, Platform",
  "department": "Engineering",
  "location": "Remote - US",
  "locations": ["Remote - US", "Toronto, Canada"],
  "locationType": "remote",
  "workplace": { "type": "remote", "source": "ats" },
  "salary": { "min": 180000, "max": 240000, "currency": "USD", "period": "year", "source": "text" },
  "description": "Design and build the API surface our customers integrate against...",
  "url": "https://boards.example.com/jobs/12345",
  "postedAt": "2026-04-10T14:30:00Z"
}

企業ごとにカスタム解析する必要はありません。

データモデル
フィールド説明
title求人の正式なタイトル
company正規化された企業名
departmentチームまたは部門(提供されている場合)
location主な勤務地:市区町村、州、国、またはリモート
locations求人への応募が可能なすべての勤務地。主な勤務地が先頭です。勤務地フィルターは各項目を確認します
locationTyperemote、hybrid、onsite、またはプラットフォームにも勤務地のテキストにも記載がない場合は unknown
workplace{ type, source }。type は locationType と同じ値です。source はプラットフォームに明記されている場合は ats、勤務地文字列から読み取った場合は text、不明な場合は null です
salarycurrency を含む最小値から最大値までの範囲、および period(year、month、hour、または null)と source(プラットフォームから提供された場合は ats、求人情報から解析した場合は text)です。記載がない場合は null です
description整形された Markdown 形式の完全な求人票(JD)です。content.status が missing の場合は空です
content{ status, reason }。求人情報を読み取れた場合は complete です。Workday または SmartRecruiters で求人が掲載されていたものの、詳細取得リクエストに失敗した場合は missing です(reason:http_503、http_429、network_error)。この場合、description と salary は不明です
url求人情報への直接リンク
postedAt掲載日(提供されている場合)

対応プラットフォーム

プラットフォーム状況主な用途
Greenhouse提供済みテクノロジー業界で最も広く利用されている ATS
Ashby提供済みスタートアップで急速に普及
Lever提供済み成長中の企業でよく利用
SmartRecruiters提供済み大企業および中堅企業
Teamtailor提供済み欧州のスタートアップおよびスケールアップ企業
Recruitee提供済みオランダ/EU の中小企業およびスケールアップ企業
Personio提供済みドイツ/EU の中堅企業
Workable提供済み世界各地の中小企業
Workday提供済み大企業(レジストリキーで識別)

新しい ATS の追加は、アダプターファイルを1つ追加するだけです。コントリビューションをご覧ください。


フィルター(クイックリファレンス)

フラグマッチ対象用途
--title-filterタイトルのみ職種の識別(PM、エンジニア、デザイナー)
--filterタイトル+部門+説明トピックまたは担当範囲(インテグレーション、成長)
--posted-within-days最近の求人掲載時期による絞り込み
--location-include勤務地にいずれかのキーワードが含まれる対象地域の指定
--location-exclude勤務地にキーワードが含まれない地理的なノイズの除外
--limit最初の N 件出力サイズの上限設定

すべてのフィルターは AND 条件で適用されます。パターンと注意点の詳細:docs/filters.md。


ロードマップ

リリース済み

  • ライブラリ、CLI、MCP サーバー(1 つのツールキットを構成する 3 つのインターフェース)
  • Greenhouse、Ashby、Lever、SmartRecruiters、Teamtailor、Recruitee、Personio、Workable、Workday のアダプター
  • タイトル、トピック、勤務地、日付によるフィルター
  • 求人票テキストからの給与情報の抽出
  • 検証済み企業レジストリ(1,100 社以上)

次の予定

  • Anthropic MCP マーケットプレイスへの申請

計画中

  • 経時的な追跡(求人の掲載、終了、再掲載)
  • 変更の検出
  • 履歴書を考慮した適合度スコアリング

貢献

詳しくは CONTRIBUTING.md をご覧ください。概要は次のとおりです。

企業をレジストリに追加する: registry/*.json を直接編集しないでください。候補を tmp/candidates.json に追加してから、各求人ボードに実際に問い合わせ、公開中の求人を返すものだけを残すライブゲートを実行します。

node scripts/verify-registry.mjs --candidates tmp/candidates.json --limit 50
node scripts/append-registry.mjs
npm run sync:registry-pages
node --test test/*.test.js

ゲートを通過していないエントリーはマージできません。一見正しそうな求人ボードが何も返さないと、誰かの検索でひそかに失敗します。それは単に企業が登録されていないよりも悪いことです。Workday では、企業の実際の採用ページ URL から読み取った {tenant, env, site} の config が必要です。パターンから組み立ててはいけません。確認方法については CONTRIBUTING.md をご覧ください。

ATS アダプターを追加する: src/adapters/ に新しいファイルを追加します。アダプター 1 つにつきファイル 1 つです。既存のアダプターのパターンに従ってください。

企業をリクエストする: issue を作成してください。足りない企業を教えてください。それだけでも役に立つ貢献です。


制作者

Prashant R。PM として開発もしています。AI ブームの裏で本当に重要なものを試し、作るようにしています。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。