jobstack-mcp について
jobstack-mcpは、統合求人フィードや公開ATSボードの求人を検索・取得するJobStack向けリモートMCPアダプターです。6つのソースエンジンを共通の求人形式にまとめ、読み取り専用ツールを2つ提供します。
主な機能
- 016つのソースエンジンを横断した求人検索
- 02キーワードと勤務地による絞り込み
- 03リモート求人の絞り込み
- 04検索結果のページ分割と並べ替え
- 05ソースとIDによる求人取得
活用シーン
- 01求人フィードやATSボードを横断した求人検索
- 02勤務地やリモート条件による求人の絞り込み
- 03検索結果にある求人の詳細取得
MCP 対応
`/mcp`のストリーマブルHTTPを通じて、JobStackの検索・求人取得エンドポイントを読み取り専用MCPツールとして2つ公開します。呼び出しをjobs APIに転送し、そのJSON応答をツール結果として返します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://jobstack-mcp.vercel.app/mcpclaude mcp add --transport http isaiahdupree-jobstack https://jobstack-mcp.vercel.app/mcp{"mcpServers":{"isaiahdupree-jobstack":{"type":"http","url":"https://jobstack-mcp.vercel.app/mcp"}}}Cursor で開く{"servers":{"isaiahdupree-jobstack":{"type":"http","url":"https://jobstack-mcp.vercel.app/mcp"}}}VS Code で開く{"mcpServers":{"isaiahdupree-jobstack":{"type":"http","url":"https://jobstack-mcp.vercel.app/mcp"}}}{"mcpServers":{"isaiahdupree-jobstack":{"serverUrl":"https://jobstack-mcp.vercel.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
2| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 統合後のページあたりの最大結果数。1~100 の範囲に制限されます。デフォルトは 20 です。 |
| offset | integer | いいえ | 統合結果セット内のページ分割用オフセット(0 始まり)。デフォルトは 0 です。 |
| remote | boolean | いいえ | true の場合、リモート求人に絞り込みます。明示的なリモート情報を提供するソースにのみ適用され、他のソースでは無視されます。 |
| sources | string | いいえ | 並列問い合わせの対象を限定する、カンマ区切りのエンジンキー。指定可能な値:usajobs、adzuna、jooble、themuse、reed、ats。省略すると 6 つすべてを対象にします。 |
| keywords | string | いいえ | 自由記述の検索語(職種名、スキル、会社など)。省略可能です。省略すると最新の求人情報を閲覧します。 |
| location | string | いいえ | 自由記述の勤務地フィルター(例:"Washington, DC"、"London")。ソースが対応している場合に上流で適用されます。 |
詳細
jobstack-mcp
JobStack 用のリモート MCP(Model Context Protocol) コネクターです。JobStack は、公式の求人ボードのフィードと公開 ATS ボード(USAJOBS、Adzuna、Jooble、The Muse、Reed、さらに 1 つの ats エンジンに統合された Greenhouse/Lever/Ashby/Workable/SmartRecruiters)を、単一のフラットな Job 形式に統合する求人検索 API(jobs-api)です。
稼働中: https://jobstack-mcp.vercel.app/mcp — MCP のストリーム可能な HTTP トランスポート経由で 2 つのツールを公開しています。上流の jobs-api のデプロイは従量課金制(RapidAPI/Apify)で、/v1/* ルートは RapidAPI プロキシシークレットによる保護下にあるため、このコネクターは同じシークレット(JOBSTACK_MCP_PROXY_SECRET。X-RapidAPI-Proxy-Secret ヘッダーで送信)を使って送信する呼び出しを認証し、IP ごとのソフトレート制限(JOBSTACK_MCP_RATE_LIMIT。デフォルトは 1 時間あたり 30 回のツール呼び出し、メモリ内で管理)を適用します。これにより、無料の MCP ティアは、有料の求人掲載を無制限に迂回する手段ではなく、検索のための窓口として機能します。詳細は lib/ratelimit.js を参照してください。
これは何か
JobStack はシンプルな REST API です。このリポジトリは薄いアダプターで、各エンドポイントを、MCP クライアント(Claude、ChatGPT、MCP 対応エージェント)が MCP のストリーム可能な HTTP トランスポートを使い、単一の /mcp エンドポイントから直接呼び出せる、発見可能で型付けされた MCP ツールとして公開します。独自のビジネスロジックは持たず、すべてのツール呼び出しは jobs-api への fetch の中継であり、JSON レスポンスはツールの結果としてそのまま返されます。
ツール
| ツール | JobStack エンドポイント | 説明 |
|---|---|---|
search_jobs | GET /v1/jobs/search | すべてのエンジン(または sources= で指定したエンジンのサブセット)の求人情報を検索して統合し、新しい順に並べてページネーションします。 |
get_job | GET /v1/jobs/{source}/{id} | ソースエンジンとネイティブ ID(ats の場合は複合値 board:company:nativeId)を指定して、求人情報を 1 件取得します。 |
どちらのツールも読み取り専用で、{ readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true } として注釈されています。
search_jobs の入力
keywords(文字列、任意)— フリーテキストの検索語。location(文字列、任意)— フリーテキストの勤務地フィルター。remote(ブール値、任意)— ソースがリモート勤務を示している場合に、リモート勤務の職種に絞り込みます。sources(文字列、任意)— エンジンキーをカンマ区切りで指定します:usajobs, adzuna, jooble, themuse, reed, ats。6 つすべてを対象にする場合は省略します。limit(整数 1〜100、任意、デフォルト 20)。offset(整数 ≥0、任意、デフォルト 0)。
get_job の入力
source(列挙型:usajobs | adzuna | jooble | themuse | reed | ats)。id(文字列)— 検索結果に含まれる上流のネイティブ ID。atsの場合は複合文字列board:company:nativeId。
設定
JOBSTACK_MCP_API_BASE_URL— 上流のベース URL。デフォルトはhttps://jobs-api-gamma.vercel.app。JOBSTACK_MCP_PROXY_SECRET— 送信する呼び出しのX-RapidAPI-Proxy-Secretとして転送する RapidAPI プロキシシークレット(/v1/*が保護されている本番オリジンで必要です)。JOBSTACK_MCP_RATE_LIMIT— IP ごとの 1 時間あたりのツール呼び出し上限(ソフト制限)。デフォルトは 30 です。
ローカル開発
npm install
npm run dev # starts local-server.js on http://localhost:3900
npm run smoke # in another terminal — real HTTP/JSON-RPC smoke test
test/smoke.mjs は、実際の HTTP/JSON-RPC 経由で実行中のサーバーを操作し、GET /health、initialize(serverInfo.name === "jobstack")、tools/list(zod から導出されたスキーマを持つ 2 つのツール)を検証した後、稼働中の search_jobs のツール呼び出しを試みます。ローカルで JOBSTACK_MCP_PROXY_SECRET が設定されていない場合、上流オリジンは 403(RapidAPI による保護)を返します。これは想定される上流認証の状態であり、スモークテストはソフト警告として報告しつつ、プロトコルの全機能を引き続き検証します。
デプロイ
cd /Users/isaiahdupree/Software/jobstack-mcp
npx vercel --yes --prod
デプロイ後、Claude/ChatGPT/任意の MCP クライアントに登録する MCP コネクターの URL は https://<deployment-domain>/mcp です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。