Skip to main content
Glama
Huntflow MCP Server

Huntflow MCP Server

by urfan03

MCP-сервер для Huntflow — вакансии, кандидаты и резюме ATS через ИИ

Если вы искали, как подключить Huntflow к нейросети, найти кандидата и прочитать его резюме не листая карточки в ATS — это оно. 14 инструментов и 2 скилла: вакансии, кандидаты, резюме, этапы подбора, справочники, аккаунты. Спрашиваете «кто застрял на этапе техинтервью» — получаете список, а не выгрузку в CSV.

npm CI License: MIT

Часть серии WWmcp (46 серверов).

Важно: в npm опубликована только устаревшая @theyahia/huntflow-mcp@1.1.1. Она жёстко ходит на api.huntflow.ai, игнорирует HUNTFLOW_BASE_URL и HUNTFLOW_REFRESH_TOKEN, поэтому с токеном от api.huntflow.ru всегда отвечает «неверный токен». Ставьте сервер из исходников (ниже).

Установка

Из исходников (рекомендуется)

git clone https://github.com/<your-github-user>/huntflow-mcp.git
cd huntflow-mcp
npm install   # заодно собирает dist/ (скрипт prepare)
{
  "mcpServers": {
    "huntflow": {
      "command": "node",
      "args": ["C:/path/to/huntflow-mcp/dist/index.js"],
      "env": {
        "HUNTFLOW_TOKEN": "ваш-access-token",
        "HUNTFLOW_REFRESH_TOKEN": "ваш-refresh-token",
        "HUNTFLOW_BASE_URL": "https://api.huntflow.ru/v2"
      }
    }
  }
}

Без клонирования — прямо с GitHub: "command": "npx", "args": ["-y", "github:<your-github-user>/huntflow-mcp"].

HUNTFLOW_BASE_URL: https://api.huntflow.ru/v2 (по умолчанию) или https://api.huntflow.ai/v2 — это разные системы, токен действует только на той, где он выпущен.

Claude Desktop (stdio, npm — после публикации ≥ 1.2.1)

