Ai Hr Management Toolkit

io.github.XJTLUmedia由 GitHub 帳號 XJTLUmedia 發布v3.0.5更新於 Oct 24, 2026

AI HR toolkit: 24 MCP tools for resume parsing, skill extraction & ATS management.

概覽

AI 產生的概覽

一個本機 MCP 伺服器,讓 AI 助理解析履歷、擷取技能並為候選人評分,還提供涵蓋職缺、候選人、面試與錄取通知的完整招募管理系統。

可以做什麼
解析履歷與文件:讀取 PDF、DOCX、TXT、Markdown 和網址內容,輸出結構化 JSON,支援單筆與批次處理,並可檢視分析流程各階段與信心分數。分析候選人:擷取關鍵詞、模式、實體、技能、經歷,以及與職缺描述的相似度。評分與排序:依加權條件評估候選人,給出通過、複核或拒絕的結論。管理招募流程:建立和編輯職缺、候選人、面試、錄取通知與備註,並提供搜尋、分析、評分卡、人才庫、到職清單與法遵報告。匯出與寄送:將結果匯出為 JSON 或 CSV 並以電子郵件寄送。產生測試用範例資料。
適用情境
適合需要讓助理批次篩選履歷、依職缺描述比較候選人,或在不另外安裝招募系統的情況下維護招募流程的情境。適合在桌面 MCP 用戶端中使用的招募人員與中小型 HR 團隊。
執行需求
以 npm 套件形式透過 stdio 在本機執行,通常以 npx 啟動,因此需要 Node.js,且工作目錄中要有 package.json。演算法類工具不需要 API 金鑰或環境變數;如需 LLM 輔助評分,可在單次呼叫中提供 AI 服務商金鑰。README 也說明了自行部署的 HTTP 端點方式。
安裝前請注意
招募管理工具會建立、更新、移動和刪除職缺、候選人、面試、錄取通知與備註等紀錄,README 說明這些資料存放在記憶體中,可能不會持久保存。郵件工具透過單次呼叫傳入的 SMTP 憑證寄送郵件,可選的 LLM 評分路徑也需在呼叫時傳入 API 金鑰,請避免這些金鑰出現在共用日誌中。履歷檔案和網址會交給伺服器程序處理,輸入的網址會被連網抓取。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ai Hr Management Toolkit,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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.

[image] [image] [image]

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

[npm version] [License: MIT]

[mcp-ai-hr-management-toolkit server]

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

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

Example usage:

[image] [image]

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

