AI HR Management Toolkit

AI HR Management Toolkit

Manage Job using MCP: Manage Job, Candidates, Resumes, Salaries all within this one MCP tools It can solve problems like: You have 50 resumes to screen. Your AI assistant can reason about candidates, but it can't: Read PDFs/DOCX — The AI can't open binary files Extract structured data — Copy-pasting loses formatting, metrics, and context Compare at scale — No consistent scoring across candida

Category
访问服务器

README

AI HR Management Toolkit

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.

<img width="1889" height="781" alt="image" src="https://github.com/user-attachments/assets/572b4dd8-8fd4-469c-b71d-a4f513c4b466" /> <img width="1896" height="635" alt="image" src="https://github.com/user-attachments/assets/aa0fc7c1-6373-4a48-9faf-3b15c42871f1" /> <img width="1562" height="572" alt="image" src="https://github.com/user-attachments/assets/4a0ec218-b61f-43c8-b6b8-657219e30dab" />

Live demo: https://ai-hr-management-toolkit.vercel.app

npm version License: MIT

<a href="https://glama.ai/mcp/servers/mcp-ai-hr-management-toolkit"> <img width="380" height="200" src="https://glama.ai/mcp/servers/mcp-ai-hr-management-toolkit/badge" alt="mcp-ai-hr-management-toolkit server" /> </a>


What Is This?

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:

  • Parse PDFs, DOCX, TXT, Markdown, and URLs into structured JSON
  • Extract skills, experience, keywords, and entities algorithmically
  • Score and rank candidates against job descriptions
  • Run a full ATS: jobs, candidates, interviews, offers, notes, and analytics

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.


Quick Start (MCP Clients)

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):

{
  "mcpServers": {
    "ai-hr-management-toolkit": {
      "command": "npx",
      "args": ["-y", "mcp-ai-hr-management-toolkit"]
    }
  }
}

Example usage:

<img width="1101" height="556" alt="image" src="https://github.com/user-attachments/assets/34a8fd29-5f51-4f8b-9f3c-df0e31f36354" />

<img width="1094" height="314" alt="image" src="https://github.com/user-attachments/assets/fb641f07-a977-413c-903c-b67f806d75b1" />

Cursor — Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "ai-hr-management-toolkit": {
      "command": "npx",
      "args": ["-y", "mcp-ai-hr-management-toolkit"]
    }
  }
}

VS Code Copilot — Create .vscode/mcp.json in your project root:

{
  "servers": {
    "ai-hr-management-toolkit": {
      "command": "npx",
      "args": ["-y", "mcp-ai-hr-management-toolkit"]
    }
  }
}

VS Code users: Run the npx command from a directory that contains a package.json (i.e. any project root). The cwd key in .vscode/mcp.json can override the working directory if needed.

Windsurf / other MCP clients — Use the same npx pattern above.


Installation Options

Option 1: NPX (Zero-install, recommended)

Works from any project directory (requires a package.json in the working directory):

{
  "mcpServers": {
    "ai-hr-management-toolkit": {
      "command": "npx",
      "args": ["-y", "mcp-ai-hr-management-toolkit"]
    }
  }
}

Option 2: Global install

Install once, use from any directory:

npm install -g mcp-ai-hr-management-toolkit
{
  "mcpServers": {
    "ai-hr-management-toolkit": {
      "command": "mcp-ai-hr-management-toolkit",
      "args": []
    }
  }
}

Option 3: Remote HTTP endpoint

Deploy the Next.js app and use the Streamable HTTP transport:

https://your-domain.com/api/mcp

Test locally:

npx @modelcontextprotocol/inspector http://localhost:3000/api/mcp

Option 4: Local development (Web UI + MCP)

git clone <repo-url>
cd Resume-parser
npm install
npm run dev

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 21 MCP Tools

All tools return structured JSON with next_steps hints so the AI knows what to call next.

Resume Parsing & Ingestion

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

Unified Analysis

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_resume consolidates 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.

Candidate Matching & Scoring

Tool What it does AI?
assess_candidate Score against up to 8 weighted criteria axes → weighted total + pass / review / reject decision Optional

Export & Notifications

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

ATS — Jobs

Tool What it does AI?
ats_manage_jobs Full CRUD for job postings: create, read, update, delete, list, search by title/department/status No

ATS — Candidates & Pipeline

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

ATS — Interviews

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

ATS — Offers & Notes

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

ATS — Enterprise HR

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

Testing & Seeding

Tool What it does AI?
ats_generate_demo_data Generate a realistic sample ATS dataset (jobs, candidates, interviews, offers) for testing No

assess_candidate optionally calls an LLM when you supply provider + apiKey; it falls back to fully algorithmic scoring otherwise.


Example Multi-Turn Flow

You: "Parse this resume and tell me if they're a good fit for our Senior Engineer role"

AI → parse_resume(file)
     → raw text, contact info, section map

AI → inspect_pipeline(rawText)
     → 5-stage confidence scores, entity classification

AI → analyze_resume(text, aspects=["skills", "patterns", "similarity"], jobDescription=...)
     → 13 skill categories with proficiency levels
     → career trajectory, metrics, date ranges
     → cosine 0.74, skill match 82%, gap analysis

AI synthesizes → "Strong match. 6 of 8 required skills present.
                  Two gaps: Kubernetes and system design at scale.
                  Recommend: Technical Screen"

Analysis Pipeline

Every resume runs through a 5-stage algorithmic pipeline:

