Skip to main content
Glama
pendevster

job-search-mcp

by pendevster

job-search-mcp

MCP-сервер для поиска работы с учётом визовых ограничений.

Если вам нужно спонсорство, большинство инструментов для поиска работы отвечают не на тот вопрос. Они сообщают, что вакансия существует. Но не сообщают, может ли работодатель нанять вас легально, не прячет ли «mid-level» заголовок более высокую должность и не является ли компания, разместившая вакансию, рекрутинговым агентством вообще без лицензии.

Этот сервер отвечает на эти вопросы. Он предоставляет четыре инструмента через Model Context Protocol, чтобы ИИ-ассистент мог проверить их сам, а не гадать.

Инструменты

Инструмент

Что даёт

check_sponsor

Есть ли у этого работодателя лицензия UK Skilled Worker и насколько можно доверять совпадению?

screen_posting

Есть ли здесь жёсткие барьеры? Соответствует ли заголовок вакансии реальному уровню должности?

search_roles

Какие вакансии открыты прямо сейчас, без агентств?

application_history

Я уже откликался здесь?

Related MCP server: recruiting-jobs-mcp

Зачем существует градация уверенности

Очевидный способ проверить спонсорскую лицензию — найти название компании в реестре. Именно так всё и начиналось, и этот подход ошибается достаточно часто, чтобы быть опасным.

Названия компаний сталкиваются и пересекаются. Чтобы сопоставить Pимberly с её зарегистрированным названием Pимberly Software Development Limited, нужно отбросить слова вроде «Software» и «Limited». Та же нормализация превращает Minerva Defence в minerva, что соответствует тринадцати компаниям, не связанным между собой: мебельному бизнесу, кредитному агентству, поставщику услуг сопровождаемого проживания.

Поэтому check_sponsor возвращает степень уверенности, а не логическое значение:

  • high — отличительная часть названия совпала точно, один раз.

  • verify — что-то совпало, но это может быть случайностью. Уточните официальное юридическое название работодателя и проверьте по реестру именно это название.

  • none — ничего не совпало. Это не доказывает, что они не могут спонсировать визу. Многие лицензированные работодатели работают под названием, которое отличается от зарегистрированного.

Реальные случаи, которые привели к такой логике:

Что искали

Что нашлось

Что было на самом деле

Minerva Defence

13 записей «Minerva», не связанных с ней

MINERVA DEFENCE LTD нет в реестре, как и её прежнего названия PARABELLUM TECHLOGIES LTD

Prevail

Prevail Technology Limited (Poole)

Работодатель — Prevail Partners Ltd, которой нет в реестре. Тот же город, но другая компания

MAGIC

MAGIC SOFTWARE SERVICES LTD

Верный ответ, но не то свидетельство. Работодатель — MAGIC TECH LTD, у которой тоже есть лицензия

TransPerfect

Perfect Digital Ltd

Некорректное совпадение по слову «perfect».

eFinancialCareers

eFinancialCareers Ltd

Верно и бесполезно: лицензия есть, но это доска вакансий. Вакансии, размещённые под этим именем, принадлежат неназванным третьим лицам

Почему screen_posting читает текст вакансии, а не её заголовок

Вакансия с заголовком «Software Engineer» начиналась со слов "As a Senior Software Engineer you will" и приглашала присоединиться к "the founding team". В вакансии «Software Engineer (Java Mid)» старшинстворе было названо тремя абзацами ниже. Фильтрация по названию не видит ни одну из них.

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:

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 возвращает воронку

Британские доски вакансий заполнены рекрутинговыми агентствами, а агентство не является спонсорским лицензироатом для вакансии, которую оно публикует. Отсеивать их необходимо — и это грубо. Обычный поиск сокращается с семи результатов до одного.

Один результат без объяснений выглядит как баг. Поэтому инструмент сообщает, что именно было убрано на каждом этапе:

{
  "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 МБ, обновляется регулярно):

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.

Или с помощью CLI Claude Code:

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 теста. Каждый fixture — это реальная вакансия или реальная запись из реестра, с которыми не справлялась более ранняя версия этого кода. В тестах Reed мокеруется fetch, поэтому набор запускается в автономном режиме и не тратит квоту API.

Две ошибки, которых поймал набор тестов, когда ещё писался сам:

  • £40,000-85,000 разбирался как ровные £40,000, потому что во втором числе нет символа валюты. Про порога зарплаты это разница между «проходит» и «не проходит».

  • Фильтр агентств, записанные как \brecruit\b, никогда не совпадал с Recruitment и Consultancy. Примерно пятьдесят агентств прошли насквозь без отсева.

Заметки по дизайну

core() намеренно уничтожает информацию. Отбрасывание описательных слов — это то, что позволяет сопоставить бренд с юридически названием, и именно поэтому возникновения о появлении ложных срабатываний. Степень уверенности в цене этого компромисс, а не прячет его.

Отсутствие — не отрицательный результат. none несёт оговорку об этом. Самая дорогая ошибка в этой области — сделать вывод, что работодатель, которого нет в реестре, не может быть спонсором.

Read-only. Сервер читает журнал откликов, но никогда не пишет в него. Фиксация решения — это действие человека.

Лицензия

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