json
{  "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:

json
{  "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):

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

Option 2: Global install

Install once, use from any directory:

bash
npm install -g mcp-ai-hr-management-toolkit
json
{  "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:

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

Option 4: Local development (Web UI + MCP)

bash
git clone <repo-url>cd Resume-parsernpm installnpm 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

ToolWhat it doesAI?
parse_resumeParse PDF / DOCX / TXT / MD / URL → raw text + contacts, keywords, section mapNo
batch_parse_resumesParse up to 20 files in one call, full pipeline on eachNo
inspect_pipelineRun the 5-stage analysis pipeline → confidence scores, entity counts, data quality reportNo

Unified Analysis

ToolWhat it doesAI?
analyze_resumeMaster 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 allNo

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

ToolWhat it doesAI?
assess_candidateScore against up to 8 weighted criteria axes → weighted total + pass / review / reject decisionOptional

Export & Notifications

ToolWhat it doesAI?
export_resultsExport structured parse results to JSON or CSVNo
send_emailSend results via SMTP (config passed per call — no server-side secrets stored)No

ATS — Jobs

ToolWhat it doesAI?
ats_manage_jobsFull CRUD for job postings: create, read, update, delete, list, search by title/department/statusNo

ATS — Candidates & Pipeline

ToolWhat it doesAI?
ats_manage_candidatesCRUD + analytics: add, update, move stage, bulk-move, filter, rank, compare, recommend stage changes, summarizeNo
ats_analyticsUnified dashboard + pipeline analytics: stage distribution, conversion rates, avg time-in-stage, bottleneck detection, offer acceptance rateNo
ats_searchGlobal full-text search across all ATS entities (candidates, jobs, interviews, offers, notes)No

ATS — Interviews

ToolWhat it doesAI?
ats_schedule_interviewCreate, update, and delete interviews with conflict detection and interviewer availability checkNo
ats_interview_feedbackSubmit structured feedback, compute consensus score, summarize feedback across all interviewersNo

ATS — Offers & Notes

ToolWhat it doesAI?
ats_manage_offersFull offer lifecycle: draft → pending → approved → sent → accepted / declined / expiredNo
ats_manage_notesAdd, update, search, and delete timestamped candidate notesNo

ATS — Enterprise HR

ToolWhat it doesAI?
ats_complianceEEO/EEOC reporting, GDPR export/erasure, audit trail, data retention policiesNo
ats_talent_poolPassive candidate talent pools (CRM): create pools, add/remove candidates, search, analyticsNo
ats_scorecardStructured interview scorecards with weighted criteria, per-evaluator scores, aggregate rankingsNo
ats_onboardingPost-hire onboarding checklists: tasks by category, assignees, progress tracking, overdue alertsNo
ats_communicationEmail templates with {{variable}} interpolation, send/preview, communication history, statsNo

Testing & Seeding

ToolWhat it doesAI?
ats_generate_demo_dataGenerate a realistic sample ATS dataset (jobs, candidates, interviews, offers) for testingNo

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

FormatExtensionsParser
PDF.pdfpdf-parse v2
DOCX.docxmammoth
Plain text.txtdirect read
Markdown.md, .markdownregex-based
URL / HTMLany URL stringcheerio

Max file size: 10 MB


Structured Output Schema

contact        — name, email, phone, location, LinkedIn, GitHub, website, portfoliosummary        — professional summary textskills[]       — name, category (13 types), proficiency, usage contextexperience[]   — company, title, start/end dates, highlights, achievements (with metrics), technologieseducation[]    — institution, degree, field, dates, GPAcertifications[] — name, issuer, date, credential URLprojects[]     — name, description, URL, technologies, highlightslanguages[]    — spoken language and proficiency

Web UI

The app ships with a full web interface:

TabDescription
Single ParseUpload one file or paste a URL. Returns structured data, pipeline visualization, and AI-enhanced analysis
Batch ParseUpload up to 20 files. Export to JSON / CSV / PDF or email results
ChatConversational interface with tool access — ask questions about any parsed resume
ATSFull 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:

HeaderDescription
x-api-keyYour AI provider API key
x-ai-provideropenai / anthropic / google / deepseek / glm / qwen / openrouter / opencodezen
x-ai-modelSpecific model ID
bash
# Parse a single resumecurl -X POST http://localhost:3000/api/parse \  -H "x-api-key: sk-..." \  -F "[email protected]"
# Batch parse (up to 20 files)curl -X POST http://localhost:3000/api/batch-parse \  -H "x-api-key: sk-..." \  -F "[email protected]" \  -F "[email protected]"
# 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 datacurl -X POST http://localhost:3000/api/export \  -H "Content-Type: application/json" \  -d '{"format":"csv","results":[...]}'

Tech Stack

LayerTechnologies
FrameworkNext.js 16 (App Router, Turbopack), React 19, TypeScript
AIVercel AI SDK v6, multi-provider (OpenAI, Anthropic, Google, DeepSeek, GLM, Qwen, OpenRouter)
MCP@modelcontextprotocol/sdk v1.29 — Streamable HTTP + stdio transports
Parsingpdf-parse v2, mammoth, cheerio
NLPTF-IDF, NER, cosine similarity, Jaccard index (all in-process, no external services)
SchemaZod v4
ExportExcelJS (CSV/XLSX), jsPDF + jspdf-autotable
EmailNodemailer
StylingTailwind CSS v4, Framer Motion

Development

bash
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 productionnpm run build
# Test MCP with the official inspectornpx @modelcontextprotocol/inspector http://localhost:3000/api/mcpnpx @modelcontextprotocol/inspector node dist/mcp-stdio.js
# Lintnpm 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

來源:README.md,提交 cbeba6c

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v3.0.5最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分