jobfinder
Job Finder
Находит вакансии для любой профессии, в любой стране — по одному предложению или по вашему резюме — и ранжирует их по реальному шансу попасть в шорт-лист.
jobfinder daily --query "electrician jobs in Dubai"Вы получаете таблицу на рабочем столе, от лучших к худшим. Она откроется, когда завершится выполнение.
Всё выполняется на вашей машине. Ваше резюме не покидает её, кроме как в виде текста, отправляемого в API Anthropic по вашему собственному ключу, а ваши поисковые запросы уходят на подключённые доски вакансий — ровно так же, как если бы вы вводили их на этих сайтах.
Быстрый старт
Четыре шага. Займёт около пяти минут.
1. Установите
git clone https://github.com/MajidAli2006/jobfinder.git
cd jobfinder
python3 -m venv .venv
.venv/bin/pip install -e ".[all]"2. Получите один API-ключ
Перейдите на console.anthropic.com/settings/keys,
войдите, нажмите Create Key и скопируйте его. Он начинается с sk-ant-.
Это единственный ключ, который действительно нужен инструменту.
3. Поместите ключ в файл .env
cp .env.example .envОткройте .env в любом текстовом редакторе и вставьте ключ после =, без кавычек
и пробелов:
ANTHROPIC_API_KEY=sk-ant-your-key-hereСохраните файл. .env находится в git-ignore, так что ваш ключ никогда не попадёт в коммит.
4. Проверьте, что всё работает, затем ищите
.venv/bin/jobfinder setup
.venv/bin/jobfinder daily --query "warehouse jobs in Leeds"Совет: выполните
source .venv/bin/activateодин раз, и вы сможете не вводить префикс.venv/bin/до конца текущего сеанса терминала.
Related MCP server: JobSpy MCP Server
Использование из Claude (MCP)
Этот инструмент также является MCP-сервером, так что вы можете просто попросить Claude поискать за вас.
Claude Code — одна команда:
claude mcp add --scope user jobfinder -- /full/path/to/jobFinder/.venv/bin/jobfinder-mcpЗамените /full/path/to/jobFinder на путь, куда вы его клонировали. Выполните pwd внутри
папки, чтобы получить его.
Claude Desktop — откройте claude_desktop_config.json и добавьте:
{
"mcpServers": {
"jobfinder": {
"command": "/full/path/to/jobFinder/.venv/bin/jobfinder-mcp"
}
}
}Файл конфигурации находится по адресу:
Платформа | Путь |
macOS |
|
Windows |
|
После этого перезапустите Claude Desktop. Cursor и Windsurf используют тот же
формат command в своих настройках MCP.
Затем просто спросите:
"Найди мне удалённую контрактную работу React в Европе"
Доступны четыре инструмента: check_setup (проверить, что ключи работают),
preview_search (посмотреть, как был понят запрос, до того как тратить средства),
find_jobs (полный запуск — занимает несколько минут и создаёт таблицу) и
list_platforms (какие сайты вакансий обслуживают страну).
API-ключи — что нужно, а что нет
Без каких-либо ключей инструмент по-прежнему ищет в публичных объявлениях LinkedIn, на карьерных страницах работодателей (Greenhouse, Lever, Ashby, Workable и других), на десяти сайтах удалённой работы, в разделе Hacker News "Who is hiring" и на любых региональных площадках, публикующих стандартную разметку вакансий.
С ключом Anthropic (шаг 2 выше) он также понимает свободные текстовые запросы,
читает ваше резюме и оценивает соответствие и пригодность. Без него вы по-прежнему можете
искать, но вам придётся указать, что искать, в candidate.local.json, а не в предложении — см. раздел «Устранение неполадок».
Всё ниже — необязательно. Каждый пункт добавляет больше сайтов с вакансиями. Если какой-то пропустить, инструмент просто сообщит, что этот источник не использовался — он никогда не завершится ошибкой.
Бесплатные ключи, самостоятельное получение
Зарегистрируйтесь, скопируйте ключ, вставьте его в .env.
Добавьте в | Сайт | Где получить |
| Adzuna (по всему миру) | |
| Reed (Великобритания) | |
| Jooble (по всему миру) | |
| Careerjet (по всему миру) |
Как получить доступ к Indeed, Glassdoor, Bayt, Naukri и другим
Эти сайты — а также Rozee и foundit — блокируют прямые запросы с помощью CAPTCHA, но все они намеренно публикуются в индексе вакансий Google. Поэтому путь лежит через индекс Google, и несколько поставщиков продают лицензированный доступ к нему.
Все они возвращают одни и те же объявления, потому что это данные Google. Разница
заключается в цене и бесплатном лимите, а не в охвате. Выберите любой и поместите его ключ
в .env точно так же, как и остальные — инструмент использует тот, который найдёт:
Добавьте в | Поставщик | Где получить | Примечания |
| SerpApi | Бесплатная месячная квота, далее платно | |
| SearchApi.io | Те же данные, бесплатный лимит, затем платно |
Используйте переменную, соответствующую сайту, где вы зарегистрировались. Они не
взаимозаменяемы: ключ SearchApi.io в SERPAPI_KEY будет отклонён с ошибкой
401 Invalid API key. Ключи SerpApi состоят из 64 шестнадцатеричных символов; у SearchApi.io
они короче. Если вы получили отказ, проверьте, каким сайтом был выдан ключ. Выполните
jobfinder sources, и он сообщит, какого поставщика использует.
SERPAPI_KEY=your-key-hereУстановите только один. Если указаны оба, используется первый настроенный поставщик, и ни один не является обязательным — без них инструмент по-прежнему работает, просто пропускает эти сайты и сообщает об этом в сводке выполнения.
Если основная доска вакансий вашей страны не входит в бесплатный список выше, этот ключ стоит того, чтобы его получить: он обеспечивает доступ к этим сайтам в любой стране. Охват зависит от страны и формулировки запроса — в индексе Google много вакансий для "software engineer" в Пакистане и "full stack developer" в ОАЭ, а для некоторых других сочетаний нет вообще. Пустой результат отображается как таковой, а не как неработающий ключ.
Требуется одобрение
INDEED_PUBLISHER_ID, ZIPRECRUITER_API_KEY, SEEK_API_KEY,
STEPSTONE_API_KEY, BAYT_API_KEY, NAUKRI_API_KEY, ROZEE_API_KEY — это
партнёрские программы, которые должны сначала вас одобрить. Большинству людей они не нужны;
ключ SerpApi даёт доступ к тем же объявлениям.
Чтобы узнать, какие платформы обслуживают вашу страну и какие ключи им нужны:
jobfinder setup --region NigeriaКуда помещать ключи
Любой из вариантов, какой вам удобнее:
Файл с произвольным именем через
JOBFINDER_ENV=/path/to/your.env.envв папке, из которой вы запускаете команду~/.jobfinder/.env— хороший выбор, если нужен один набор ключей для всех проектов.envв папке проекта
Все они читаются и объединяются. Если ключ задан в нескольких местах, приоритет
у того, что выше по списку; ключ, который есть только в нижнем файле, тоже подхватывается.
Таким образом, общие ключи можно хранить в ~/.jobfinder/.env, а специфичные для проекта — в .env проекта.
Настоящие переменные окружения имеют приоритет над любым файлом, поэтому export ADZUNA_APP_ID=... побеждает.
Обратите внимание, что обратное неверно: сброс переменной в оболочке не скрывает
ключ, который также определён в файле .env. Формат — одна KEY=value в строке, без кавычек:
ANTHROPIC_API_KEY=sk-ant-...
ADZUNA_APP_ID=12345678
ADZUNA_APP_KEY=abcdef...Повседневное использование
Скажите, что вы хотите, простыми словами. Никаких фильтров настраивать не нужно:
jobfinder daily --query "plumber jobs in Lagos"
jobfinder daily --query "remote React contract, Europe"
jobfinder daily --query "part time warehouse work near Leeds"
jobfinder daily --query "graduate marketing internship, London"Или передайте ему своё резюме, и он сам разберётся, чем вы занимаетесь:
jobfinder daily --cv ~/cv.pdf
jobfinder daily --cv ~/cv.pdf --query "only remote, minimum £45k"Резюме читается на вашей машине. В Anthropic отправляется только текст, чтобы составить ваш поисковый профиль и оценить, насколько каждое объявление вам подходит.
Полезные флаги:
Флаг | Что делает |
| Только объявления, опубликованные за последние 7 дней (по умолчанию 30) |
| Отбросить всё, где указанная зарплата ниже этого значения |
| Также отбрасывать объявления, где зарплата не указана |
| Более быстрое и поверхностное сканирование — меньше запросов деталей и вызовов API |
| Только правила. Без вызовов API, без затрат |
| Запуск на встроенных примерах данных — удобно для тестирования |
| Не открывать таблицу по завершении |
| Сохранять отчёты в другое место |
| Где вы хотите работать. Берётся из резюме, если не указано |
| Более медленное и тщательное сканирование |
| Не перепроверять, что каждое объявление ещё открыто |
| Тот же выбор, что и |
| Ограничить запуск указанными коннекторами — см. |
| Только стартапы, быстрорастущие компании и средний бизнес |
| Оставлять вакансии на рынках, где обычно платят ниже вашего минимума |
| Никогда не запрашивать недостающий ключ; пропускать эти платформы |
| Показывать каждый шаг или только предупреждения и ошибки. Доступно для любой команды |
Каждый флаг выше работает для любой страны. --region принимает страну, город,
название на родном языке или список — "uae", "Deutschland", "Lagos", "USA, UK" —
все они распознаются.
О --min-salary: объявление, в котором зарплата не указана, сохраняется с пометкой
«Зарплата не указана», потому что нельзя доказать, что она ниже вашего минимума. Добавьте
--require-salary, если предпочитаете вообще не видеть такие объявления. Если в самом запросе
указана цифра — --query "electrician jobs, minimum $60k" — объявления без указанной зарплаты
будут перемещены на лист Prospects.
Что вы получаете
Электронную таблицу в ~/Desktop/job finder/ с тринадцатью листами: Quick Apply
(только самое необходимое), Hot Leads, All Qualified Jobs, затем разбивка по
Full Time, Part Time, Contract, Freelance, Startups и Partnerships, а также
Prospects (соответствие неясно — стоит спросить), Long Shots (соответствует, но
вероятность ответа низкая), Companies & Contacts и Search Summary
с указанием того, что было отфильтровано и почему.
Те же данные сохраняются рядом в виде .csv, .json и удобной для просмотра .html-страницы.
Процент совпадения — это оценка попадания в шорт-лист, а не совпадение по ключевым словам. Соответствие вашему резюме задаёт потолок; от него оценка зависит от того, что объявление раскрывает о конкурсе. Каждая строка показывает свою арифметику в столбце «Почему такой ранг»:
fit 87 × 1.05 = 91 — applicant count not published (-4%) · posted in the
last 24 hours (+3%) · scoped to United Kingdom, smaller pool (+6%) ·
applying straight into the employer's own system (+5%)Таким образом, идеальное совпадение при 200 претендентах будет ниже, чем хорошее совпадение, которое ещё никто не нашёл, — честный ответ на вопрос, на что уходит ваше время.
Другие команды
jobfinder setup # which keys are set, which are missing
jobfinder setup --region India # what serves a particular country
jobfinder sources # every connector and its status
jobfinder sources --test # live-check every configured key
jobfinder status # what previous runs found
jobfinder platforms --region Kenya
jobfinder platforms --region Kenya --trade "solar installer"
jobfinder check --title "..." --description "..." # why one advert passed or failedcheck также принимает --company, --location и --url, что позволяет оценить
работодателя, соответствие и способ подачи заявки, а не только формулировку.
Чтобы сделать один поиск используемым по умолчанию, чтобы простой jobfinder daily запускал
его, создайте candidate.local.json в папке проекта:
{
"home_country": "Nigeria",
"default_search": {
"label": "Electrical",
"query": "electrician jobs in Lagos",
"core_terms": ["electrician", "electrical"]
}
}Он находится в git-ignore. Без него простой jobfinder daily спросит, что искать,
а не будет угадывать.
Устранение неполадок
«Я не знаю, какую работу искать» — укажите --query или --cv. Он не будет
придумывать поиск за вас.
«Для пользовательского поиска требуется уровень оценки Claude» — свободный текстовый
--query должен быть прочитан моделью, прежде чем по нему можно будет искать, поэтому
требуется ANTHROPIC_API_KEY. Выполнение завершается с кодом 1 и не создаёт отчёт. Либо
задайте ключ, либо укажите поиск самостоятельно в candidate.local.json, как показано ниже.
No jobs found — расширьте окно с помощью --days 30, проверьте, что название вашей страны написано полностью, и выполните jobfinder setup --region <your country>, чтобы узнать, не требуют ли сайты, которые вы используете, ключ, который вы не задали.
"ANTHROPIC_API_KEY is not set" — файл .env находится не там, где его ищет инструмент, или ключ заключён в кавычки. Выполните jobfinder setup, чтобы увидеть, что он нашёл. Помните, что файл должен называться .env, а не env или .env.txt.
Ничего не происходит в Windows — установите с помощью pip install -e ".[all]", а не запускайте напрямую из исходного кода; Windows требуется встроенный пакет tzdata.
Хотите увидеть, как это работает, прежде чем настраивать ключи? Для свободного текстового --query требуется ключ Anthropic, потому что кто-то должен прочитать ваше предложение и превратить его в поисковый запрос. Чтобы запустить без каких-либо ключей, передайте поисковый запрос напрямую — поместите это в candidate.local.json в папке проекта:
{
"default_search": {
"label": "Warehouse",
"query": "warehouse operative",
"core_terms": ["warehouse", "forklift"]
}
}затем запустите его на прилагаемых образцах объявлений:
jobfinder daily --offline --no-llmЭто создаст полную электронную таблицу, не обращаясь ни к чему.
Разработка
.venv/bin/pip install -e ".[all,dev]"
.venv/bin/python -m pytest tests/ -q # 661 tests, fully offline
.venv/bin/ruff check job_agent/ tests/Для тестов не нужны ключи и доступ в сеть.
Конфиденциальность
Ваш файл с резюме остаётся на вашем компьютере — он считывается локально, и только извлечённый текст отправляется в API Anthropic, с вашего собственного ключа, для создания вашего профиля поиска и оценки соответствия. Текст объявлений отправляется в тот же API для той же цели и больше никуда.
Ваши поисковые запросы отправляются на те сайты вакансий, которые вы включили, потому что так работает поиск — это те же слова, которые вы бы ввели на этих сайтах. Если ключи не заданы, это означает публичный поиск LinkedIn и открытые доски вакансий. Выполните jobfinder sources, чтобы увидеть, какие именно активны.
Ничего не отправляется автору этого инструмента, и никакой телеметрии нет. Ключи API считываются из .env, который игнорируется git, и удаляются из журналов и сообщений об ошибках — неудачный запрос, содержащий ключ в URL-адресе, редактируется перед выводом.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityFmaintenanceEnables users to search for jobs, prefill applications using AI, and automate submissions across major platforms like Lever and Ashby directly from Claude or Cursor. It provides a full suite of tools for managing job queues, profile data, and resumes within a chat interface.34MIT
- AlicenseNot gradedqualityAmaintenanceEnables job search and scraping across multiple job boards (LinkedIn, Indeed, Glassdoor, etc.) with advanced filtering, directly from Claude Desktop or other MCP clients.5MIT
- FlicenseAqualityDmaintenanceTransforms Claude into an AI job-hunting assistant that searches remote job boards, scores roles against your CV, generates tailored cover letters, and logs everything to a Notion tracker.11
- AlicenseAqualityBmaintenanceA personal job-search assistant for Claude Desktop that searches real job boards, scores each job 0–100 for fit, and displays a ranked board for fast triage.10791MIT
Related MCP Connectors
AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.
AI job search for Claude, ChatGPT, Cursor. 170K+ jobs, 3,800+ companies. OAuth or stdio.
Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MajidAli2006/jobfinder'
If you have feedback or need assistance with the MCP directory API, please join our Discord server