mcpField
J
jobhunt

jobhunt

ローカル
github.com/CloudCorpRecordsビジネス・マーケティング02 日前に更新

jobhunt について

jobhuntは、企業の採用サイトから収集した求人や企業プロフィールを検索するJobven向けローカルブリッジです。求人検索や詳細取得、企業検索、Webhookサンプルを提供し、求職者や求人データのワークフローに対応します。独自に検索せず、呼び出しを転送します。

主な機能

  1. 01多様な条件による求人検索
  2. 02求人の完全な説明文の取得
  3. 03企業検索とプロフィール取得
  4. 04Webhookサンプルの生成
  5. 05Jobvenへの呼び出し転送

活用シーン

  1. 01場所、スキル、給与で求人を検索
  2. 02選択した求人の詳細を確認
  3. 03企業情報を調べる
  4. 04サンプルデータでWebhook受信側をテスト

MCP 対応

MCPクライアントに、求人・企業検索とWebhook例のための5つのJobvenツールを公開します。呼び出しをホスト型Jobven MCPサーバーへ転送し、上流の結果を返します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-jobhunt": {
"command": "npx",
"args": [
"-y",
"@reneturcios/jobhunt"
]
}
}
}
起動コマンドnpx -y @reneturcios/jobhunt

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

パッケージ
npm@reneturcios/jobhunt0.1.0
ocighcr.io/cloudcorprecords/jobhunt:0.1.0

ツール

5

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

パラメーター型必須説明
qstringいいえ職種名を単語単位で検索します。単語は順不同の AND 条件です。"double quotes" は完全一致のフレーズ、OR はいずれか一方への一致、先頭の - は単語の除外を指定します。大文字と小文字は区別しません。説明文は検索しません(descriptionQuery を参照)。
citystringいいえ都市。複数指定する場合はコンマ区切り。大文字と小文字、アクセント記号は区別しません
limitintegerいいえページあたりの求人件数。デフォルトは 10、最大 25
orderenumいいえデフォルトは DESCASC | DESC
statestringいいえ州、省、地域。複数指定する場合はコンマ区切り。正式名称("Ontario")、または米国とカナダの郵便コード("ON")
cursorstringいいえ前回の search_jobs 結果の nextCursor。同じフィルターを使用
skillsarrayいいえスキル。いずれかに一致(最大 10 件)。例:["typescript", "react"]
sortByenumいいえ並べ替えフィールド(デフォルトは postedAt)postedAt | listedAt | title | company
statusenumいいえ"active"(デフォルト)または "closed"active | closed
countrystringいいえISO 3166-1 alpha-2 の国コード。例:"US"、"CA"、"GB"。"XX" は勤務地情報がない求人に一致します。
industryarrayいいえ業界。いずれかに一致(最大 10 件)
languagestringいいえ必須の会話言語。ISO 639-1 コード。例:"fr"
locationstringいいえ自由入力の勤務地:都市、地域、または国
maxSalarynumberいいえ年額初任給の上限。minSalary と同じ形式
minSalarynumberいいえ年額給与の下限。時給、日給、週給、月給は年額に換算して比較します。salaryCurrency を設定しない場合、各求人独自の通貨が使われます。
remoteTypearrayいいえリモートの種類。いずれか
listedAfterintegerいいえlistedAt に基づき、指定時刻以降(Unix 秒)に掲載された求人。増分同期用
postedAfterintegerいいえ指定時刻以降(Unix 秒)に投稿された求人
includeTotalbooleanいいえすべての一致項目もカウントします(処理が遅くなります)
postedBeforeintegerいいえ指定時刻より前(Unix 秒)に投稿された求人
hasRelocationbooleanいいえtrue:転居支援を提供する求人情報。false:提供しないと明記された求人情報
employmentTypearrayいいえ雇用形態。いずれか
salaryCurrencystringいいえ給与の ISO 4217 通貨コード。例:USD、EUR、PLN
experienceLevelarrayいいえ経験レベル。いずれか
descriptionQuerystringいいえ求人の説明文から、完全な単語のフレーズを検索します。文字どおりに一致し、大文字と小文字は区別しません。他のフィルターより処理が遅いため、postedAfter と組み合わせてください。
hasVisaSponsorshipbooleanいいえtrue:ビザのスポンサーシップを提供する求人情報。false:提供しないと明記された求人情報

