Job Matcher MCP
Job Matcher MCP
🎯 Сервер MCP (Model Context Protocol) для поиска работы и настройки резюме с использованием ИИ
Автоматизируйте поиск работы и настраивайте резюме под каждую роль менее чем за минуту. Работает на основе API вакансий и Claude LLM.
📋 Содержание
Related MCP server: job-search
🚀 Быстрый старт
Цель: Запустить сервер с тестовыми данными за 5 минут (ключи API не нужны).
1. Клонируйте репозиторий
cd job-matcher-mcp2. Установите зависимости
pip install -r requirements.txt3. Запустите с тестовыми данными
export USE_MOCK_DATA=true
python mcp_server.pyОжидаемый вывод:
=== Testing search_jobs ===
{
"success": true,
"job_listings": [
{
"id": "mock_1",
"title": "Senior Product Manager",
"company": "TechCorp Inc",
"location": "San Francisco, CA",
...
}
],
...
}
=== Testing customize_resume ===
{
"success": true,
"customized_resume": "# John Doe...",
...
}✅ Успешно! Ваш MCP сервер работает. Теперь добавим настоящие ключи API.
✨ Возможности
Функция | Статус | Описание |
Поиск работы | ✅ MVP | Поиск тысяч вакансий через Adzuna API |
Настройка резюме | ✅ MVP | Адаптация резюме с помощью ИИ на базе Claude |
Сопоставление навыков | ✅ MVP | Определение совпадающих/отсутствующих навыков |
Оптимизация для ATS | ✅ MVP | Автоматическое внедрение ключевых слов для ATS |
Режим тестовых данных | ✅ MVP | Тестирование без ключей API |
Поддержка нескольких API | 🔜 v1.2 | Добавление Indeed, LinkedIn, AngelList |
Генерация сопроводительных писем | 🔜 v1.2 | Автоматическая генерация сопроводительных писем |
Отслеживание заявок | 🔜 v2.0 | Отслеживание заявок и собеседований |
🔧 Установка
Предварительные требования
Python 3.10 или выше
pip (менеджер пакетов Python)
Git
Шаг 1: Клонируйте репозиторий
git clone https://github.com/yourusername/job-matcher-mcp.git
cd job-matcher-mcpШаг 2: Создайте виртуальное окружение (рекомендуется)
# macOS/Linux
python3 -m venv venv
source venv/bin/activate
# Windows
python -m venv venv
.\venv\Scripts\Activate.ps1Шаг 3: Установите зависимости
pip install -r requirements.txt⚙️ Конфигурация
1. Получите ключи API
Adzuna API (Бесплатно)
Перейдите на https://developer.adzuna.com/
Создайте аккаунт
Создайте приложение, чтобы получить App ID и App Key
Бесплатный тариф: ~100 запросов/день
Anthropic Claude API (Платный, $0.50-5/месяц)
Перейдите на https://console.anthropic.com/
Создайте аккаунт
Сгенерируйте API key
Цены: ~$0.003 за 1K входных токенов, $0.015 за 1K выходных токенов
2. Создайте файл .env
cp .env.example .env3. Добавьте свои ключи API в .env
ADZUNA_APP_ID=your_actual_app_id
ADZUNA_APP_KEY=your_actual_app_key
ANTHROPIC_API_KEY=sk-ant-your_actual_api_key
USE_MOCK_DATA=false
LOG_LEVEL=INFO4. Загрузите переменные окружения
# macOS/Linux
export $(grep -v '^#' .env | xargs)
# Windows PowerShell
Get-Content .env | ForEach-Object {
$name, $value = $_.Split('=')
if ($name) { Set-Item -Path env:\$name -Value $value }
}💻 Использование
Запустите сервер
python mcp_server.pyПротестируйте с помощью curl (пример)
# Поиск вакансий
curl -X POST http://localhost:8000/tools/search_jobs \
-H "Content-Type: application/json" \
-d '{
"role": "Product Manager",
"location": "San Francisco, CA",
"experience_years": 5,
"max_results": 10
}'
# Настройка резюме
curl -X POST http://localhost:8000/tools/customize_resume \
-H "Content-Type: application/json" \
-d '{
"base_resume": "...",
"job_description": "...",
"template": "modern"
}'Пример на Python
from mcp_server import JobMatcherMCPServer
server = JobMatcherMCPServer()
# Поиск вакансий
jobs = server.search_jobs(
role="Product Manager",
location="San Francisco, CA",
experience_years=5,
max_results=10
)
print(jobs)
# Настройка резюме
resume = server.customize_resume(
base_resume="Your resume text here...",
job_description="Job description here...",
template="modern"
)
print(resume)🛠️ Справочник инструментов MCP
Инструмент 1: search_jobs
Поиск вакансий по критериям.
Схема ввода
{
"role": "Product Manager", // Required: Job title
"location": "San Francisco, CA", // Required: Geographic location
"experience_years": 5, // Required: Years of experience
"max_results": 10, // Optional: Limit results (default: 10)
"use_mock_data": false // Optional: Use mock data (default: false)
}Схема вывода
{
"success": true,
"job_listings": [
{
"id": "12345",
"title": "Senior Product Manager",
"company": "TechCorp",
"location": "San Francisco, CA",
"link": "https://...",
"salary_min": 120000,
"salary_max": 160000,
"posted_date": "2026-08-17T10:00:00Z",
"description_snippet": "We are looking for..."
}
],
"total_found": 123,
"search_time_ms": 1234,
"error": null
}Пример
jobs = server.search_jobs(
role="Product Manager",
location="Remote",
experience_years=3,
max_results=5
)Инструмент 2: customize_resume
Настройка резюме под конкретную вакансию с помощью ИИ.
Схема ввода
{
"base_resume": "# Jane Doe...", // Required: Your resume text
"job_description": "We are looking for...", // Required: Job posting
"template": "modern", // Optional: modern|classic|minimal
"use_mock_data": false // Optional: Use mock data
}Схема вывода
{
"success": true,
"customized_resume": "# Jane Doe...",
"match_analysis": {
"skills_match_percentage": 82,
"matched_skills": ["Product Management", "Leadership"],
"missing_skills": ["Machine Learning", "Cloud"],
"suggestions": ["Add ML experience if applicable"],
"keywords_added": ["Data-driven", "Cross-functional"]
},
"generation_time_ms": 2345,
"error": null
}Пример
customized = server.customize_resume(
base_resume=open("resume.txt").read(),
job_description=open("job_posting.txt").read(),
template="modern"
)🏗️ Архитектура
┌─────────────────────────────────────────────────────┐ │ User/AI Agent (Chat, Script, API Client) │ └────────────────┬────────────────────────────────────┘ │ MCP Protocol ┌────────────────▼────────────────────────────────────┐ │ Job Matcher MCP Server │ │ ┌──────────────────────────────────────────────┐ │ │ │ Tool: search_jobs() │ │ │ │ - Query Adzuna API │ │ │ │ - Parse & structure results │ │ │ └──────────────────────────────────────────────┘ │ │ ┌──────────────────────────────────────────────┐ │ │ │ Tool: customize_resume() │ │ │ │ - Send to Claude API │ │ │ │ - Parse & return customized resume │ │ │ └──────────────────────────────────────────────┘ │ │ ┌──────────────────────────────────────────────┐ │ │ │ External APIs │ │ │ │ - Adzuna Job Search API │ │ │ │ - Anthropic Claude API │ │ │ └──────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘
🔍 Устранение неполадок
Проблема: ModuleNotFoundError: No module named 'anthropic'
Решение: Установите зависимости
pip install -r requirements.txtПроблема: API request failed: Unauthorized
Решение: Проверьте ключи API в файле .env
# Проверьте, установлены ли ключи
echo $ADZUNA_APP_ID
echo $ANTHROPIC_API_KEYПроблема: No jobs found
Решение: Попробуйте другую должность/местоположение или увеличьте max_results
# Попробуйте более широкий поиск
jobs = server.search_jobs(
role="Manager", # Более общий термин
location="New York, NY",
experience_years=5,
max_results=50
)Проблема: Claude API response too slow
Решение: Используйте тестовые данные для тестирования
resume = server.customize_resume(
base_resume="...",
job_description="...",
use_mock_data=True # Пропустить вызов API
)Проблема: Rate limit exceeded
Решение: Бесплатный тариф Adzuna имеет ограничения. Внедрите кэширование:
# Сохраняйте результаты поиска вакансий
cached_jobs = {}
key = f"{role}*{location}*{experience_years}"
if key not in cached_jobs:
cached_jobs[key] = server.search_jobs(...)🚢 Развертывание
Развертывание на Vercel
# 1. Создайте аккаунт Vercel на https://vercel.com
# 2. Установите Vercel CLI
npm install -g vercel
# 3. Разверните
vercel
# 4. Добавьте переменные окружения в панели Vercel
# Settings → Environment VariablesРазвертывание на Railway
# 1. Создайте аккаунт Railway на https://railway.app
# 2. Подключите ваш Git-репозиторий
# 3. Добавьте переменные окружения в панели Railway📊 Метрики производительности (Цель)
Операция | Целевое время | Фактическое |
Поиск вакансий | <5 секунд | ~2-3с |
Настройка резюме | <10 секунд | ~3-5с |
Тестовый поиск вакансий | <100мс | ~50мс |
Тестовая настройка резюме | <500мс | ~200мс |
📚 Ссылки на API
Adzuna API: https://developer.adzuna.com/docs
Claude API: https://docs.anthropic.com/
MCP Protocol: https://modelcontextprotocol.io/
📝 Лицензия
Лицензия MIT - подробности в файле LICENSE
👨💼 Автор
Создано для технических продакт-менеджеров, находящихся в поиске работы.
Версия: 1.0.0 Последнее обновление: 2026-08-17 Статус: MVP Ready
This server cannot be deployed
Maintenance
Related MCP Connectors
GetJobzi MCP server for job search, application tracking, and career forecasting.
AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.
Public MCP server for discovering open jobs. Search, filter, and get application links.
Job application tracker for developers - AI agents write over MCP, you review in a dashboard.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server for maintaining a professional profile database and generating tailored, ATS-optimized resumes for specific job postings.1-
- AlicenseNot gradedqualityDmaintenanceA job-search MCP server that ranks roles, drafts cover letters, and rehearses Q&A answers using a candidate profile, with live listings from five public sources.26 npmMIT
- AlicenseCqualityCmaintenanceAn MCP server that enables AI-assisted job search workflows including job discovery, application tracking, resume evaluation, and cover letter generation, with support for multiple job sources and scheduled scraping.8319 npm1AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceAn MCP server that exposes job-search and application-management capabilities to compatible AI clients, enabling discovery of vacancies, drafting of tailored application materials, and coordinated human-approved submissions.MIT