io.github.XJTLUmedia/ai-hr-management-toolkit

السجل الرسمي الإنتاجية

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

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package mcp-ai-hr-management-toolkit
Claude Code
claude mcp add ai-hr-management-toolkit -- npx -y mcp-ai-hr-management-toolkit@3.0.5
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "ai-hr-management-toolkit": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-ai-hr-management-toolkit@3.0.5"
            ]
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. AI HR Management Toolkit
  2. What Is This?
  3. Quick Start (MCP Clients)
  4. Installation Options
  5. All 21 MCP Tools
  6. Example Multi-Turn Flow
  7. Analysis Pipeline
  8. Supported File Formats
  9. Structured Output Schema
  10. Web UI
  11. REST API Endpoints
  12. Tech Stack
  13. Development
  14. Project Structure
  15. License

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.

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


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:

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

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

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
# 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

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

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

الأسئلة الشائعة

ما هو io.github.XJTLUmedia/ai-hr-management-toolkit؟

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

كيف أثبّت io.github.XJTLUmedia/ai-hr-management-toolkit؟

يعمل على جهازك. في Claude Code: claude mcp add ai-hr-management-toolkit -- npx -y mcp-ai-hr-management-toolkit@3.0.5. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج io.github.XJTLUmedia/ai-hr-management-toolkit إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل io.github.XJTLUmedia/ai-hr-management-toolkit مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون io.github.XJTLUmedia/ai-hr-management-toolkit؟

ينشره XJTLUmedia. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.