The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the AI HR Management Toolkit listing page.
AI-powered resume parser & full Applicant Tracking System with 21 MCP tools. Parse PDFs, extract skills, detect patterns, score candidates, and manage a complete hiring pipeline — all from your AI assistant, no manual work required.
Live demo: https://ai-hr-management-toolkit.vercel.app
You have 50 resumes to screen. Your AI assistant can reason about candidates — but it cannot open PDFs, extract structured data, or track pipeline stages. This toolkit bridges that gap.
Give your AI assistant 21 tools covering the entire hiring workflow:
20 of 21 tools are 100% algorithmic — no LLM calls, no API keys required. The AI calls tools, interprets the results, and delivers analysis. You just ask questions.
No installation needed. Point your MCP client at the package:
Claude Desktop — Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
Example usage:
Cursor — Add to .cursor/mcp.json in your project root:
VS Code Copilot — Create .vscode/mcp.json in your project root:
VS Code users: Run the
npxcommand from a directory that contains apackage.json(i.e. any project root). Thecwdkey in.vscode/mcp.jsoncan override the working directory if needed.
Windsurf / other MCP clients — Use the same npx pattern above.
Works from any project directory (requires a package.json in the working directory):
Install once, use from any directory:
Deploy the Next.js app and use the Streamable HTTP transport:
Test locally:
Web UI at http://localhost:3000. MCP endpoint at http://localhost:3000/api/mcp. No .env needed — configure API keys in the UI or pass them per tool call.
All tools return structured JSON with next_steps hints so the AI knows what to call next.
| Tool | What it does | AI? |
|---|---|---|
parse_resume | Parse PDF / DOCX / TXT / MD / URL → raw text + contacts, keywords, section map | No |
batch_parse_resumes | Parse up to 20 files in one call, full pipeline on each | No |
inspect_pipeline | Run the 5-stage analysis pipeline → confidence scores, entity counts, data quality report | No |
| Tool | What it does | AI? |
|---|---|---|
analyze_resume | Master analysis tool with selectable aspects: keywords (TF-IDF + bigrams), patterns (date ranges, metrics, team sizes, career trajectory), entities (NER with 12 types + context disambiguation), skills (13 categories with proficiency estimation), experience (structured timeline), similarity (cosine, Jaccard, TF-IDF overlap vs. job description), or all | No |
analyze_resumeconsolidates what were previously 7 separate tools (extract_keywords,detect_patterns,classify_entities,extract_skills_structured,extract_experience_structured,compute_similarity,analyze_resume_comprehensive) into a single entry point with aspect selection.
| Tool | What it does | AI? |
|---|---|---|
assess_candidate | Score against up to 8 weighted criteria axes → weighted total + pass / review / reject decision | Optional |
| Tool | What it does | AI? |
|---|---|---|
export_results | Export structured parse results to JSON or CSV | No |
send_email | Send results via SMTP (config passed per call — no server-side secrets stored) | No |
| Tool | What it does | AI? |
|---|---|---|
ats_manage_jobs | Full CRUD for job postings: create, read, update, delete, list, search by title/department/status | No |
| Tool | What it does | AI? |
|---|---|---|
ats_manage_candidates | CRUD + analytics: add, update, move stage, bulk-move, filter, rank, compare, recommend stage changes, summarize | No |
ats_analytics | Unified dashboard + pipeline analytics: stage distribution, conversion rates, avg time-in-stage, bottleneck detection, offer acceptance rate | No |
ats_search | Global full-text search across all ATS entities (candidates, jobs, interviews, offers, notes) | No |
| Tool | What it does | AI? |
|---|---|---|
ats_schedule_interview | Create, update, and delete interviews with conflict detection and interviewer availability check | No |
ats_interview_feedback | Submit structured feedback, compute consensus score, summarize feedback across all interviewers | No |
| Tool | What it does | AI? |
|---|---|---|
ats_manage_offers | Full offer lifecycle: draft → pending → approved → sent → accepted / declined / expired | No |
ats_manage_notes | Add, update, search, and delete timestamped candidate notes | No |
| Tool | What it does | AI? |
|---|---|---|
ats_compliance | EEO/EEOC reporting, GDPR export/erasure, audit trail, data retention policies | No |
ats_talent_pool | Passive candidate talent pools (CRM): create pools, add/remove candidates, search, analytics | No |
ats_scorecard | Structured interview scorecards with weighted criteria, per-evaluator scores, aggregate rankings | No |
ats_onboarding | Post-hire onboarding checklists: tasks by category, assignees, progress tracking, overdue alerts | No |
ats_communication | Email templates with {{variable}} interpolation, send/preview, communication history, stats | No |
| Tool | What it does | AI? |
|---|---|---|
ats_generate_demo_data | Generate a realistic sample ATS dataset (jobs, candidates, interviews, offers) for testing | No |
assess_candidateoptionally calls an LLM when you supplyprovider+apiKey; it falls back to fully algorithmic scoring otherwise.
Every resume runs through a 5-stage algorithmic pipeline:
ResumeSchema with confidence scores and data quality metrics| Format | Extensions | Parser |
|---|---|---|
.pdf | pdf-parse v2 | |
| DOCX | .docx | mammoth |
| Plain text | .txt | direct read |
| Markdown | .md, .markdown | regex-based |
| URL / HTML | any URL string | cheerio |
Max file size: 10 MB
The app ships with a full web interface:
| Tab | Description |
|---|---|
| Single Parse | Upload one file or paste a URL. Returns structured data, pipeline visualization, and AI-enhanced analysis |
| Batch Parse | Upload up to 20 files. Export to JSON / CSV / PDF or email results |
| Chat | Conversational interface with tool access — ask questions about any parsed resume |
| ATS | Full pipeline board: jobs, candidates (Kanban), interviews, offers, and analytics dashboard |
Switch AI providers from the selector at the top. Supports OpenAI, Anthropic, Google, DeepSeek, GLM, Qwen, OpenRouter, and OpenCode Zen.
All endpoints accept multipart/form-data with optional headers:
| Header | Description |
|---|---|
x-api-key | Your AI provider API key |
x-ai-provider | openai / anthropic / google / deepseek / glm / qwen / openrouter / opencodezen |
x-ai-model | Specific model ID |
| Layer | Technologies |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack), React 19, TypeScript |
| AI | Vercel AI SDK v6, multi-provider (OpenAI, Anthropic, Google, DeepSeek, GLM, Qwen, OpenRouter) |
| MCP | @modelcontextprotocol/sdk v1.29 — Streamable HTTP + stdio transports |
| Parsing | pdf-parse v2, mammoth, cheerio |
| NLP | TF-IDF, NER, cosine similarity, Jaccard index (all in-process, no external services) |
| Schema | Zod v4 |
| Export | ExcelJS (CSV/XLSX), jsPDF + jspdf-autotable |
| Nodemailer | |
| Styling | Tailwind CSS v4, Framer Motion |