ats-mcp-server
by Alexvozhak
README.md
# ats-mcp-server
MCP-сервер, агрегирующий вакансии напрямую из публичных API систем найма (ATS) и
джоб-бордов. Один запрос — вакансии из нескольких источников в едином формате, без
парсинга HTML и без сторонних агрегаторов.
Сервер отдаёт данные через Model Context Protocol, поэтому подключается к любому
MCP-клиенту (Claude и т.п.): клиент вызывает ручку, получает структурированный список
вакансий и работает с ним дальше.
## Источники
- **ATS** (публичные API): Greenhouse, Ashby, Lever, Workable
- **Джоб-борды**: hh.ru, Bayt
Каждый источник — за отдельным провайдером с единым интерфейсом, поэтому добавить новый
источник значит написать один класс-провайдер.
## Ручки MCP
- `search_all` — поиск по всем ATS-источникам сразу
- `search_hh` — поиск по hh.ru
- `get_job_details` — детали вакансии по идентификатору
- `get_stats` — статистика по собранным вакансиям
- `exclude_jobs` / `unexclude_job` — скрыть/вернуть вакансии в выдаче
## Стек
TypeScript, Node.js 24, MCP SDK, Zod (схемы и валидация), SQLite (хранение),
Meilisearch (поиск), Vitest (тесты).
## Установка
```bash
npm ci
cp .env.example .env # заполнить ключи (см. .env.example)
docker compose up -d # Meilisearch и сопутствующие сервисы
npm run build
```
## Запуск и разработка
```bash
npm run dev # сервер в watch-режиме (tsx)
npm start # собранная версия (dist/)
npm run test:run # тесты (vitest)
npm run check # tsc --noEmit + eslint + knip
npm run lint:fix # автоправка линтера
```
Экспериментальные проверки провайдеров — в `src/poc/` (`npm run poc:greenhouse`,
`poc:ashby`, `poc:lever`, `poc:workable`, `poc:all`).
## Лицензия
MIT — файл `LICENSE`.
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues