Skip to main content
Glama
pendevster

job-search-mcp

by pendevster

job-search-mcp

ビザの制約があるなかで求職活動をおこなうための MCP サーバー。

スポンサーシップが必要な場合、既存の求職ツールは「間違った質問」に答えている。それらのツールが教えてくれるのは「求人が存在する」ということとだけだ。雇用主があなたを合法に雇用できるかどうか、「ミドルレベル」というタイトルの裏にシニア級の業務内容が隠れていないか、その求人を掲出している会社がスポンサーライセンスを一切持たない人材エージェンシーなのか、そのようなことは何も教えてくれない。

このサーバーはそれらの質問に答える。Model Context Protocol 経由で4つのツールを公開し、AI アシスタントが推測ではなく、自ら確認できるようにする。

ツール

ツール

なにがわかるか

check_sponsor

この雇用主は英国の Skilled Worker ライセンスを持っているか? その一致はどの程度信用できるか?

screen_posting

ここに絶対条件(ハードバー)はあるか? タイトルはシニア度合いについて真実を言っているか?

search_roles

いま有効な採用求人はどれか? エージェンシーを除いたうえで。

application_history

ここにはすでに応募したか?

Related MCP server: recruiting-jobs-mcp

なぜ信頼度評価が存在するのか

スポンサーライセンスを確認する素直な方法は、登録簿(register)で会社名を検索することだ。このサーバーもそのやり方から始めた。しかしそのやり方は、危険を生むほど頻度に間違う。

社名は衝突する。Pimberly を登録名 Pimberly Software Development Limited と照合するには、"Software" や "Limited" といった単語を削ぎ落とす必要がある。同じ正規化は、Minerva Defenceminerva に変えてしまう。それは、家具事業者、信用情報会社、自立生活支援事業者などの、無関係な13の会社に一致してしまう。

そこで check_sponsor は、真偽値ではなく信頼度を返す:

  • high -- 名前の識別力のある部分が、一度だけ、完全に一致した。

  • verify -- 何かは一致したが、偶然の可能性がある。雇用主の登録された法的な法人名を確認し、その名前でひとを検索しない。

  • none -- 一致したものはない。これは求人できたという証明ではない。 たとえスポンサーライセンスを持っていても、登録された法人名とは異なる名前で仕事をしている雇用主なら、多い。

この設計を形作った実例が下である:

検索名

一致したのは

実際に言えたこと

Minerva Defence

無関係な「Minerva」に目をひく13行

MINERVA DEFENCE は、その旧商号 PARABELLUM TECHNOLOGIES LIMITED と同様、登録にない

Prevail

Prevail Technology Limited (Poole)

雇用主は Prevail Partners Ltd であり、それである行登録が存在しない。同じ地域内だが、会社の違いだ。

MAGIC

MAGIC SOFTWARE SERVICES LIMITED

答えが正しくは、証拠が間違っている。雇用主は MAGIC TECH LIMITED であり、同じくライセンスを持つ。

TransPerfect

PERFECT DIGITAL LIMITED

「perfect」という単語での一致です。

eFinancialCareers

eFinancialCareers Ltd

正しいが役に立たない: ライセンスはある、ただし単なる求人掲示板。その名前での求人は、名を伏せた第三者に帰属する

なぜ screen_posting はタイトルではなく本文を読むのか

「"ソフトウェアエンジニア"というタイトルの求氏、As a Senior Software Engineer you will... という始まりで、*「the founding team」*に参加して人を求していた。また別の「Software Engineer (Java Mid)」というタイトルは、3パラグラフ下にシニアグレードの要件を記載していた。タイトルだけでのフィルタはどちらも見録できない。

screen_posting はまた、どんなに応募書類を調整しても乗り越えられない絶対条件ヘのハードバーを検知する:

You must be a UK citizen and have lived in the UK for the past 10 years.
You must already hold high-level UK security clearance.

そして、スポンサーシップが必要なときに最大の意味をもつのは、A評価(A-rated)のライセンスを保有している会社からの募集のものだ:

We are unable to offer visa sponsorship for this role. Candidates who need visa
sponsorship now or will need it in the future will not be considered.

ライセンスは「その会社がスポンサーできる」ことを意味する。スポンサーしてくれることは意味しない。

なぜ search_roles はファネル(漏斗)を返すのか

英国の求人ボードは、人材紹介エージェンシーによって占められている。そしてエージェンシーは、自身が広告する求人に対してスポンサーライセンスを保有していない。しかし*****それを除外することは必須であり、選別は激しい: 典型の検索結果は7件から1件に落ちる。

説明がないまま1 つになるのはバグに見える。そこでこのツールは、各段階で何を除去したのかを返す:

{
  "totalFromSource": 7,
  "funnel": { "fromSource": 7, "afterAgencyFilter": 2, "afterSalaryAndAge": 1 },
  "notes": ["5 of 7 results were recruitment agencies or job boards. ..."]
}

非公開の給与は保持され、決してフィルタリングされていない。給与が記載されていないことは、給与が低いという証拠ではない。

インストール

npm install && npm run build

現在の登録簿(約 11 MB、定期的に更新)をダウンロード:

https://www.gov.uk/government/publications/register-of-licensed-sponsors-workers

data/register.csv として保存するか、SPONSOR_REGISTER_PATH にその場所を指定する。

Claude Desktop / Claude Code

{
  "mcpServers": {
    "job-search": {
      "command": "node",
      "args": ["/absolute/path/to/job-search-mcp/dist/index.js"],
      "env": {
        "SPONSOR_REGISTER_PATH": "/absolute/path/to/data/register.csv",
        "REED_API_KEY_FILE": "/absolute/path/to/.reed-api-key"
      }
    }
  }
}

変数

必須条件

目的

SPONSOR_REGISTER_PATH

なし

登録簿 CSV。デフォルトは ./data/register.csv

REED_API_KEY_FILE

search_roles 使用時

キーを格納したファイルパス。推奨: 秘密情報は一箇所に置き、クライアント設定はパスだけを保持する

REED_API_KEY

代替

キーを直接(インラインで)記載。単純だが、秘密情報をMCP設定にコピーしてしまう

APPLICATION_LEDGER_PATH

なし

NDJSON 形式の応募履歴

リポジトリ内部のファイルから資格情報を読み取られることはなく、登録簿は gitignore されている。

または Claude Code CLI を使う場合:

claude mcp add job-search --scope user \
  --env SPONSOR_REGISTER_PATH=/path/to/data/register.csv \
  --env REED_API_KEY_FILE=/path/to/.reed-api-key \
  -- node /path/to/job-search-mcp/dist/index.js

テスト

npm test

54件のテスト。各フィクスチャは、このコードの以前の版を失敗させた実在の求人採用または実在のレジストリ登録である。Reed のテストは fetch をモックしているため、テストスイートはオフラインで動作し、API の割り当てを消費しない。

スイートが書いている最中にとらえた2つのバグ:

  • £40,000-85,000 の表示が、2桁側に通貨記号が付いていなかったせいで、単純の £40,000 として解析されてしまった。給与のしきい値と照合すると、これは「クリア」と「非クリア」の違いになる。

  • \brecruit\b という記述のエージェンシーフィルターは、リクルートConsultancy に一度もヒットしなかった。結果として50社近いエージェンシーがすり抜けた。

設計ノート

core() は意図的に情報を破壊する。 ブランドを正式な法人名に対応させるには記述語を除去する必要があり、それはすなわち誤検出を引き起こす原因其物である。信頼度付けはこのトレードオフを隠すことなく、その価格として示す。

不在は否定的な結果ではない。 none にはそう記されているいる。この領域でも最も高くつくエラーは、登録のない雇用主をスポンサー不可と断言してしまうことだ。

読み取り専用。 サーバーは応募台帳を読み取るだけで、そこに書き込むことはない。応募結果を記録するべきのは、人間が下す判断である。

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-driven job application automation for LinkedIn and SEEK platforms with intelligent cover letter generation, automated application submission, and application tracking management. Supports anti-detection measures and complies with platform usage policies for safe job hunting automation.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to pull live job listings from major ATS platforms (Greenhouse, Lever, Ashby, Workable), Hacker News hiring threads, and detect hiring signals on company career pages.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to discover, filter, and track job openings based on the user's local resume, without uploading data to the cloud.
    11
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to search live jobs, view full details, save and track applications in a Kanban board, set follow-up reminders, and subscribe to job alerts—no account needed for searching.
    20
    269
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/pendevster/job-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server