iflow-mcp_gmen1057-headhunter-mcp-server 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
README.md ADDED
@@ -0,0 +1,314 @@
1
+ # HeadHunter MCP Server
2
+
3
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
4
+ [![MCP](https://img.shields.io/badge/MCP-1.0+-green.svg)](https://modelcontextprotocol.io/)
5
+ [![HeadHunter API](https://img.shields.io/badge/HeadHunter-API%20v3-orange.svg)](https://dev.hh.ru/)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ [English](#english) | [Русский](#russian)
9
+
10
+ ---
11
+
12
+ ## English
13
+
14
+ **MCP (Model Context Protocol) server for integrating HeadHunter API with Claude Code and other MCP clients.**
15
+
16
+ HeadHunter (hh.ru) is the largest job search platform in Russia and CIS countries. This MCP server provides seamless integration with HeadHunter API, enabling AI assistants to search vacancies, manage resumes, and apply to jobs on your behalf.
17
+
18
+ ### Features
19
+
20
+ - 🔍 **Advanced Vacancy Search** - Filter by location, salary, experience, employment type
21
+ - 📄 **Resume Management** - View and manage your HeadHunter resumes
22
+ - ✉️ **Job Applications** - Apply to vacancies with custom cover letters
23
+ - 🏢 **Company Information** - Get detailed employer data
24
+ - 📊 **Application Tracking** - Monitor your job application history
25
+ - 🤖 **AI-Powered Agent** - Automated vacancy hunter with intelligent matching
26
+ - 🔐 **OAuth 2.0** - Secure authorization with HeadHunter
27
+
28
+ ### Available Tools (10)
29
+
30
+ 1. **hh_search_vacancies** - Search for job vacancies
31
+ 2. **hh_get_vacancy** - Get detailed vacancy information
32
+ 3. **hh_get_employer** - Get company/employer details
33
+ 4. **hh_get_similar** - Find similar vacancies
34
+ 5. **hh_get_areas** - Get list of regions/cities
35
+ 6. **hh_get_dictionaries** - Get reference data (experience, employment types, etc.)
36
+ 7. **hh_get_resumes** - Get your resumes list
37
+ 8. **hh_get_resume** - Get detailed resume information
38
+ 9. **hh_apply_to_vacancy** - Apply to a vacancy (requires OAuth)
39
+ 10. **hh_get_negotiations** - Get application history (requires OAuth)
40
+
41
+ ### Quick Start
42
+
43
+ #### 1. Installation
44
+
45
+ ```bash
46
+ git clone https://github.com/yourusername/headhunter-mcp-server.git
47
+ cd headhunter-mcp-server
48
+ python -m venv venv
49
+ source venv/bin/activate # On Windows: venv\Scripts\activate
50
+ pip install -r requirements.txt
51
+ ```
52
+
53
+ #### 2. Get HeadHunter API Credentials
54
+
55
+ 1. Register your application at [https://dev.hh.ru/admin](https://dev.hh.ru/admin)
56
+ 2. Get Client ID, Client Secret, and App Token
57
+ 3. Copy `.env.example` to `.env` and fill in your credentials
58
+
59
+ ```bash
60
+ cp .env.example .env
61
+ # Edit .env with your credentials
62
+ ```
63
+
64
+ #### 3. Configure Claude Code
65
+
66
+ Add to your `~/.claude.json`:
67
+
68
+ ```json
69
+ {
70
+ "mcpServers": {
71
+ "headhunter": {
72
+ "type": "stdio",
73
+ "command": "/path/to/venv/bin/python",
74
+ "args": ["/path/to/headhunter-mcp-server/server.py"],
75
+ "env": {
76
+ "HH_CLIENT_ID": "your_client_id",
77
+ "HH_CLIENT_SECRET": "your_client_secret",
78
+ "HH_APP_TOKEN": "your_app_token",
79
+ "HH_REDIRECT_URI": "https://your-domain.com/oauth/callback"
80
+ }
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ #### 4. OAuth Authorization (Optional)
87
+
88
+ For job applications and resume management:
89
+
90
+ ```bash
91
+ python examples/oauth_flow.py
92
+ ```
93
+
94
+ Follow the instructions to authorize and get access tokens.
95
+
96
+ ### Usage Examples
97
+
98
+ ```bash
99
+ # Search for Python jobs in Moscow
100
+ Find 10 Python developer vacancies in Moscow with salary from 200000
101
+
102
+ # View your resumes
103
+ Show my resumes
104
+
105
+ # Get vacancy details
106
+ Show details for vacancy 126209046
107
+
108
+ # Apply to a job (after OAuth)
109
+ Apply to vacancy 126209046 with resume [resume_id] and cover letter: "Hello..."
110
+ ```
111
+
112
+ ### Vacancy Hunter Agent
113
+
114
+ Automated agent for intelligent vacancy search and analysis. See [docs/vacancy-hunter-agent.md](docs/vacancy-hunter-agent.md) for details.
115
+
116
+ **Features:**
117
+ - Analyzes multiple resumes simultaneously
118
+ - Scores vacancies by relevance (0-30 points)
119
+ - Generates CSV reports with AI-powered recommendations
120
+ - Focuses on Moscow region only
121
+
122
+ **Usage:**
123
+ ```bash
124
+ Run vacancy-hunter agent
125
+ ```
126
+
127
+ ### Project Structure
128
+
129
+ ```
130
+ headhunter-mcp-server/
131
+ ├── server.py # MCP server (10 tools)
132
+ ├── hh_client.py # HeadHunter API client
133
+ ├── requirements.txt # Python dependencies
134
+ ├── .env.example # Environment variables template
135
+ ├── examples/
136
+ │ └── oauth_flow.py # OAuth authorization script
137
+ └── docs/
138
+ └── vacancy-hunter-agent.md # Agent documentation
139
+ ```
140
+
141
+ ### Requirements
142
+
143
+ - Python 3.10+
144
+ - Claude Code or any MCP-compatible client
145
+ - HeadHunter API credentials
146
+
147
+ ### Contributing
148
+
149
+ Contributions are welcome! Please feel free to submit a Pull Request.
150
+
151
+ ### License
152
+
153
+ MIT License - see [LICENSE](LICENSE) file for details.
154
+
155
+ ### Links
156
+
157
+ - [HeadHunter API Documentation](https://dev.hh.ru/)
158
+ - [Model Context Protocol](https://modelcontextprotocol.io/)
159
+ - [Claude Code Documentation](https://docs.claude.com/en/docs/claude-code)
160
+
161
+ ---
162
+
163
+ ## Russian
164
+
165
+ **MCP сервер для интеграции HeadHunter API с Claude Code и другими MCP клиентами.**
166
+
167
+ HeadHunter (hh.ru) — крупнейшая платформа по поиску работы в России и странах СНГ. Этот MCP сервер обеспечивает бесшовную интеграцию с API HeadHunter, позволяя AI ассистентам искать вакансии, управлять резюме и откликаться на вакансии от вашего имени.
168
+
169
+ ### Возможности
170
+
171
+ - 🔍 **Расширенный поиск вакансий** - Фильтрация по местоположению, зарплате, опыту, типу занятости
172
+ - 📄 **Управление резюме** - Просмотр и управление вашими резюме на HeadHunter
173
+ - ✉️ **Отклики на вакансии** - Подача заявок с персонализированными сопроводительными письмами
174
+ - 🏢 **Информация о компаниях** - Получение детальных данных о работодателях
175
+ - 📊 **Отслеживание откликов** - Мониторинг истории ваших откликов
176
+ - 🤖 **AI-агент** - Автоматизированный поиск вакансий с умным сопоставлением
177
+ - 🔐 **OAuth 2.0** - Безопасная авторизация через HeadHunter
178
+
179
+ ### Доступные инструменты (10)
180
+
181
+ 1. **hh_search_vacancies** - Поиск вакансий
182
+ 2. **hh_get_vacancy** - Детальная информация о вакансии
183
+ 3. **hh_get_employer** - Информация о компании/работодателе
184
+ 4. **hh_get_similar** - Поиск похожих вакансий
185
+ 5. **hh_get_areas** - Список регионов/городов
186
+ 6. **hh_get_dictionaries** - Справочные данные (опыт, типы занятости и т.д.)
187
+ 7. **hh_get_resumes** - Список ваших резюме
188
+ 8. **hh_get_resume** - Детальная информация о резюме
189
+ 9. **hh_apply_to_vacancy** - Откликнуться на вакансию (требует OAuth)
190
+ 10. **hh_get_negotiations** - История откликов (требует OAuth)
191
+
192
+ ### Быстрый старт
193
+
194
+ #### 1. Установка
195
+
196
+ ```bash
197
+ git clone https://github.com/yourusername/headhunter-mcp-server.git
198
+ cd headhunter-mcp-server
199
+ python -m venv venv
200
+ source venv/bin/activate # В Windows: venv\Scripts\activate
201
+ pip install -r requirements.txt
202
+ ```
203
+
204
+ #### 2. Получение credentials HeadHunter API
205
+
206
+ 1. Зарегистрируйте приложение на [https://dev.hh.ru/admin](https://dev.hh.ru/admin)
207
+ 2. Получите Client ID, Client Secret и App Token
208
+ 3. Скопируйте `.env.example` в `.env` и заполните свои credentials
209
+
210
+ ```bash
211
+ cp .env.example .env
212
+ # Отредактируйте .env своими credentials
213
+ ```
214
+
215
+ #### 3. Настройка Claude Code
216
+
217
+ Добавьте в `~/.claude.json`:
218
+
219
+ ```json
220
+ {
221
+ "mcpServers": {
222
+ "headhunter": {
223
+ "type": "stdio",
224
+ "command": "/путь/к/venv/bin/python",
225
+ "args": ["/путь/к/headhunter-mcp-server/server.py"],
226
+ "env": {
227
+ "HH_CLIENT_ID": "ваш_client_id",
228
+ "HH_CLIENT_SECRET": "ваш_client_secret",
229
+ "HH_APP_TOKEN": "ваш_app_token",
230
+ "HH_REDIRECT_URI": "https://ваш-домен.com/oauth/callback"
231
+ }
232
+ }
233
+ }
234
+ }
235
+ ```
236
+
237
+ #### 4. OAuth авторизация (опционально)
238
+
239
+ Для откликов на вакансии и управления резюме:
240
+
241
+ ```bash
242
+ python examples/oauth_flow.py
243
+ ```
244
+
245
+ Следуйте инструкциям для авторизации и получения токенов доступа.
246
+
247
+ ### Примеры использования
248
+
249
+ ```bash
250
+ # Поиск Python вакансий в Москве
251
+ Найди 10 вакансий Python разработчика в Москве с зарплатой от 200000
252
+
253
+ # Просмотр резюме
254
+ Покажи мои резюме
255
+
256
+ # Детали вакансии
257
+ Покажи детали вакансии 126209046
258
+
259
+ # Отклик на вакансию (после OAuth)
260
+ Откликнись на вакансию 126209046 резюме [resume_id] с письмом: "Здравствуйте..."
261
+ ```
262
+
263
+ ### Vacancy Hunter Agent
264
+
265
+ Автоматизированный агент для умного поиска и анализа вакансий. Подробности в [docs/vacancy-hunter-agent.md](docs/vacancy-hunter-agent.md).
266
+
267
+ **Возможности:**
268
+ - Анализирует несколько резюме одновременно
269
+ - Оценивает релевантность вакансий (0-30 баллов)
270
+ - Генерирует CSV отчёты с AI рекомендациями
271
+ - Фокусируется только на регионе Москва
272
+
273
+ **Использование:**
274
+ ```bash
275
+ Запусти агента vacancy-hunter
276
+ ```
277
+
278
+ ### Структура проекта
279
+
280
+ ```
281
+ headhunter-mcp-server/
282
+ ├── server.py # MCP сервер (10 инструментов)
283
+ ├── hh_client.py # HeadHunter API клиент
284
+ ├── requirements.txt # Python зависимости
285
+ ├── .env.example # Шаблон переменных окружения
286
+ ├── examples/
287
+ │ └── oauth_flow.py # Скрипт OAuth авторизации
288
+ └── docs/
289
+ └── vacancy-hunter-agent.md # Документация агента
290
+ ```
291
+
292
+ ### Требования
293
+
294
+ - Python 3.10+
295
+ - Claude Code или любой MCP-совместимый клиент
296
+ - HeadHunter API credentials
297
+
298
+ ### Участие в разработке
299
+
300
+ Приветствуются любые вклады! Не стесняйтесь отправлять Pull Request.
301
+
302
+ ### Лицензия
303
+
304
+ MIT License - подробности в файле [LICENSE](LICENSE).
305
+
306
+ ### Ссылки
307
+
308
+ - [Документация HeadHunter API](https://dev.hh.ru/)
309
+ - [Model Context Protocol](https://modelcontextprotocol.io/)
310
+ - [Документация Claude Code](https://docs.claude.com/en/docs/claude-code)
311
+
312
+ ---
313
+
314
+ **Made with ❤️ for the HeadHunter and MCP community**
docs/vacancy-hunter.md ADDED
@@ -0,0 +1,150 @@
1
+ ---
2
+ name: vacancy-hunter
3
+ description: Analyzes user's resumes and finds relevant vacancies on HeadHunter, creates CSV reports with AI-powered matching scores
4
+ tools: mcp__headhunter__hh_get_resume, mcp__headhunter__hh_search_vacancies, mcp__headhunter__hh_get_vacancy, Write, Bash
5
+ model: inherit
6
+ ---
7
+
8
+ # Vacancy Hunter Agent
9
+
10
+ You are an autonomous agent that searches and analyzes job vacancies on HeadHunter for the user.
11
+
12
+ ## Your Mission
13
+
14
+ Analyze user's resumes, search for relevant vacancies in Moscow, evaluate matches, and create detailed CSV reports with recommendations.
15
+
16
+ ## Target Resumes
17
+
18
+ Always analyze these 3 resumes:
19
+ 1. **Head of Product** - ID: `7b7f2ea6ff0838f1ea0039ed1f704b31506463`
20
+ 2. **Директор по электронной коммерции** - ID: `3d8654a4ff0f05c0590039ed1f4c5957513858`
21
+ 3. **Операционный директор** - ID: `42b7d11eff0e77905f0039ed1f744a72386174`
22
+
23
+ ## Search Criteria
24
+
25
+ **Location:** Only Moscow (area=1)
26
+ **Ignore:** Salary, experience requirements
27
+ **Focus:** Job title, description, company, key skills match
28
+
29
+ ## Workflow
30
+
31
+ ### 1. Load Resumes
32
+ ```
33
+ For each resume_id:
34
+ - Call mcp__headhunter__hh_get_resume(resume_id)
35
+ - Extract: title, skills, experience, key competencies
36
+ - Create skill keywords list
37
+ ```
38
+
39
+ ### 2. Search Vacancies
40
+ ```
41
+ For each resume:
42
+ - Search by job title keywords
43
+ - Filter: area=1 (Moscow), per_page=50
44
+ - Get 50-100 relevant vacancies
45
+ ```
46
+
47
+ ### 3. Analyze Each Vacancy
48
+ ```
49
+ For each vacancy:
50
+ - Get full details with mcp__headhunter__hh_get_vacancy
51
+ - Match against resume:
52
+ * Title similarity (0-10)
53
+ * Skills overlap (0-10)
54
+ * Description relevance (0-10)
55
+ - Calculate total_score (0-30)
56
+ - Write brief AI comment (1-2 sentences)
57
+ ```
58
+
59
+ ### 4. Generate CSV Report
60
+ ```
61
+ Filename: vacancies_report_YYYY-MM-DD_HH-MM.csv
62
+ Location: /root/vacancy-reports/
63
+
64
+ Columns:
65
+ - vacancy_id: HH vacancy ID
66
+ - title: Job title
67
+ - company: Company name
68
+ - salary: Salary range or "Not specified"
69
+ - url: Direct link to vacancy
70
+ - resume_matched: Which resume (Head of Product / Ecommerce Director / COO)
71
+ - match_score: Total score (0-30)
72
+ - title_score: Title match (0-10)
73
+ - skills_score: Skills match (0-10)
74
+ - relevance_score: Description relevance (0-10)
75
+ - ai_comment: Your brief analysis
76
+ - found_at: Timestamp
77
+
78
+ Sort by: match_score DESC
79
+ Filter: Only include score >= 15 (50%+ match)
80
+ ```
81
+
82
+ ## Analysis Guidelines
83
+
84
+ **High Match (25-30):**
85
+ - Perfect title match
86
+ - 80%+ key skills overlap
87
+ - Job description perfectly aligns with resume experience
88
+
89
+ **Medium Match (20-24):**
90
+ - Similar title or role
91
+ - 50-80% skills overlap
92
+ - Good experience alignment
93
+
94
+ **Low Match (15-19):**
95
+ - Related field
96
+ - 30-50% skills overlap
97
+ - Partial experience match
98
+
99
+ **AI Comment Examples:**
100
+ - "Perfect match: Product leadership role with marketplace experience"
101
+ - "Good fit: E-commerce director with P&L responsibility"
102
+ - "Relevant: Operations role in tech company, lacks product focus"
103
+
104
+ ## Important Rules
105
+
106
+ 1. **DO NOT apply** to any vacancies
107
+ 2. **DO NOT write** cover letters
108
+ 3. **DO create** detailed CSV reports only
109
+ 4. Search 50-100 vacancies per resume (150-300 total)
110
+ 5. Report only matches with score >= 15
111
+ 6. Always include timestamp in filename
112
+ 7. Save reports to `/root/vacancy-reports/`
113
+
114
+ ## Success Metrics
115
+
116
+ - CSV file created successfully
117
+ - At least 20-50 quality matches found
118
+ - Scores are realistic and well-justified
119
+ - Comments are concise and actionable
120
+ - User can easily review and select vacancies
121
+
122
+ ## Example Output
123
+
124
+ After completion, report:
125
+ ```
126
+ ✅ Vacancy search completed!
127
+
128
+ Analyzed:
129
+ - Head of Product: 87 vacancies → 23 matches (score ≥15)
130
+ - Ecommerce Director: 64 vacancies → 18 matches
131
+ - COO: 73 vacancies → 15 matches
132
+
133
+ Total: 224 vacancies analyzed, 56 quality matches found
134
+
135
+ Report saved: /root/vacancy-reports/vacancies_report_2025-10-08_14-30.csv
136
+
137
+ Top matches:
138
+ 1. [126xxx] Product Director @ Tech Company (score: 28/30)
139
+ 2. [125xxx] Head of E-commerce @ Marketplace (score: 27/30)
140
+ 3. [124xxx] COO @ FinTech Startup (score: 26/30)
141
+ ```
142
+
143
+ ## Error Handling
144
+
145
+ - If resume not found: Skip and continue with others
146
+ - If search returns 0 results: Try broader keywords
147
+ - If API rate limit hit: Wait 60 seconds and retry
148
+ - Always complete report even if some resumes fail
149
+
150
+ Now go find the best job opportunities! 🎯
examples/README.md ADDED
@@ -0,0 +1,90 @@
1
+ # Examples
2
+
3
+ ## OAuth Authorization
4
+
5
+ To use features that require authentication (applying to vacancies, viewing resumes), you need to complete OAuth authorization.
6
+
7
+ ### oauth_flow.py
8
+
9
+ Interactive script for obtaining OAuth tokens.
10
+
11
+ **Usage:**
12
+
13
+ ```bash
14
+ python examples/oauth_flow.py
15
+ ```
16
+
17
+ **Steps:**
18
+
19
+ 1. Script generates authorization URL
20
+ 2. Open URL in browser and authorize the application
21
+ 3. Copy the authorization code from redirect URL
22
+ 4. Paste code into terminal
23
+ 5. Tokens are automatically saved to `.env`
24
+
25
+ **What you'll get:**
26
+
27
+ - `HH_ACCESS_TOKEN` - for making authenticated requests
28
+ - `HH_REFRESH_TOKEN` - for refreshing access token when it expires
29
+
30
+ **Token lifetime:** Access tokens expire after ~14 days. Use refresh token to get new access token.
31
+
32
+ ## Example Queries
33
+
34
+ Once the MCP server is configured in Claude Code, you can use natural language queries:
35
+
36
+ ### Search Vacancies
37
+
38
+ ```
39
+ Find 10 Python developer jobs in Moscow with salary above 200000
40
+ ```
41
+
42
+ ```
43
+ Search for remote Product Manager positions
44
+ ```
45
+
46
+ ### View Resumes
47
+
48
+ ```
49
+ Show my resumes
50
+ ```
51
+
52
+ ```
53
+ Show details of resume with ID abc123
54
+ ```
55
+
56
+ ### Apply to Jobs
57
+
58
+ ```
59
+ Apply to vacancy 126209046 with my Python Developer resume
60
+ ```
61
+
62
+ ```
63
+ Apply to vacancy 123456 with resume xyz789 and cover letter: "Dear Hiring Manager, I am excited to apply..."
64
+ ```
65
+
66
+ ### Track Applications
67
+
68
+ ```
69
+ Show my last 20 job applications
70
+ ```
71
+
72
+ ```
73
+ Show status of my applications from this month
74
+ ```
75
+
76
+ ## Advanced: Using Vacancy Hunter Agent
77
+
78
+ The automated agent can search and analyze vacancies across multiple resumes:
79
+
80
+ ```
81
+ Run vacancy-hunter agent
82
+ ```
83
+
84
+ The agent will:
85
+ 1. Load your specified resumes
86
+ 2. Search for relevant vacancies
87
+ 3. Score each vacancy by match quality (0-30 points)
88
+ 4. Generate CSV report with recommendations
89
+
90
+ Results are saved to `/root/vacancy-reports/` (or your configured path).