Job Matcher MCP
Job Matcher MCP
🎯 Сервер MCP (Model Context Protocol) для поиска работы и настройки резюме с использованием ИИ
Автоматизируйте поиск работы и настраивайте резюме под каждую роль менее чем за минуту. Работает на основе API вакансий и Claude LLM.
📋 Содержание
🚀 Быстрый старт
Цель: Запустить сервер с тестовыми данными за 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 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 Connectors
MCP server for AI job search — find jobs, track applications, get alerts. Claude, ChatGPT, Cursor.
GetJobzi MCP server for job search, application tracking, and career forecasting.
Job search and interview prep MCP. 11 tools, OAuth 2.1, cross-LLM. four-leaf.ai.
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/SRP-alohamora/JobMatcherMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server