┌─────────────┐    ┌──────────────┐    ┌──────────────┐    ┌────────────────┐    ┌───────────────┐
│  Ingestion  │───▶│ Sanitization │───▶│ Tokenization │───▶│ Classification │───▶│ Serialization │
│ (file/URL)  │    │ (noise trim) │    │  (TF-IDF)    │    │ (NER + disamb) │    │ (structured)  │
└─────────────┘    └──────────────┘    └──────────────┘    └────────────────┘    └───────────────┘
  1. Ingestion — PDF via pdf-parse v2, DOCX via mammoth, HTML/URL via cheerio, plain text/markdown natively
  2. Sanitization — Removes non-ASCII artifacts, normalizes whitespace, strips formatting noise
  3. Tokenization — TF-IDF with unigrams, bigrams, and trigrams; scored by document frequency
  4. Classification — NER with domain-aware disambiguation (e.g. "Java" as language vs. Indonesian city; "Go" as language vs. verb)
  5. Serialization — Maps entities to typed ResumeSchema with confidence scores and data quality metrics

Supported File Formats

Format Extensions Parser
PDF .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


Structured Output Schema

contact        — name, email, phone, location, LinkedIn, GitHub, website, portfolio
summary        — professional summary text
skills[]       — name, category (13 types), proficiency, usage context
experience[]   — company, title, start/end dates, highlights, achievements (with metrics), technologies
education[]    — institution, degree, field, dates, GPA
certifications[] — name, issuer, date, credential URL
projects[]     — name, description, URL, technologies, highlights
languages[]    — spoken language and proficiency

Web UI

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.


REST API Endpoints

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
# Parse a single resume
curl -X POST http://localhost:3000/api/parse \
  -H "x-api-key: sk-..." \
  -F "file=@resume.pdf"

# Batch parse (up to 20 files)
curl -X POST http://localhost:3000/api/batch-parse \
  -H "x-api-key: sk-..." \
  -F "files=@resume1.pdf" \
  -F "files=@resume2.docx"

# MCP endpoint (Streamable HTTP)
curl -X POST http://localhost:3000/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

# Export parsed data
curl -X POST http://localhost:3000/api/export \
  -H "Content-Type: application/json" \
  -d '{"format":"csv","results":[...]}'

Tech Stack

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
Email Nodemailer
Styling Tailwind CSS v4, Framer Motion

Development

npm install

# Start dev server (Web UI at :3000 + MCP at /api/mcp)
npm run dev

# Build the standalone MCP CLI (stdio transport)
npm run build:mcp

# Build the Next.js app for production
npm run build

# Test MCP with the official inspector
npx @modelcontextprotocol/inspector http://localhost:3000/api/mcp
npx @modelcontextprotocol/inspector node dist/mcp-stdio.js

# Lint
npm run lint

Project Structure

src/
├── app/
│   ├── page.tsx              # Main UI (tabs, provider selector, chat, ATS)
│   ├── layout.tsx            # Root layout + global styles
│   └── api/
│       ├── parse/route.ts    # Single resume parse
│       ├── batch-parse/route.ts
│       ├── chat/route.ts     # Conversational AI with tool access
│       ├── mcp/route.ts      # MCP server (Streamable HTTP)
│       ├── models/route.ts   # Provider model listing
│       ├── export/route.ts   # JSON / CSV / PDF export
│       └── email/route.ts    # SMTP email
├── components/               # React UI components (parse, batch, chat, ATS)
│   └── ats/                  # ATS-specific views (Kanban, Dashboard, Scheduler…)
└── lib/
    ├── ai-model.ts           # Multi-provider model config (no env fallback)
    ├── mcp-server.ts         # MCP server — registers all 21 tools
    ├── schemas/
    │   ├── resume.ts         # Zod v4 ResumeSchema
    │   └── criteria.ts       # Assessment criteria schema
    ├── analysis/
    │   ├── pipeline.ts       # 5-stage pipeline orchestrator
    │   ├── sanitizer.ts      # Text cleaning
    │   ├── keyword-extractor.ts  # TF-IDF
    │   ├── classifier.ts     # NER with context disambiguation
    │   ├── pattern-matcher.ts    # Regex extraction (metrics, dates, contacts)
    │   └── scoring.ts        # Cosine similarity, Jaccard, skill matching
    ├── parser/
    │   ├── pdf.ts, docx.ts, text.ts, markdown.ts, url.ts
    │   └── index.ts
    ├── ats/
    │   ├── types.ts          # ATS entity types
    │   ├── store.ts          # In-memory ATS state
    │   ├── demo-data.ts      # Realistic seed data generator
    │   └── context.tsx       # React context for ATS state
    └── tools/
        ├── parse-resume.ts       # parse_resume
        ├── inspect-pipeline.ts   # inspect_pipeline
        ├── export-results.ts     # export_results
        ├── send-email.ts         # send_email
        └── mcp/                  # 17 MCP-specific tools
            ├── analyze-resume.ts     # analyze_resume (unified: keywords, patterns, entities, skills, experience, similarity)
            ├── batch-parse.ts        # batch_parse_resumes
            ├── assess-candidate.ts   # assess_candidate
            ├── ats-manage-candidates.ts  # ats_manage_candidates (includes rank/filter/compare/summarize)
            ├── ats-manage-jobs.ts
            ├── ats-manage-offers.ts
            ├── ats-manage-notes.ts
            ├── ats-analytics.ts      # ats_analytics (unified dashboard + pipeline)
            ├── ats-schedule-interview.ts
            ├── ats-interview-feedback.ts
            ├── ats-search.ts
            ├── ats-generate-demo-data.ts
            ├── ats-compliance.ts     # Enterprise: EEO / GDPR / audit
            ├── ats-talent-pool.ts    # Enterprise: passive candidate CRM
            ├── ats-scorecard.ts      # Enterprise: structured scorecards
            ├── ats-onboarding.ts     # Enterprise: onboarding checklists
            └── ats-communication.ts  # Enterprise: email templates & history

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选