詳細

jobhunt

jobhunt は、企業の採用サイトから求人情報と企業プロフィールを収集するホスト型 Jobven MCP サーバーへの、小規模なローカルブリッジです。これを通じて、職種名や 説明文のフレーズ、リモート勤務の種類、経験レベル、雇用形態、スキル、業界、言語、勤務地、 給与範囲、ビザスポンサーの有無、掲載日など、幅広い条件で求人を検索できます。また、 個別の求人情報を選んで全文を読む、企業名で検索する、特定の企業プロフィールを開く、 受信側をテストするためのサンプル Webhook 配信を取得するといったこともできます。

このパッケージ自体は何も検索しません。ライブエンドポイントから取得した内容そのままの ツール一覧をローカルで返し、各ツール呼び出しを上流に転送して、返された内容を変更せずに 返します。取得した説明によると、検索で返される求人、および個別の求人や企業の検索は、 ご自身の Jobven アカウントの月間利用枠にカウントされます。一方、企業検索は無料です。 このパッケージでは、以下の 5 つの呼び出しと、何も送信せず実際の署名も行わないサンプル Webhook の例を通じた読み取りのみが可能です。求人への応募、応募書類の送信、メッセージの送信、 チェックアウトの開始、キーの生成はできません。

ツール

  • search_jobs — Jobven の求人情報を、GET /v1/public/jobs の フィルターを使って検索します。デフォルトで求人情報を 10 件(最大 25 件)返し、 各説明のプレーンテキストの抜粋も含まれます。全文は get_job で取得できます。 次のページを取得するには、同じフィルターを指定して nextCursor を cursor として 渡します。返された求人情報は、それぞれ月間利用枠にカウントされます。すべての引数は オプションです。q(タイトルの単語。順不同の AND 検索、完全一致のフレーズは "double quotes" で指定、OR でいずれかを指定、先頭の - で除外。 大文字と小文字は区別されません。説明文は検索しません)、descriptionQuery (説明文中の単語全体に一致するフレーズ。文字列どおりに一致し、大文字と小文字は 区別されません。処理が遅いため、postedAfter との併用を推奨します)、 remoteType(onsite、remote、hybrid、 flexible)、experienceLevel(entry、mid、 senior、lead、executive)、employmentType (full_time、part_time、contract、internship、 seasonal、volunteer、temporary、per_diem、 other)、skills、industry、language(ISO 639-1 コード)、location、country(ISO 3166-1 alpha-2。XX は勤務地が指定されていない求人に一致します)、 state、city、minSalary、maxSalary、 salaryCurrency(ISO 4217 コード)、hasVisaSponsorship、 hasRelocation、status(active がデフォルト、または closed)、postedAfter、postedBefore、 listedAfter(Unix 秒)、sortBy(postedAt、 listedAt、title、company)、order(ASC または DESC。デフォルトは DESC)、includeTotal、cursor、 limit(1~25。デフォルトは 10)。
  • get_job — id で Jobven の求人情報を 1 件取得し、説明文の全文を返します (GET /v1/public/jobs/{id})。必須:id(search_jobs で取得した 求人 ID。UUID 形式)。オプション:descriptionFormat(plain が デフォルト、または markdown)。月間利用枠に求人情報 1 件として カウントされます。
  • search_companies — Jobven が求人情報を収集している雇用主を、名前で検索します (GET /v1/public/companies)。id、name、website を返します。 プロフィールは get_company で取得できます。無料:企業検索は利用枠に カウントされません。すべての引数はオプションです。search(名前にこの文字列を 含む)、status(active または inactive。未指定の場合は両方)、 isVerified、sortBy(name、foundedYear、 totalJobsPosted、activeJobsCount、createdAt)、 sortOrder(ASC または DESC)、page(1 から開始)、 limit(1~25。デフォルトは 10)。
  • get_company — id で雇用主 1 社のプロフィールを取得します (GET /v1/public/company-profiles/{id})。事業内容、業界、規模、 設立年、本社、ソーシャルリンクが含まれます。必須:id (search_companies で取得した企業 ID)。月間利用枠に 1 件として カウントされます。
  • webhook_example — 1 つのイベントに対する Jobven webhook 配信のサンプルです。 受信側が受け取るものとまったく同じ、生のボディとヘッダーを、サンプルシークレットで 署名したものと、Webhook ドキュメントにある署名検証コードを TypeScript、Python、 または Go で返します。検証コードはサンプルを受け入れるため、受信側をエンドツーエンドで テストできます。API 呼び出し不要、キー不要、無料です。必須:event (job.created、job.updated、job.closed、 job.deleted)および language(typescript、 python、go)。

