Skip to main content
Glama
MajidAli2006

jobfinder

by MajidAli2006

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

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

После этого перезапустите 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.

Добавьте в .env

Сайт

Где получить

ADZUNA_APP_ID и ADZUNA_APP_KEY

Adzuna (по всему миру)

developer.adzuna.com

REED_API_KEY

Reed (Великобритания)

reed.co.uk/developers

JOOBLE_API_KEY

Jooble (по всему миру)

jooble.org/api/about

CAREERJET_API_KEY

Careerjet (по всему миру)

careerjet.com/partners/api

Как получить доступ к Indeed, Glassdoor, Bayt, Naukri и другим

Эти сайты — а также Rozee и foundit — блокируют прямые запросы с помощью CAPTCHA, но все они намеренно публикуются в индексе вакансий Google. Поэтому путь лежит через индекс Google, и несколько поставщиков продают лицензированный доступ к нему.

Все они возвращают одни и те же объявления, потому что это данные Google. Разница заключается в цене и бесплатном лимите, а не в охвате. Выберите любой и поместите его ключ в .env точно так же, как и остальные — инструмент использует тот, который найдёт:

Добавьте в .env

Поставщик

Где получить

Примечания

SERPAPI_KEY

SerpApi

serpapi.com

Бесплатная месячная квота, далее платно

SEARCHAPI_KEY

SearchApi.io

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

Куда помещать ключи

Любой из вариантов, какой вам удобнее:

  1. Файл с произвольным именем через JOBFINDER_ENV=/path/to/your.env

  2. .env в папке, из которой вы запускаете команду

  3. ~/.jobfinder/.env — хороший выбор, если нужен один набор ключей для всех проектов

  4. .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 отправляется только текст, чтобы составить ваш поисковый профиль и оценить, насколько каждое объявление вам подходит.

Полезные флаги:

Флаг

Что делает

--days 7

Только объявления, опубликованные за последние 7 дней (по умолчанию 30)

--min-salary 60000

Отбросить всё, где указанная зарплата ниже этого значения

--require-salary

Также отбрасывать объявления, где зарплата не указана

--quick

Более быстрое и поверхностное сканирование — меньше запросов деталей и вызовов API

--no-llm

Только правила. Без вызовов API, без затрат

--offline

Запуск на встроенных примерах данных — удобно для тестирования

--no-open

Не открывать таблицу по завершении

--output-dir PATH

Сохранять отчёты в другое место

--region "USA, UK"

Где вы хотите работать. Берётся из резюме, если не указано

--deep

Более медленное и тщательное сканирование

--no-verify

Не перепроверять, что каждое объявление ещё открыто

--tier quick|normal|deep

Тот же выбор, что и --quick/--deep, но с явным названием

--sources a,b

Ограничить запуск указанными коннекторами — см. jobfinder sources

--small-only

Только стартапы, быстрорастущие компании и средний бизнес

--allow-low-rate-markets

Оставлять вакансии на рынках, где обычно платят ниже вашего минимума

--no-prompt

Никогда не запрашивать недостающий ключ; пропускать эти платформы

-v, --verbose / -q, --quiet

Показывать каждый шаг или только предупреждения и ошибки. Доступно для любой команды

Каждый флаг выше работает для любой страны. --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 failed

check также принимает --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-адресе, редактируется перед выводом.

A
license - permissive license
Not graded
quality - not tested
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

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables 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.
    34
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables job search and scraping across multiple job boards (LinkedIn, Indeed, Glassdoor, etc.) with advanced filtering, directly from Claude Desktop or other MCP clients.
    5
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Transforms 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
  • A
    license
    A
    quality
    B
    maintenance
    A 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.
    10
    79
    1
    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/MajidAli2006/jobfinder'

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