xjtlumedia avatar

Ai Hr Management Toolkit

xjtlumedia/ai-hr-management-toolkit

Wraps a complete applicant tracking system into 21 MCP tools that cover resume ingestion, candidate scoring, and pipeline management. Parse PDFs, DOCX, and URLs into structured JSON, then extract skills, entities, and experience using algorithmic analysis (no LLM calls for 20 of 21 tools). The ATS layer handles jobs, candidates, interviews, offers, notes, and compliance reporting with full CRUD operations. Includes candidate ranking, stage movement, bottleneck detection, and interview feedback aggregation. Useful when you need to screen dozens of resumes or manage a hiring pipeline entirely through Claude without switching to a standalone ATS platform.

tools
21
transport
STDIO
last updated
Apr 4, 2026

Tools

21 tools

Public tool metadata for what this MCP can expose to an agent.

parse_resumeParse a resume file (PDF, DOCX, TXT, MD) or URL and extract text with algorithmic pre-analysis including keyword extraction, metrics detection, section identification, and experience estimation.2 params

Parse a resume file (PDF, DOCX, TXT, MD) or URL and extract text with algorithmic pre-analysis including keyword extraction, metrics detection, section identification, and experience estimation.

Parameters* required
contentstring
Base64-encoded file content, or a URL string when fileType is 'url'
fileTypestring
File type: pdf, docx, txt, md, or urlone of pdf · docx · txt · md · url
analyze_resumeUnified resume analysis tool. Select which analysis aspects to run via the "aspects" parameter: - "keywords" — TF-IDF keyword extraction with NER overlay and skill categorization - "entities" — Named Entity Recognition (12 types with confidence and disambiguation) - "skills" —...9 params

Unified resume analysis tool. Select which analysis aspects to run via the "aspects" parameter: - "keywords" — TF-IDF keyword extraction with NER overlay and skill categorization - "entities" — Named Entity Recognition (12 types with confidence and disambiguation) - "skills" —...

Parameters* required
aspectsarray
Which analysis aspects to include. Defaults to ["all"]. Use specific aspects for faster, focused results.
contentstring
Base64-encoded file content or URL. Use with fileType. Ignored if resumeText is provided.
entityTypesarray
Filter entities to specific types (e.g., ['SKILL', 'JOB_TITLE']). Only relevant for 'entities' aspect.
fileTypestring
File type when using content parameter.one of pdf · docx · txt · md · url
jobDescriptionstring
Job description for similarity scoring and skill gap analysis. Required when aspects includes 'similarity'.
minEntityConfidencenumber
Minimum confidence (0-1) for entity inclusion. Only relevant for 'entities' aspect.
requiredSkillsarray
Optional list of skills to check for match/miss status.
resumeTextstring
Raw resume text. Provide either resumeText OR (content + fileType), not both.
topKeywordsnumber
Number of top keywords to return (default: 40). Only relevant for 'keywords' aspect.
batch_parse_resumesParse multiple resume files at once and run the full algorithmic pipeline on each. Returns raw text, pipeline analysis, keywords, entities, and confidence scores for each file. The LLM client should interpret and structure the results.1 params

Parse multiple resume files at once and run the full algorithmic pipeline on each. Returns raw text, pipeline analysis, keywords, entities, and confidence scores for each file. The LLM client should interpret and structure the results.

Parameters* required
filesarray
Array of files to parse
assess_candidateAssess a resume against recruiter-defined criteria. Supports 8 criteria axes: Education, Experience, Skills, Certifications, Knowledge Stack, Competitions, Thresholds, and Job Qualification. Returns per-axis scores, weighted overall score, and a pass/review/reject decision.6 params

Assess a resume against recruiter-defined criteria. Supports 8 criteria axes: Education, Experience, Skills, Certifications, Knowledge Stack, Competitions, Thresholds, and Job Qualification. Returns per-axis scores, weighted overall score, and a pass/review/reject decision.