設定

  • JOBVEN_MCP_URL(オプション)— 上流エンドポイントを上書きします。デフォルトは https://api.jobven.com/mcp です。 (この上書きフックは、この再構築で独自に明記したものです。)
  • JOBVEN_API_KEY(オプション)— 設定すると、呼び出し元自身の Jobven API キーを X-API-Key: <value> ヘッダーに含めて、すべての上流リクエストを送信します。未設定の 場合、キーのヘッダーは送信されません。(ヘッダー名は、必須のシークレット X-API-Key ヘッダーを宣言する元のレジストリ記録によって固定されています。この記録では パッケージの環境変数名は指定されていないため、この環境変数からキーを転送する処理は 再構築で明記したものです。元のインターフェースはキーなしの状態で取得されました。)
転送の仕組み

最初のツール呼び出しで、クライアントは上流とのストリーミング可能な HTTP セッションを開きます。JSON-RPC の initialize リクエスト(protocolVersion 2025-03-26、clientInfo name jobhunt)、続いて notifications/initialized 通知、その後、呼び出し元の引数を変更せずに含む tools/call リクエストを送信します。上流が Mcp-Session-Id ヘッダーを付けて initialize に応答すると、その値はセッションの後続のすべてのリクエストに 付与され、プロセスの存続期間中、セッションは再利用されます。 応答はプレーンな JSON またはサーバー送信イベントとして届く場合があり、 どちらも読み取られます。

成功した上流の結果は、上流が設定した isError フラグも含めて、 そのまま返されます。失敗 — JSON-RPC エラー、2xx 以外のステータス、 読み取り不能な応答、または完了できないリクエスト — は、 テキストが jobhunt error: で始まる isError 結果として返されます (この表現は、この再構築で独自に付けたラベルです)。

CLI

各ツールは、JSON 引数文字列を受け取るサブコマンドとしても利用できます。

npx @reneturcios/jobhunt search_jobs '{"q":"typescript","remoteType":["remote"]}'
npx @reneturcios/jobhunt get_job '{"id":"00000000-0000-0000-0000-000000000000"}'
npx @reneturcios/jobhunt search_companies '{"search":"acme"}'
npx @reneturcios/jobhunt get_company '{"id":42}'
npx @reneturcios/jobhunt webhook_example '{"event":"job.created","language":"python"}'
npx @reneturcios/jobhunt --version

終了コード:成功時は 0、isError 結果の場合は 1、使用方法に誤りがある場合は 2 です。

MCP サーバー

npx -y @reneturcios/jobhunt mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "jobhunt": {
      "command": "npx",
      "args": ["-y", "@reneturcios/jobhunt", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/jobhunt
docker run --rm ghcr.io/cloudcorprecords/jobhunt --version

コンテナのデフォルトコマンドは mcp なので、最初の形式は stdio MCP サーバーです。それ以外の引数は、通常どおり CLI に渡されます。

開発

npm install
npm run build
npm test
npm run dev

テストスイートはすべて、スタブ化された JSON-RPC 上流に対して実行されます。実際のネットワーク呼び出しはありません。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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