{
  "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-mcp

Related MCP server: PeopleBox ATS MCP Server

Получение токена

Настройки HuntFlow → вкладка «API-токены» (API Tokens) → создать токен. Выданная пара включает access-токен (живёт ~7 дней) и refresh-токен (~14 дней). Сервер автоматически обновляет access-токен через POST /token/refresh при истечении и сохраняет ротированную пару в файл состояния (HUNTFLOW_TOKEN_FILE), переживая рестарты. Если задать только HUNTFLOW_TOKEN без refresh — сервер проработает до истечения access-токена (~7 дней), затем потребуется новый токен.

Переменные окружения

Переменная

Обяз.

Описание

HUNTFLOW_TOKEN

да

Access-токен (Настройки → API-токены)

HUNTFLOW_REFRESH_TOKEN

нет

Refresh-токен — включает авто-обновление при 401

HUNTFLOW_TOKEN_FILE

нет

Файл для хранения ротированной пары (по умолчанию ~/.huntflow-mcp/token.json)

HUNTFLOW_BASE_URL

нет

По умолчанию https://api.huntflow.ru/v2

HUNTFLOW_READ_ONLY

нет

1 — отключить инструменты записи (останутся 14 инструментов чтения)

NODE_OPTIONS

нет

--use-system-ca — если запросы падают с ошибкой сертификата (корпоративный прокси)

HUNTFLOW_USER_AGENT

нет

User-Agent (обязателен для API; есть дефолт)

HUNTFLOW_TIMEOUT_MS

нет

Таймаут запроса, мс (по умолчанию 10000)

HUNTFLOW_DISABLE_RATELIMIT

нет

1 — отключить клиентский лимит 10 req/s

PORT

нет

Порт HTTP-сервера (по умолчанию 3000)

HUNTFLOW_HTTP_HOST

нет

Хост привязки HTTP (по умолчанию 127.0.0.1)

HUNTFLOW_HTTP_SECRET

нет

Если задан — требует Authorization: Bearer <secret> на /mcp

HUNTFLOW_ALLOWED_HOSTS

нет

Список host:port для защиты от DNS-rebinding

Инструменты (23)

Чтение (14)

Инструмент

Описание

list_accounts

Список доступных аккаунтов

list_vacancies

Список вакансий (фильтры opened/state/mine, пагинация)

get_vacancy

Полная информация о вакансии

search_applicants

Поиск кандидатов (q + фильтры vacancy/status/tag)

list_vacancy_applicants

Кандидаты, прикреплённые к конкретной вакансии

get_applicant

Полная информация о кандидате

get_applicant_resumes

Список резюме (external) кандидата

get_resume

Полное тело конкретного резюме (external)

list_stages

Этапы воронки подбора (статусы вакансий)

list_coworkers

Сотрудники/рекрутеры аккаунта

list_sources

Справочник источников кандидатов

list_rejection_reasons

Справочник причин отказа

list_divisions

Справочник подразделений

list_tags

Справочник тегов

Запись (9)

Меняют данные в Huntflow от имени владельца токена. Удаления нет. Отключаются целиком через HUNTFLOW_READ_ONLY=1.

Инструмент

Описание

create_applicant

Создать кандидата

update_applicant

Изменить поля кандидата (только переданные)

add_applicant_to_vacancy

Прикрепить кандидата к вакансии на этап

change_applicant_status

Перевести кандидата на другой этап (отказ с причиной, найм)

add_applicant_comment

Комментарий в ленту кандидата

set_applicant_tags

Задать теги кандидата (заменяет весь список)

create_vacancy

Создать вакансию

update_vacancy

Изменить поля вакансии (только переданные)

set_vacancy_state

Закрыть / приостановить / возобновить вакансию

Списочные инструменты возвращают курированный набор полей (экономия токенов) + structuredContent; передайте raw: true для полного сырого ответа. Пагинация — параметры page/count.

Скиллы (Prompts)

Скилл

Описание

skill-applicants

Кандидаты на вакансию — таблица с этапами и сводкой

skill-vacancy-stats

Статистика по вакансии — воронка, сроки, конверсия

Разработка

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


Часть WWmcp · Telegram: @vhodvai

Available Tools

23 tools
add_applicant_commentA

Добавить комментарий в ленту кандидата (по вакансии или личную заметку).

Inputs: comment (required), account_id (required), applicant_id (required), vacancy_id.

add_applicant_to_vacancyC

Прикрепить кандидата к вакансии на указанный этап подбора.

Inputs: status_id (required), account_id (required), vacancy_id (required), applicant_id (required), +4 more.

change_applicant_statusA

Перевести кандидата на другой этап подбора по вакансии (в т.ч. отказ с причиной или найм).

Inputs: status_id (required), account_id (required), vacancy_id (required), applicant_id (required), +4 more.

create_applicantA

Создать кандидата в базе. Перед созданием проверьте через search_applicants, что его ещё нет.

Inputs: account_id (required), email, money, phone, +6 more.

create_vacancyD

Создать вакансию.

Inputs: position (required), account_id (required), body, money, +9 more.

get_applicantC
Read-only

Полная информация о кандидате.

Inputs: account_id (required), applicant_id (required).

get_applicant_resumesC
Read-only

Резюме кандидата (все прикреплённые external).

Inputs: account_id (required), applicant_id (required), raw. Returns: page, count, items, total, +2 more

get_resumeB
Read-only

Полное тело конкретного резюме (external) кандидата.

Inputs: account_id (required), external_id (required), applicant_id (required).

get_vacancyC
Read-only

Полная информация о вакансии.

Inputs: account_id (required), vacancy_id (required).

list_accountsC
Read-only

Список доступных аккаунтов HuntFlow.

Inputs: raw. Returns: page, count, items, total, +2 more

list_coworkersC
Read-only

Сотрудники/рекрутеры аккаунта.

Inputs: account_id (required), raw, page, count. Returns: page, count, items, total, +2 more

list_divisionsC
Read-only

Справочник подразделений (отделов).

Inputs: account_id (required), raw. Returns: page, count, items, total, +2 more

list_rejection_reasonsC
Read-only

Справочник причин отказа.

Inputs: account_id (required), raw. Returns: page, count, items, total, +2 more

list_sourcesC
Read-only

Справочник источников кандидатов.

Inputs: account_id (required), raw. Returns: page, count, items, total, +2 more

list_stagesC
Read-only

Этапы воронки подбора (статусы вакансий).

Inputs: account_id (required), raw. Returns: page, count, items, total, +2 more

list_tagsC
Read-only

Справочник тегов аккаунта.

Inputs: account_id (required), raw. Returns: page, count, items, total, +2 more

list_vacanciesB
Read-only

Список вакансий в HuntFlow (по умолчанию открытые).

Inputs: account_id (required), raw, mine, page, +3 more. Returns: page, count, items, total, +2 more

list_vacancy_applicantsC
Read-only

Кандидаты, прикреплённые к конкретной вакансии.

Inputs: account_id (required), vacancy_id (required), raw, page, +2 more. Returns: page, count, items, total, +2 more

search_applicantsA
Read-only

Поиск кандидатов по имени/email/телефону и фильтрам (вакансия, этап, тег).

Inputs: account_id (required), q, raw, tag, +4 more. Returns: page, count, items, total, +2 more

set_applicant_tagsA
Idempotent

Задать теги кандидата. Заменяет весь список тегов — передавайте и те, что нужно сохранить.

Inputs: tag_ids (required), account_id (required), applicant_id (required).

set_vacancy_stateC

Закрыть, приостановить или возобновить вакансию.

Inputs: action (required), account_id (required), vacancy_id (required), date, +3 more.

update_applicantB
Idempotent

Изменить поля кандидата (имя, контакты, должность, зарплата). Меняются только переданные поля.

Inputs: account_id (required), applicant_id (required), email, money, +7 more.

update_vacancyA
Idempotent

Изменить поля вакансии (название, зарплата, описание, приоритет). Меняются только переданные поля.

Inputs: account_id (required), vacancy_id (required), body, money, +8 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 23 tools

    Disambiguation4/5

    Most tools target clearly distinct resources/actions, and descriptions clarify overlaps such as search_applicants versus list_vacancy_applicants. A few pairs (get_applicant_resumes vs get_resume, list_vacancies vs get_vacancy) are close but still distinguishable.

    Naming Consistency5/5

    Tool names consistently use snake_case with predictable verb_noun patterns: list_, get_, search_, create_, update_, add_, change_, set_. The few noun-only variants still fit the same readable convention.

    Tool Count4/5

    At 23 tools the surface is somewhat heavy, but the ATS domain has many legitimate entities and reference lists. Each tool appears to serve a distinct workflow rather than being redundant.

    Completeness4/5

    Core applicant and vacancy workflows are well covered: search, get, create, update, attach to vacancy, move stage, comment, tags, and vacancy state. Gaps exist around deletion and richer comment/resume management, but the main lifecycle is usable.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with BambooHR's API through natural language queries. Provides access to employee data, time off management, company files, and HR operations with comprehensive tools for workforce management.
      108 npm
      1
      MIT
    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables interaction with the PeopleBox Applicant Tracking System (ATS) to manage candidates, positions, and recruitment pipelines. It provides tools for searching candidate profiles, adding notes, and tracking application timelines through natural language interfaces.
      -
    • A
      license
      C
      quality
      B
      maintenance
      Integrates with HuntFlow ATS to manage vacancies, candidates, resumes, and recruitment stages via 7 tools and 2 skill prompts.
      14
      37 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI assistants to fetch and structure job postings from major ATS platforms (Greenhouse, Lever, Ashby, etc.) directly, eliminating copy-paste and context loss.
      90 npm
      1
      MIT