Parameters* required
apiKeystring
API key for the AI provider
contentstring
Base64-encoded file content, or URL string when fileType is 'url', or plain resume text when fileType is 'txt'
criteriaobject
Assessment criteria object. Structure: { name: string, education: { enabled, weight, minimumDegreeLevel, preferredFields, targetUniversities, acceptAnyAccredited }, experience: { enabled, wei...
fileTypestring
File typeone of pdf · docx · txt · md · url
modelstring
Model name
providerstring
AI provider (openai, anthropic, google, deepseek, etc.)
inspect_pipelineRun the full 5-node atomic deconstruction pipeline (Ingestion → Sanitization → Tokenization → Classification → Serialization) on resume text. Returns stage-by-stage metrics, confidence scores, entity classification with disambiguation, data quality assessment, and assumption a...1 params

Run the full 5-node atomic deconstruction pipeline (Ingestion → Sanitization → Tokenization → Classification → Serialization) on resume text. Returns stage-by-stage metrics, confidence scores, entity classification with disambiguation, data quality assessment, and assumption a...

Parameters* required
resumeTextstring
The raw text content of a resume
ats_manage_candidatesUnified candidate management for the ATS pipeline. Actions: CRUD: add, update, delete, move, bulk_move, list Analytics: rank (sort by fit), filter (by criteria), recommend_stage (suggest moves), compare (side-by-side), summarize (overview stats) Pass the current candidates rec...4 params

Unified candidate management for the ATS pipeline. Actions: CRUD: add, update, delete, move, bulk_move, list Analytics: rank (sort by fit), filter (by criteria), recommend_stage (suggest moves), compare (side-by-side), summarize (overview stats) Pass the current candidates rec...

Parameters* required
actionobject
Action to perform. Types: - { type: "add", candidate: { firstName, lastName, email, phone?, jobId, currentStage?, tags?, source? } } - { type: "update", candidateId: string, fields: { partial candi...
candidatesobject
Current candidates record (id → candidate object). Pass {} for a fresh start. For analytics actions (rank/filter/compare/summarize/recommend_stage), pass as array or record.
criteriaobject
For rank/filter: { requiredSkills?: string[], minimumRating?: number, stages?: string[], tags?: string[], sortBy?: 'rating'|'name'|'stage'|'assessment', limit?: number }
jobDescriptionstring
Optional job description for relevance ranking (used by 'rank' action).
ats_manage_jobsManage job postings in the ATS. Actions: create (new job posting), update (edit fields), delete, list (with optional status/department filter), search (by keyword in title/description), close, reopen. Pass current jobs record and an action.2 params

Manage job postings in the ATS. Actions: create (new job posting), update (edit fields), delete, list (with optional status/department filter), search (by keyword in title/description), close, reopen. Pass current jobs record and an action.

Parameters* required
actionobject
Action to perform. Must include "type" field: "create" | "update" | "delete" | "list" | "search" | "close" | "reopen". See tool description for per-action fields.
jobsobject
Current jobs record: Record<id, jobObject>. Pass {} for empty.
ats_manage_offersManage offers in the ATS. Actions: create (validate & structure), update_status (draft→pending-approval→approved→sent→accepted/declined), delete (remove offer), list (all offers with optional filters), compare (side-by-side offer comparison), validate (check for issues). Retur...2 params

Manage offers in the ATS. Actions: create (validate & structure), update_status (draft→pending-approval→approved→sent→accepted/declined), delete (remove offer), list (all offers with optional filters), compare (side-by-side offer comparison), validate (check for issues). Retur...

Parameters* required
actionobject
Action to perform: - { type: "create", offer: { candidateId, candidateName, jobId, jobTitle, salary: { base, currency, period, bonus?, equity? }, benefits?, startDate, expirationDate, notes? } } -...
existingOffersobject
Current offers record (id → offer object). Pass {} for a fresh start.
ats_manage_notesManage candidate notes in the ATS. Actions: add (create note on candidate), update (edit note content), list (get all notes for a candidate), delete (remove a note), search (find notes by keyword across one or all candidates), bulk_add (add notes to multiple candidates). Pass...2 params

Manage candidate notes in the ATS. Actions: add (create note on candidate), update (edit note content), list (get all notes for a candidate), delete (remove a note), search (find notes by keyword across one or all candidates), bulk_add (add notes to multiple candidates). Pass...

Parameters* required
actionobject
Action to perform. "type": "add" | "update" | "list" | "delete" | "search" | "bulk_add".
candidatesobject
Current candidates record: Record<id, candidateObject>.
ats_schedule_interviewFull CRUD for interviews. Actions: create (validate & schedule with conflict detection), update (reschedule/modify), delete (permanent removal), list (filter by candidateId/jobId/status), get (single interview by id). Pass existing interviews record for conflict checks.2 params

Full CRUD for interviews. Actions: create (validate & schedule with conflict detection), update (reschedule/modify), delete (permanent removal), list (filter by candidateId/jobId/status), get (single interview by id). Pass existing interviews record for conflict checks.

Parameters* required
actionobject
Action to perform: - { type: "create", interview: { candidateId, candidateName, jobId, jobTitle, type, scheduledDate, durationMinutes, interviewers, location?, meetingLink?, notes? } } - { type: "u...
existingInterviewsobject
Current interviews record: Record<id, interviewObject>. Pass {} for fresh start.
ats_interview_feedbackManage interview feedback in the ATS. Actions: submit (add feedback to completed interview), get (retrieve feedback for an interview), update (modify existing feedback), list_pending (interviews awaiting feedback), list_completed (interviews with feedback, optionally filtered...2 params

Manage interview feedback in the ATS. Actions: submit (add feedback to completed interview), get (retrieve feedback for an interview), update (modify existing feedback), list_pending (interviews awaiting feedback), list_completed (interviews with feedback, optionally filtered...

Parameters* required
actionobject
Action to perform. "type": "submit" | "get" | "update" | "list_pending" | "list_completed" | "analyze" | "summary".
interviewsobject
Current interviews record: Record<id, interviewObject>.
ats_analyticsUnified ATS analytics. Select report type: - "dashboard" — Hiring health report: key metrics, stage distribution, offer stats, velocity, insights - "pipeline" — Funnel analysis: conversion rates, avg days-in-stage, bottleneck detection - "full" — Both reports combined5 params

Unified ATS analytics. Select report type: - "dashboard" — Hiring health report: key metrics, stage distribution, offer stats, velocity, insights - "pipeline" — Funnel analysis: conversion rates, avg days-in-stage, bottleneck detection - "full" — Both reports combined

Parameters* required
candidatesarray
Array of candidate objects. Required for 'pipeline' report. For 'full'/'dashboard', candidates come from state.
jobIdstring
Optional: filter pipeline analytics to a specific job.
report_typestring
Which report to generate. Defaults to "full".one of dashboard · pipeline · full
stageOrderarray
Ordered pipeline stages for funnel analysis. Defaults to: ["applied","screening","phone-screen","interview","final-round","offer","hired","rejected"]
stateobject
ATS state object with candidates, jobs, interviews, and offers records (each keyed by ID). Required for 'dashboard' and 'full' reports.
ats_generate_demo_dataGenerate a full set of realistic demo data for the ATS (Applicant Tracking System). Returns a complete ATSState with sample jobs, candidates at various pipeline stages, scheduled interviews, and offers. Useful for testing, demonstrations, or populating an empty ATS instance.1 params

Generate a full set of realistic demo data for the ATS (Applicant Tracking System). Returns a complete ATSState with sample jobs, candidates at various pipeline stages, scheduled interviews, and offers. Useful for testing, demonstrations, or populating an empty ATS instance.

Parameters* required
includeStatsboolean
If true, include summary statistics alongside the generated data. Default: false.
ats_searchGlobal search across the ATS. Actions: search (keyword search across candidates, jobs, interviews, offers — scoped optionally), filter_candidates (structured filter by stage/job/tags/score), get_entity (retrieve a single entity by type+id). Pass the full ATS state.2 params

Global search across the ATS. Actions: search (keyword search across candidates, jobs, interviews, offers — scoped optionally), filter_candidates (structured filter by stage/job/tags/score), get_entity (retrieve a single entity by type+id). Pass the full ATS state.

Parameters* required
actionobject
Action: "search" (query, scope?, limit?), "filter_candidates" (filters: {stage?, jobId?, tags?, minScore?}), "get_entity" (entityType, entityId).
stateobject
Full ATS state: { candidates: Record<id, obj>, jobs: Record<id, obj>, interviews: Record<id, obj>, offers: Record<id, obj> }
ats_complianceEnterprise compliance toolkit: audit trail queries, EEO/EEOC diversity reporting, GDPR data export & erasure (right to be forgotten), data retention policy checks. Actions: query_audit, eeo_report, eeo_record, gdpr_export, gdpr_erase, retention_check, update_settings, get_sett...2 params

Enterprise compliance toolkit: audit trail queries, EEO/EEOC diversity reporting, GDPR data export & erasure (right to be forgotten), data retention policy checks. Actions: query_audit, eeo_report, eeo_record, gdpr_export, gdpr_erase, retention_check, update_settings, get_sett...

Parameters* required
actionobject
Action to perform. Set "type" to one of: query_audit, eeo_report, eeo_record, gdpr_export, gdpr_erase, retention_check, update_settings, get_settings.
stateobject
Current ATS state containing candidates, auditLog, eeoRecords, complianceSettings.
ats_talent_poolManage passive candidate talent pools (CRM). Create pools, add/remove candidates, search across pools, get pool analytics. Actions: create, update, delete, list, get, add_candidates, remove_candidates, search, analytics.2 params

Manage passive candidate talent pools (CRM). Create pools, add/remove candidates, search across pools, get pool analytics. Actions: create, update, delete, list, get, add_candidates, remove_candidates, search, analytics.

Parameters* required
actionobject
Action to perform. Set "type" to one of: create, update, delete, list, get, add_candidates, remove_candidates, search, analytics.
stateobject
Current ATS state containing talentPools and candidates.
ats_scorecardStructured interview scorecards — create evaluation templates with weighted criteria, fill scorecards per candidate/evaluator, aggregate scores to rank candidates, ensure consistent hiring decisions. Actions: create_template, list_templates, get_template, delete_template, fill...2 params

Structured interview scorecards — create evaluation templates with weighted criteria, fill scorecards per candidate/evaluator, aggregate scores to rank candidates, ensure consistent hiring decisions. Actions: create_template, list_templates, get_template, delete_template, fill...

Parameters* required
actionobject
Action to perform. Set "type" to one of: create_template, list_templates, get_template, delete_template, fill, get_entry, get_candidate_scores, aggregate, delete_entry.
stateobject
Current ATS state containing scorecardTemplates and scorecardEntries.
ats_onboardingPost-hire onboarding checklist management. Create checklists with categorized tasks (paperwork, IT setup, training, orientation, compliance), track per-task progress, find overdue items, manage assignees. Actions: create, list, get, update_task, add_task, remove_task, progress...2 params

Post-hire onboarding checklist management. Create checklists with categorized tasks (paperwork, IT setup, training, orientation, compliance), track per-task progress, find overdue items, manage assignees. Actions: create, list, get, update_task, add_task, remove_task, progress...

Parameters* required
actionobject
Action to perform. Set "type" to one of: create, list, get, update_task, add_task, remove_task, progress, delete, overdue.
stateobject
Current ATS state containing onboardingChecklists and candidates.
ats_communicationCandidate communication management — create email templates with {{variable}} interpolation, preview and send messages, log inbound/outbound communications, search history, and get communication stats. Actions: create_template, list_templates, get_template, update_template, de...2 params

Candidate communication management — create email templates with {{variable}} interpolation, preview and send messages, log inbound/outbound communications, search history, and get communication stats. Actions: create_template, list_templates, get_template, update_template, de...

Parameters* required
actionobject
Action to perform. Set "type" to one of: create_template, list_templates, get_template, update_template, delete_template, preview, send, log, get_history, search_history, stats.
stateobject
Current ATS state containing emailTemplates, communicationLog, and candidates.
export_resultsExport parsed resume results to a specified format (JSON, CSV, or Markdown). Accepts an array of structured resume results and returns formatted output.2 params

Export parsed resume results to a specified format (JSON, CSV, or Markdown). Accepts an array of structured resume results and returns formatted output.

Parameters* required
formatstring
Export format: json, csv, or markdownone of json · csv · markdown
resultsarray
Array of parsed resume results with fileName and structured data
send_emailSend parsed resume results via email using SMTP. Requires SMTP configuration (host, port, user, pass) and recipient email. Sends an HTML summary of all results.8 params

Send parsed resume results via email using SMTP. Requires SMTP configuration (host, port, user, pass) and recipient email. Sends an HTML summary of all results.

Parameters* required
resultsarray
Array of resume results to include
smtpHoststring
SMTP server host
smtpPassstring
SMTP password or app password
smtpPortnumber
SMTP server port (default: 587)
smtpSecureboolean
Use TLS (default: false)
smtpUserstring
SMTP username/email
subjectstring
Email subject (optional)
tostring
Recipient email address

Sponsors

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?


View the full README on GitHub

Details

Repository
github.com/xjtlumedia/ai-hr-management-toolkit
Package
mcp-ai-hr-management-toolkit
Transport
STDIO
Registry
MCP registry, active

More from xjtlumedia