HuntFlow MCP Server
This server provides integration with the HuntFlow ATS (Applicant Tracking System) API, enabling recruitment and hiring workflow management through 14 tools and 2 skill prompts.
Account & Vacancy Management
list_accounts— Retrieve all accessible HuntFlow accountslist_vacancies— Browse vacancies with filters (open status, state, assigned to current user) and paginationget_vacancy— Fetch full details about a specific vacancy
Candidate & Resume Management
search_applicants— Search candidates by name or email, with filters for vacancy, status, and tagslist_vacancy_applicants— List candidates attached to a specific vacancyget_applicant— Retrieve complete information about a specific candidateget_applicant_resumes— Get all resumes attached to a candidateget_resume— Fetch the full body of a specific external resume
Reference Directories & Pipeline
list_stages— View recruitment pipeline stages (vacancy statuses)list_coworkers— View recruiters and employees in an accountlist_sources— Browse the candidate source reference directorylist_rejection_reasons— View rejection reason reference datalist_divisions— Browse organizational divisionslist_tags— View available candidate tags
Skill Prompts
skill-applicants— Generate a table of candidates for a vacancy with stages and summaryskill-vacancy-stats— Produce vacancy statistics including funnel, timelines, and conversion rates
Key Features: Returns curated fields by default to save tokens (use raw: true for full API responses); supports pagination via page/count parameters; includes automatic token refresh and rate limiting (10 req/s).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@HuntFlow MCP Serverlist my open vacancies"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-сервер для Huntflow — вакансии, кандидаты и резюме ATS через ИИ
Если вы искали, как подключить Huntflow к нейросети, найти кандидата и прочитать его резюме не листая карточки в ATS — это оно. 14 инструментов и 2 скилла: вакансии, кандидаты, резюме, этапы подбора, справочники, аккаунты. Спрашиваете «кто застрял на этапе техинтервью» — получаете список, а не выгрузку в CSV.
Часть серии WWmcp (46 серверов).
Установка
Claude Desktop (stdio)
{
"mcpServers": {
"huntflow": {
"command": "npx",
"args": ["-y", "@theyahia/huntflow-mcp"],
"env": {
"HUNTFLOW_TOKEN": "ваш-access-token",
"HUNTFLOW_REFRESH_TOKEN": "ваш-refresh-token"
}
}
}
}Streamable HTTP
HUNTFLOW_TOKEN=ваш-токен npx @theyahia/huntflow-mcp --http
# POST /mcp, GET /health на 127.0.0.1:3000 (PORT=...)Smithery
npx @smithery/cli install @theyahia/huntflow-mcpRelated MCP server: HeadHunter API MCP Server
Получение токена
Настройки HuntFlow → вкладка «API-токены» (API Tokens) → создать токен. Выданная пара включает access-токен (живёт ~7 дней) и refresh-токен (~14 дней). Сервер автоматически обновляет access-токен через POST /token/refresh при истечении и сохраняет ротированную пару в файл состояния (HUNTFLOW_TOKEN_FILE), переживая рестарты. Если задать только HUNTFLOW_TOKEN без refresh — сервер проработает до истечения access-токена (~7 дней), затем потребуется новый токен.
Переменные окружения
Переменная | Обяз. | Описание |
| да | Access-токен (Настройки → API-токены) |
| нет | Refresh-токен — включает авто-обновление при 401 |
| нет | Файл для хранения ротированной пары (по умолчанию |
| нет | По умолчанию |
| нет | User-Agent (обязателен для API; есть дефолт) |
| нет | Таймаут запроса, мс (по умолчанию 10000) |
| нет |
|
| нет | Порт HTTP-сервера (по умолчанию 3000) |
| нет | Хост привязки HTTP (по умолчанию |
| нет | Если задан — требует |
| нет | Список host:port для защиты от DNS-rebinding |
Инструменты (14)
Инструмент | Описание |
| Список доступных аккаунтов |
| Список вакансий (фильтры |
| Полная информация о вакансии |
| Поиск кандидатов ( |
| Кандидаты, прикреплённые к конкретной вакансии |
| Полная информация о кандидате |
| Список резюме (external) кандидата |
| Полное тело конкретного резюме (external) |
| Этапы воронки подбора (статусы вакансий) |
| Сотрудники/рекрутеры аккаунта |
| Справочник источников кандидатов |
| Справочник причин отказа |
| Справочник подразделений |
| Справочник тегов |
Списочные инструменты возвращают курированный набор полей (экономия токенов) + structuredContent; передайте raw: true для полного сырого ответа. Пагинация — параметры page/count.
Скиллы (Prompts)
Скилл | Описание |
| Кандидаты на вакансию — таблица с этапами и сводкой |
| Статистика по вакансии — воронка, сроки, конверсия |
Разработка
npm install
npm test # vitest
npm run typecheck # tsc --noEmit
npm run lint # eslint
npm run format # prettier --write
npm run dev # tsx src/index.ts
npm run build # tscЛицензия
MIT
Available Tools
14 toolsget_applicantC
Полная информация о кандидате.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | ID аккаунта | |
| applicant_id | Yes | ID кандидата |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It only states 'full information' without mentioning return format, side effects, authentication needs, or rate limits, which is insufficient for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, its brevity sacrifices completeness, as it fails to provide necessary behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for a tool with no output schema or annotations. It does not explain what 'full information' entails or how the returned data differs from sibling tools, leaving the agent with insufficient context for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have clear descriptions. The tool description adds no additional meaning beyond the schema, but the baseline is 3 given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Полная информация о кандидате' clearly states the tool returns full details about a candidate, distinguishing it from sibling tools like get_applicant_resumes which is more specific. However, the verb is implied by the tool name rather than explicitly stated in the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., search_applicants for filtered queries, get_applicant_resumes for resumes only). The description lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_applicant_resumesC
Резюме кандидата (все прикреплённые external).
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| account_id | Yes | ID аккаунта HuntFlow | |
| applicant_id | Yes | ID кандидата |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral aspects beyond the basic function. It does not mention that this is a read-only operation, nor any details about filtering, sorting, pagination, or response format. Since there are no annotations, the description carries the full burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single short phrase. It contains no redundant words or unnecessary details, making it efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks critical context such as clarifying what 'external' means, whether the response includes multiple items, or any indication of the response structure. It is too sparse for an agent to understand the full scope of the tool without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter descriptions are provided for all three parameters (account_id, applicant_id, raw), covering 100% of the schema. The tool description itself adds no extra context about how these parameters are used, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves a candidate's resume, specifically all attached external ones. Although brief, it clearly identifies the resource and distinguishes it from other tools like get_resume which likely retrieves a single resume. The verb is implied by the tool name and the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_resume or get_applicant. It does not mention any conditions, prerequisites, or typical scenarios, leaving the agent to infer usage from the name and parameter structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resumeB
Полное тело конкретного резюме (external) кандидата.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | ID аккаунта | |
| external_id | Yes | ID резюме (external) из get_applicant_resumes | |
| applicant_id | Yes | ID кандидата |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. The description is a noun phrase and does not explicitly state whether the operation is read-only or has side effects, though the 'get' prefix suggests it is safe. It does not mention any potential errors, rate limits, or other behavioral considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the essential purpose without any extraneous words. It is efficiently structured and easy to read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the description is largely complete for understanding what it does and what inputs it requires. It does not specify the output format, but no output schema is provided, and the description's brevity is acceptable for a straightforward retrieval. However, it could benefit from a note about when this tool is appropriate, particularly in relation to sibling resume-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions that identify them as IDs, but they are terse and do not explain the relationships between account_id, applicant_id, and external_id. The external_id description references get_applicant_resumes, which provides some context, but the need for all three parameters remains unclear. The descriptions cover the basic meaning but lack detail about how the parameters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves the full body of a specific external resume for a candidate. It is distinct from sibling tools like get_applicant_resumes, which likely lists resumes, and the mention of 'external' adds specificity. However, it does not explicitly use a verb like 'gets' or 'fetches', though the tool name implies this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as get_applicant_resumes. It does not mention that the external_id must come from a prior call to get_applicant_resumes, although the parameter description hints at this. The agent is left to infer the appropriate use case without direct instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vacancyC
Полная информация о вакансии.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | ID аккаунта | |
| vacancy_id | Yes | ID вакансии |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description is minimal. It does not disclose that this is a read operation, nor does it mention authentication, side effects, or rate limits, leaving the agent uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence is concise and to the point. However, it is not front-loaded with the most critical information for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two simple parameters and no output schema, the description is minimally adequate. It does not explain what 'full information' includes, but for a straightforward retrieval tool, it may suffice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions for account_id and vacancy_id. The tool description adds no additional meaning beyond the schema, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Полная информация о вакансии' clearly states the tool retrieves full vacancy details. The verb 'get' and specific resource distinguish it from list_vacancies, though no explicit contrast is made.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like list_vacancies. The description lacks context for appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsC
Список доступных аккаунтов HuntFlow.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the sole source of behavioral info. It only indicates a listing operation but doesn't disclose read-only nature, return format, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy. It is appropriately concise, though it could benefit from a more explicit verb structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is minimal. It lacks context about what accounts are, what the output looks like, or any use-case information, making it incomplete for a user unfamiliar with the system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers the 'raw' parameter fully, and the tool description adds no extra meaning. Since coverage is 100%, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List of available HuntFlow accounts', which clearly identifies the action (list) and the resource (accounts). It is concise but lacks a verb form; however, the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like list_vacancies or list_coworkers. There is no mention of scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_coworkersC
Сотрудники/рекрутеры аккаунта.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| page | No | Номер страницы (с 1) | |
| count | No | Кол-во на странице | |
| account_id | Yes | ID аккаунта HuntFlow |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description must carry the burden of disclosing side effects. The description only states the topic and does not indicate whether the operation is read-only, whether it modifies data, or has any other behavioral implications. No such information is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, composed of a single short phrase. It wastes no words and is easy to parse. While it could be slightly more structured with a verb, the brevity aligns with the goal of super-tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (4 parameters, output schema present), the description is minimal. It does not explain the output structure beyond the schema, nor does it provide practical context such as when to use pagination or how to interpret results. The description is too sparse to be considered complete from a usage standpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all four parameters (account_id, page, count, raw), achieving 100% coverage. The tool description adds no additional parameter semantics, so a baseline score of 3 is appropriate. The parameter descriptions themselves are clear enough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Employees/recruiters of the account' clearly identifies the resource (employees/recruiters) and the scope (an account). It effectively conveys the purpose of listing coworkers, though it lacks an explicit verb. It is distinct enough from sibling tools like list_accounts or list_vacancies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not state when to use this tool, nor does it contrast with alternatives such as list_accounts or search_applicants. It offers no context about pagination, filtering, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_divisionsB
Справочник подразделений (отделов).
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| account_id | Yes | ID аккаунта HuntFlow |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It does not state whether the operation is read-only, what the response format is, or if any side effects occur. The 'list_' prefix suggests read-only, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, containing only a single noun phrase with no redundant words. It earns full marks for brevity and absence of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal, lacking details about the response structure or any special behavior (e.g., pagination, ordering). While the tool name and sibling context provide some context, the description alone does not fully equip an agent to understand edge cases or expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are described clearly: raw indicates returning the full uncurated response, and account_id specifies the HuntFlow account ID. The schema covers 100% of parameters with meaningful descriptions, exceeding the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Directory of divisions (departments)' clearly indicates the tool returns a list of divisions, matching its name. It is concise but sufficient to understand the core purpose, though a more explicit verb like 'retrieve' would be clearer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus sibling tools such as list_stages or list_sources. No prerequisites or contextual usage hints are given, leaving the agent to infer applicability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rejection_reasonsD
Справочник причин отказа.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| account_id | Yes | ID аккаунта HuntFlow |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, and the description gives no indication of behavior such as read-only, side effects, or data returned. The tool could perform any operation; the single phrase does not disclose whether it is safe, deterministic, or what side effects might occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (one phrase), which is concise in word count but too sparse to convey any actionable meaning. It is front-loaded but fails to include even a verb, so it does not effectively earn its place as a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is grossly incomplete. It does not specify what the tool returns (e.g., a list of rejection reasons), any filtering or ordering, or how it relates to other tools. An agent cannot infer the tool's basic function from this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents both parameters: 'account_id' is described as the HuntFlow account ID, and 'raw' is described as returning the full raw response without curation. Since schema coverage is 100%, the baseline of 3 applies. The description adds no further semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Справочник причин отказа' is a noun phrase meaning 'Reference book of rejection reasons.' It does not state any verb or action, so it is unclear whether the tool lists, retrieves, or modifies data. This fails to convey the tool's fundamental purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool compared to the many sibling tools (e.g., list_vacancies, search_applicants). It does not mention any conditions, contexts, or alternatives, leaving an agent without direction on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesC
Справочник источников кандидатов.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| account_id | Yes | ID аккаунта HuntFlow |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description gives no information about side effects, read-only behavior, authentication requirements, pagination, or rate limits. The agent cannot infer the behavioral contract from this description alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief and contains no redundant or excessive content. It is front-loaded with the core resource name, though it lacks action-oriented wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too minimal to be contextually complete. It omits expected list-behavior details such as pagination, ordering, filtering, return shape, and any relationship to the account_id parameter. An agent would likely need to inspect the output schema or make assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the two parameters (account_id and raw) with their types and descriptions, so schema coverage is high. The description adds no additional meaning beyond the schema, keeping this at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name 'list_sources' clearly indicates a listing action for source resources, but the description 'Справочник источников кандидатов' is a noun phrase rather than an explicit verb phrase. It identifies the resource but does not fully state what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling list tools such as list_vacancies, list_stages, or list_tags. No use cases or alternative selection criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stagesD
Этапы воронки подбора (статусы вакансий).
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| account_id | Yes | ID аккаунта HuntFlow |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description gives no information about side effects, required permissions, output format, pagination, or error behavior. Since no annotations are present, the description carries the full burden but fails to disclose any behavioral details beyond the basic name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, consisting of a single noun phrase. While it is concise, it lacks any structural elements such as a verb, a sentence, or additional context. It is too minimal to be considered well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for a tool with many siblings. It does not specify what the stages are, how they relate to vacancies, whether they are ordered, or what format the response will be in. Without an output schema or additional explanation, the context is insufficient for an agent to understand the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter descriptions in the input schema are complete (100% coverage) for both 'raw' and 'account_id', but the tool description adds no additional meaning. The description of 'raw' is provided only in the schema, not in the tool description, so the tool description itself does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Stages of the recruitment funnel (vacancy statuses)' clearly identifies the purpose of listing funnel stages, but it is a noun phrase rather than an explicit action verb. It conveys the general concept without specifying what is returned or how it differs from similar listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as list_sources, list_rejection_reasons, or list_divisions. There is no mention of typical use cases, prerequisites, or scenarios where this tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsD
Справочник тегов аккаунта.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| account_id | Yes | ID аккаунта HuntFlow |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description gives no indication of side effects, read-only nature, permissions required, or any behavioral constraints. It does not mention what the response contains or whether any data is modified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase), which is concise but too vague to be informative. The structure is simple, but the lack of substance makes it ineffective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not provide enough context for an agent to understand the expected output, pagination, sorting, or any special behavior. Even though an output schema exists, the description itself lacks essential details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have descriptions: 'raw' explains it returns the full raw response without curation, and 'account_id' identifies the HuntFlow account. However, the descriptions are minimal and do not clarify default values or when 'raw' should be set to true.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Справочник тегов аккаунта' (Account tags directory) is vague and does not explicitly state that the tool lists tags. While the tool name suggests listing, the description alone does not clearly convey the primary purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of typical use cases or relationships to sibling tools like list_sources or list_rejection_reasons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vacanciesC
Список вакансий в HuntFlow (по умолчанию открытые).
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| mine | No | Только вакансии, где я участник | |
| page | No | Номер страницы (с 1) | |
| count | No | Кол-во на странице (макс 100) | |
| state | No | Фильтр по состоянию (альтернатива opened) | |
| opened | No | Только открытые вакансии | |
| account_id | Yes | ID аккаунта HuntFlow |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions no side effects, permissions, rate limits, or pagination behavior, leaving the agent without insight into what happens when the tool is invoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence without redundant information. It is appropriately sized for a simple list operation, though it lacks additional structure to highlight key aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has multiple parameters (including filters like state, opened, mine) and an output schema, the description is too sparse. It does not mention response format, pagination, or how the parameters relate to the returned data, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full descriptions for all 7 parameters (100% coverage). The tool description adds no additional meaning or clarification beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists vacancies in HuntFlow, with a note about default open state. It is distinct enough from siblings like get_vacancy and list_accounts, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as search_applicants or get_vacancy. The description only provides a basic list function without any usage context or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vacancy_applicantsC
Кандидаты, прикреплённые к конкретной вакансии.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Вернуть полный сырой ответ без курирования | |
| page | No | Номер страницы (с 1) | |
| count | No | Кол-во на странице (макс 100) | |
| status | No | Фильтр по ID этапа подбора | |
| account_id | Yes | ID аккаунта HuntFlow | |
| vacancy_id | Yes | ID вакансии |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no information about side effects, pagination, filtering, or output format. With no annotations, this leaves the agent uninformed about behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, consisting of a single noun phrase. While concise, it lacks essential verbs and clarifiers, making it under-informative rather than effectively concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fails to mention that the tool supports pagination (page, count), filtering by status, and raw output. Given the tool's moderate complexity, this information is necessary for correct usage, and its absence makes the description incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover all six parameters with clear definitions. The tool description adds no additional context about parameters, so it neither improves nor detracts from the schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Candidates attached to a specific vacancy' identifies the resource (candidates) and scope (vacancy) but does not explicitly state the action (list/get). This makes it somewhat clear but relies on the tool name to infer the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like search_applicants. The description lacks any conditional usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_applicantsB
Поиск кандидатов по имени/email/телефону и фильтрам (вакансия, этап, тег).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Поиск по имени, email или телефону | |
| raw | No | Вернуть полный сырой ответ без курирования | |
| tag | No | Фильтр по ID тега | |
| page | No | Номер страницы (с 1) | |
| count | No | Кол-во на странице (макс 100) | |
| status | No | Фильтр по ID этапа подбора | |
| vacancy | No | Фильтр по ID вакансии | |
| account_id | Yes | ID аккаунта HuntFlow |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| count | No | |
| items | No | |
| total | No | |
| total_items | No | |
| next_page_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly indicates a search operation, implying read-only behavior. However, with no annotations, the description carries the full burden for behavioral transparency; it does not explicitly state side effects (e.g., no modification) or mention result format nuances like the 'raw' parameter's effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's core function and filtering criteria with no redundancy or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and the rich schema documentation, the description is largely complete for an agent to understand the purpose. It could slightly benefit from explicitly stating that results are a list of candidates or that pagination is supported, but these are indirectly inferable from the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a meaningful description. The tool description itself adds no extra parameter insight beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (candidates) with clear filtering dimensions (name/email/phone, vacancy, stage, tag). However, it does not explicitly differentiate from sibling tools like list_vacancy_applicants, which may also return candidate lists in a narrower context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives such as list_vacancy_applicants or get_applicant. An agent is left to infer the appropriate context from the tool's name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
v1.1.1- Changed
get_applicant_resumes2 fields changed- added
Input schema / properties / rawAdded value: +{ + "description": "Вернуть полный сырой ответ без курирования", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "items": { + "items": { + "additionalProperties": true, + "properties": { + "account_source": { + "type": [ + "number", + "null" + ] + }, + "auth_type": { + "type": [ + "string", + "null" + ] + }, + "created": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "number" + }, + "updated": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + "next_page_cursor": { + "type": [ + "string", + "null" + ] + }, + "page": { + "type": [ + "number", + "null" + ] + }, + "total": { + "type": [ + "number", + "null" + ] + }, + "total_items": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Added
get_resume - Changed
list_accounts3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / rawAdded value: +{ + "description": "Вернуть полный сырой ответ без курирования", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "items": { + "items": { + "additionalProperties": true, + "properties": { + "id": { + "type": "number" + }, + "member_type": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "nick": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + "next_page_cursor": { + "type": [ + "string", + "null" + ] + }, + "page": { + "type": [ + "number", + "null" + ] + }, + "total": { + "type": [ + "number", + "null" + ] + }, + "total_items": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Added
list_coworkers - Added
list_divisions - Added
list_rejection_reasons - Added
list_sources - Changed
list_stages2 fields changed- added
Input schema / properties / rawAdded value: +{ + "description": "Вернуть полный сырой ответ без курирования", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "items": { + "items": { + "additionalProperties": true, + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "order": { + "type": [ + "number", + "null" + ] + }, + "removed": { + "type": [ + "boolean", + "null" + ] + }, + "type": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + "next_page_cursor": { + "type": [ + "string", + "null" + ] + }, + "page": { + "type": [ + "number", + "null" + ] + }, + "total": { + "type": [ + "number", + "null" + ] + }, + "total_items": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Added
list_tags - Changed
list_vacancies6 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Количество"New value: +"Кол-во на странице (макс 100)" - added
Input schema / properties / mineAdded value: +{ + "description": "Только вакансии, где я участник", + "type": "boolean" +} - added
Input schema / properties / pageAdded value: +{ + "default": 1, + "description": "Номер страницы (с 1)", + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / rawAdded value: +{ + "description": "Вернуть полный сырой ответ без курирования", + "type": "boolean" +} - added
Input schema / properties / stateAdded value: +{ + "description": "Фильтр по состоянию (альтернатива opened)", + "enum": [ + "OPEN", + "CLOSED", + "HOLD" + ], + "type": "string" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "items": { + "items": { + "additionalProperties": true, + "properties": { + "company": { + "anyOf": [ + { + "type": [ + "string", + "number" + ] + }, + { + "type": "null" + } + ] + }, + "created": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "number" + }, + "money": { + "$ref": "#/properties/items/items/properties/company" + }, + "position": { + "type": [ + "string", + "null" + ] + }, + "priority": { + "type": [ + "number", + "null" + ] + }, + "state": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + "next_page_cursor": { + "type": [ + "string", + "null" + ] + }, + "page": { + "type": [ + "number", + "null" + ] + }, + "total": { + "type": [ + "number", + "null" + ] + }, + "total_items": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
- Added
list_vacancy_applicants - Changed
search_applicants8 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Количество"New value: +"Кол-во на странице (макс 100)" - added
Input schema / properties / pageAdded value: +{ + "default": 1, + "description": "Номер страницы (с 1)", + "minimum": 1, + "type": "integer" +} - changed
Input schema / properties / q / descriptionPrevious value: -"Поиск по имени или email"New value: +"Поиск по имени, email или телефону" - added
Input schema / properties / rawAdded value: +{ + "description": "Вернуть полный сырой ответ без курирования", + "type": "boolean" +} - added
Input schema / properties / statusAdded value: +{ + "description": "Фильтр по ID этапа подбора", + "type": "number" +} - added
Input schema / properties / tagAdded value: +{ + "description": "Фильтр по ID тега", + "type": "number" +} - added
Input schema / properties / vacancyAdded value: +{ + "description": "Фильтр по ID вакансии", + "type": "number" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "count": { + "type": [ + "number", + "null" + ] + }, + "items": { + "items": { + "additionalProperties": true, + "properties": { + "created": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "first_name": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "number" + }, + "last_name": { + "type": [ + "string", + "null" + ] + }, + "middle_name": { + "type": [ + "string", + "null" + ] + }, + "phone": { + "type": [ + "string", + "null" + ] + }, + "position": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + "next_page_cursor": { + "type": [ + "string", + "null" + ] + }, + "page": { + "type": [ + "number", + "null" + ] + }, + "total": { + "type": [ + "number", + "null" + ] + }, + "total_items": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" +}
7 tool updates
v1.1.0- First observed
get_applicant - First observed
get_applicant_resumes - First observed
get_vacancy - First observed
list_accounts - First observed
list_stages - First observed
list_vacancies - First observed
search_applicants
TDQS
Scored across 14 tools
Each tool has a clear, unique purpose covering vacancies, applicants, resumes, and reference data with no overlapping functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_vacancy, list_tags, search_applicants), making them predictable and readable.
14 tools is within the recommended 3-15 range and appropriate for the breadth of recruitment data exposed; no redundant or unnecessary tools.
The toolkit is entirely read/search/list-oriented; it lacks write operations such as creating or updating applicants/vacancies, changing statuses, or adding notes, which are core to a recruitment workflow.
Maintenance
Related MCP Connectors
7 recruiting tools over one MCP endpoint: ATS boards, LinkedIn jobs, profiles, companies, Naukri.
Official 100Hires MCP: AI ATS & Recruitment Software for candidates, jobs, applications, interviews.
AI resume triage for recruiters. Query your candidate pool from Claude or ChatGPT.
Recruiting tools for candidate sourcing, enrichment, ATS workflows, campaigns, and outreach.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search job vacancies, manage resumes, and apply to jobs on HeadHunter (hh.ru), Russia's largest job search platform. Includes OAuth 2.0 integration for secure job applications and an automated vacancy hunter agent with intelligent matching.30MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to access and manage HeadHunter job platform data, including vacancies, resumes, negotiations, and employer settings via 167+ tools.83 npm5MIT
- FlicenseAqualityDmaintenanceEnables to interact with hh.ru (a Russian job platform) through browser automation, allowing users to search for jobs, manage resumes, apply to vacancies with cover letters, and track application statuses via natural language.93-
- FlicenseNot gradedqualityCmaintenanceEnables searching for jobs in Russia and remote positions from AI assistants using multiple job platforms (hh.ru, Trudvsem, SuperJob, and remote job aggregators).1-