io.github.XJTLUmedia/ai-hr-management-toolkit
NPM · MCP-AI-HR-MANAGEMENT-TOOLKIT
AI HR toolkit: 24 MCP tools for resume parsing, skill extraction & ATS management.
Available components
Last scanned (18 hours ago)
Scores higher than 0% of npm servers
Category CRM and Sales
Recent critical change
GHSA-2464-fhr4-w9xw affects this package (23 Oct 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security73
- No malware found by supply-chain analysis.Pass
- CVE check failed: an unpatched critical CVE affects this package; the score is capped at 0. See how to fix → View diagnostics → Fail
- No install/post-install scripts declared.Pass
- Dependency health was assessed across the 400 of 419 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 212 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability82
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3504 tokens (~134/item across 26 items; 24 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 0
- Stability: pass → unverified ▼ security
- 23 Oct 26 0
- GHSA-2464-fhr4-w9xw affects this package: high ▼ critical
- GHSA-673q-mjm6-r5xr affects this package: high ▼ critical
- Stability: 0.97 → pass security
- 21 Oct 26 0
- Stability: pass → 0.93 functional
- 16 Oct 26 0
- Injection markers: unverified → pass ▲ security
- Stability: unverified → pass ▲ security
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → 100 ▲ functional
- 12 Oct 26 0
- Stability: 0.87 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Dependency health: 0.86 → partial functional
- 3 Oct 26 0
- Stability: pass → 0.83 functional
- 2 Oct 26 0
- Stability: 0.97 → pass security
- 1 Oct 26 0
- GHSA-vcvr-r3jv-pc5j affects this package: high ▼ critical
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed npm/mcp-ai-hr-management-toolkit@3.0.5
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 58 findings
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-g3hv-75wg-m249 | CVE-2026-118764 | medium | yes | |
| GHSA-2464-fhr4-w9xw | critical | yes | ||
| GHSA-267c-6grr-h53f | CVE-2026-44575 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N | yes |
| GHSA-26hh-7cqf-hhc6 | CVE-2026-45109 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N | yes |
| GHSA-2xp9-vwfh-vxw4 | critical | yes | ||
| GHSA-36qx-fr4f-26g5 | CVE-2026-44573 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N | yes |
| GHSA-39w2-rjm5-chcv | CVE-2026-94486 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N | yes |
| GHSA-3g8h-86w9-wvmq | CVE-2026-44572 | low | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L | yes |
| GHSA-4633-3j49-mh5q | CVE-2026-64647 | medium | yes | |
| GHSA-492v-c6pp-mqqv | CVE-2026-44574 | high | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N | yes |
| GHSA-4c39-4ccg-62r3 | CVE-2026-64646 | medium | yes | |
| GHSA-4jqv-mc3x-m676 | CVE-2026-94543 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L | yes |
| GHSA-673q-mjm6-r5xr | critical | yes | ||
| GHSA-68g3-v927-f742 | CVE-2026-64648 | medium | yes | |
| GHSA-6gpp-xcg3-4w24 | CVE-2026-64642 | high | yes | |
| GHSA-89xv-2m56-2m9x | CVE-2026-64649 | high | yes | |
| GHSA-8h8q-6873-q5fj | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes | |
| GHSA-955p-x3mx-jcvp | CVE-2026-64643 | medium | yes | |
| GHSA-c4j6-fc7j-m34r | CVE-2026-44578 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N | yes |
| GHSA-cjq9-62q9-8jv4 | CVE-2026-94483 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-f87g-xv8r-7p7x | CVE-2026-94485 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N | yes |
| GHSA-ffhc-5mcf-pf4q | CVE-2026-44581 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N | yes |
| GHSA-gx5p-jg67-6x7h | CVE-2026-44580 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N | yes |
| GHSA-h64f-5h5j-jqjh | CVE-2026-44577 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-m99w-x7hq-7vfj | CVE-2026-64641 | high | yes | |
| GHSA-mcj8-r9mp-w47p | CVE-2026-94484 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L | yes |
| GHSA-mg66-mrh9-m8jx | CVE-2026-44579 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-p293-qw3h-jr36 | CVE-2026-75604 | critical | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H | yes |
| GHSA-p3m5-59mp-jv5r | CVE-2026-94482 | high | yes | |
| GHSA-p9j2-gv94-2wf4 | CVE-2026-64645 | high | yes | |
| GHSA-q4gf-8mx6-v5v3 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes | |
| GHSA-q8wf-6r8g-63ch | CVE-2026-64644 | medium | yes | |
| GHSA-vcvr-r3jv-pc5j | critical | yes | ||
| GHSA-vfv6-92ff-j949 | CVE-2026-44582 | low | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N | yes |
| GHSA-wfc6-r584-vfw7 | CVE-2026-44576 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L | yes |
| GHSA-2x7j-588g-ccc2 | CVE-2026-92596 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-39m8-27wv-hr27 | CVE-2026-110871 | medium | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-4ffr-jq9g-5ffx | CVE-2026-110869 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-4g23-2xm8-66gc | CVE-2026-110872 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-6vj9-mwq6-2f5v | CVE-2026-100701 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-85x2-q946-cp5h | CVE-2026-121426 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-8c8m-p3m8-cjg8 | CVE-2026-121424 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-8m3c-c648-2xjj | CVE-2026-92595 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-8vvx-rff5-p5rq | CVE-2026-100702 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-cc9r-2j5m-2m83 | CVE-2026-92597 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-g73g-hqqh-jr95 | CVE-2026-110870 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N | yes |
| GHSA-m943-m63m-w62w | CVE-2026-121425 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-p6gq-j5cr-w38f | CVE-2026-82659 | high | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-v53p-9fqp-m79j | CVE-2026-100700 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-wmmp-3585-3rmp | CVE-2026-92598 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
Showing 50 of 58 vulnerabilities.
Background: What a vulnerability scan can and cannot prove →
Dependencies 400 packages
| Packages resolved | 400 |
|---|---|
| Deprecated | 7 |
| Stale | 122 |
| No linked repository | 2 |
| Tree resolution | Partial |
The dependency tree was only partially resolved, so these counts may be incomplete.
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
analyze_resume_comprehensive ~249
Run a comprehensive algorithmic analysis on a resume in a single call. Accepts raw text or a file (base64-encoded PDF/DOCX/TXT/MD or URL). Runs the full 5-node pipeline (Ingestion → Sanitization → Tokenization → Classification → Serialization) and returns: pipeline confidence scores, classified entities by type, categorized skills with proficiency estimates, structured experience timeline, career analysis, contact info, metrics/achievements, section quality assessment, and data quality scores. Optionally matches against a job description. This is a one-call alternative to chaining parse_resume + inspect_pipeline + classify_entities + extract_skills_structured + extract_experience_structured + compute_similarity.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | – | Base64-encoded file content or URL. Use with fileType. Ignored if resumeText is provided. |
| fileType | string | – | File type when using content parameter |
| jobDescription | string | – | Optional job description to compute similarity and skill gap analysis |
| requiredSkills | array | – | Optional required skills to check against |
| resumeText | string | – | Raw resume text. Provide either resumeText OR (content + fileType), not both. |
No output schema declared.
No examples provided.
assess_candidate ~356
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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | API key for the AI provider |
| content | string | yes | Base64-encoded file content, or URL string when fileType is 'url', or plain resume text when fileType is 'txt' |
| criteria | object | yes | Assessment criteria object. Structure: { name: string, education: { enabled, weight, minimumDegreeLevel, preferredFields, targetUniversities, acceptAnyAccredited }, experience: { enabled, weigh… |
| fileType | string | yes | File type |
| model | string | – | Model name |
| provider | string | – | AI provider (openai, anthropic, google, deepseek, etc.) |
No output schema declared.
No examples provided.
ats_dashboard_stats ~73
Generate comprehensive ATS dashboard statistics and hiring health report. Provide the full ATS state (candidates, jobs, interviews, offers). Returns key metrics, pipeline health, hiring velocity, and actionable insights.
| Name | Type | Req | Description |
|---|---|---|---|
| state | object | yes | ATS state object with candidates, jobs, interviews, and offers records (each keyed by ID). |
No output schema declared.
No examples provided.
ats_generate_demo_data ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| includeStats | boolean | – | If true, include summary statistics alongside the generated data. Default: false. |
No output schema declared.
No examples provided.
ats_interview_feedback ~146
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 by candidate), analyze (aggregate feedback for a candidate across all interviews), summary (hiring signal summary for a job or all jobs).
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | Action to perform. "type": "submit" | "get" | "update" | "list_pending" | "list_completed" | "analyze" | "summary". |
| interviews | object | yes | Current interviews record: Record<id, interviewObject>. |
No output schema declared.
No examples provided.
ats_manage_candidates ~205
Manage candidates in the ATS pipeline. Supports add, update, delete, move between stages, bulk move, and list/filter operations. Pass the current candidates record and an action to perform. Returns the updated candidates and a summary.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | Action to perform. Types: - { type: "add", candidate: { firstName, lastName, email, phone?, jobId, currentStage?, tags?, source? } } - { type: "update", candidateId: string, fields: { partial candida… |
| candidates | object | yes | Current candidates record (id → candidate object). Pass {} for a fresh start. |
No output schema declared.
No examples provided.
ats_manage_jobs ~136
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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | Action to perform. Must include "type" field: "create" | "update" | "delete" | "list" | "search" | "close" | "reopen". See tool description for per-action fields. |
| jobs | object | yes | Current jobs record: Record<id, jobObject>. Pass {} for empty. |
No output schema declared.
No examples provided.
ats_manage_notes ~127
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 the current candidates record.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | Action to perform. "type": "add" | "update" | "list" | "delete" | "search" | "bulk_add". |
| candidates | object | yes | Current candidates record: Record<id, candidateObject>. |
No output schema declared.
No examples provided.
ats_manage_offers ~259
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). Returns structured offer data.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | Action to perform: - { type: "create", offer: { candidateId, candidateName, jobId, jobTitle, salary: { base, currency, period, bonus?, equity? }, benefits?, startDate, expirationDate, notes? } } - {… |
| existingOffers | object | – | Current offers record (id → offer object). Pass {} for a fresh start. |
No output schema declared.
No examples provided.
ats_pipeline_analytics ~138
Analyze the ATS hiring pipeline. Given candidates and optional pipeline stage config, returns stage distribution, conversion rates between stages, average time-in-stage, and bottleneck identification. Useful for hiring funnel analysis.
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array | yes | Array of candidate objects, each with id, currentStage, jobId, createdAt, updatedAt, and optionally activities[]. |
| jobId | string | – | Optional: filter analytics to a specific job ID. |
| stageOrder | array | – | Ordered array of stage names. Defaults to: ["applied","screening","phone-screen","interview","final-round","offer","hired","rejected"] |
No output schema declared.
No examples provided.
ats_schedule_interview ~199
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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | Action to perform: - { type: "create", interview: { candidateId, candidateName, jobId, jobTitle, type, scheduledDate, durationMinutes, interviewers, location?, meetingLink?, notes? } } - { type: "upd… |
| existingInterviews | object | – | Current interviews record: Record<id, interviewObject>. Pass {} for fresh start. |
No output schema declared.
No examples provided.
ats_search ~155
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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | Action: "search" (query, scope?, limit?), "filter_candidates" (filters: {stage?, jobId?, tags?, minScore?}), "get_entity" (entityType, entityId). |
| state | object | yes | Full ATS state: { candidates: Record<id, obj>, jobs: Record<id, obj>, interviews: Record<id, obj>, offers: Record<id, obj> } |
No output schema declared.
No examples provided.
batch_parse_resumes ~67
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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | Array of files to parse |
No output schema declared.
No examples provided.
classify_entities ~182
Run Named Entity Recognition on resume text. Extracts 12 entity types (PERSON, ORGANIZATION, DATE, SKILL, LOCATION, EMAIL, PHONE, URL, EDUCATION_DEGREE, CERTIFICATION, JOB_TITLE, METRIC) with per-entity confidence scores (0-1) and domain-aware disambiguation (e.g., Java the language vs Java the island). Returns classified entities grouped by type, confidence statistics, and ambiguity analysis. 100% algorithmic — no AI calls needed.
| Name | Type | Req | Description |
|---|---|---|---|
| entityTypes | array | – | Filter to specific entity types (e.g., ['SKILL', 'JOB_TITLE']). Default: all types. |
| minConfidence | number | – | Minimum confidence threshold (0-1) to include an entity. Default: 0 (all entities). |
| resumeText | string | yes | The raw text content of a resume |
No output schema declared.
No examples provided.
compute_similarity ~100
Compare a resume against a job description using cosine similarity, Jaccard index, TF-IDF overlap, and skill matching. Returns a computed fit tier (strong/moderate/weak/poor), per-skill gap analysis with categories, and actionable gap recommendations. No AI calls — all scoring is algorithmic.
| Name | Type | Req | Description |
|---|---|---|---|
| jobDescription | string | yes | The job description to match against |
| resumeText | string | yes | The raw text content of a resume |
No output schema declared.
No examples provided.
detect_patterns ~78
Detect and structure date ranges, metrics, sections, and work experience from resume text. Returns structured experience entries with titles, organizations, technologies, and achievements extracted algorithmically using NER, date patterns, and TF-IDF. Also detects career progression trajectory. No AI calls.
| Name | Type | Req | Description |
|---|---|---|---|
| resumeText | string | yes | The raw text content of a resume |
No output schema declared.
No examples provided.
export_results ~66
Export parsed resume results to a specified format (JSON or CSV text). Accepts an array of structured resume results and returns formatted output.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | yes | Export format: json or csv |
| results | array | yes | Array of parsed resume results with fileName and structured data |
No output schema declared.
No examples provided.
extract_experience_structured ~104
Extract and structure work experience from resume text using algorithmic analysis only (no AI). Uses date range detection, metric extraction, NER entity classification (job titles, organizations, skills), and heuristic block splitting to produce structured experience entries. Each entry includes detected title, organization, date range, duration estimate, associated metrics/achievements, and technologies. Returns structured data plus overall career statistics.
| Name | Type | Req | Description |
|---|---|---|---|
| resumeText | string | yes | The raw text content of a resume |
No output schema declared.
No examples provided.
extract_keywords ~90
Extract keywords from resume text using TF-IDF analysis, then overlay entity classification (NER) and skill categorization. Returns ranked keywords enriched with entity type, skill category, and confidence scores. No AI calls — all computation is algorithmic.
| Name | Type | Req | Description |
|---|---|---|---|
| resumeText | string | yes | The raw text content of a resume |
| topN | number | – | Number of top keywords to return (default: 40) |
No output schema declared.
No examples provided.
extract_skills_structured ~164
Extract and categorize skills from resume text using algorithmic analysis only (no AI). Combines NER entity classification (with disambiguation), TF-IDF keyword ranking, section detection, and frequency-based proficiency estimation. Returns skills organized by 13 categories (programming_language, framework, database, devops_cloud, ml_ai, design, methodology, tool, soft_skill, testing, security, web_frontend, mobile, other) with estimated proficiency levels and supporting evidence. Far more structured than extract_keywords — use this when you need categorized, proficiency-rated skill output.
| Name | Type | Req | Description |
|---|---|---|---|
| requiredSkills | array | – | Optional list of skills to specifically check for (returns match/miss status for each) |
| resumeText | string | yes | The raw text content of a resume |
No output schema declared.
No examples provided.
inspect_pipeline ~91
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 audit. Use this to understand HOW the parser processes a resume and WHERE confidence is low.
| Name | Type | Req | Description |
|---|---|---|---|
| resumeText | string | yes | The raw text content of a resume |
No output schema declared.
No examples provided.
manage_candidates ~160
Manage and analyze candidates: rank by fit, filter by criteria, recommend pipeline stage changes, compare candidates side-by-side, or get a summary. Operates on candidate data passed in — does not access browser storage.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Action: rank (sort by fit), filter (by criteria), recommend_stage (suggest stage moves), compare (side-by-side), summarize (overview stats) |
| candidates | array | yes | Array of candidate objects with id, firstName, lastName, email, currentStage, tags, resumeData, assessmentResult |
| criteria | object | – | Filter/rank criteria: requiredSkills, minimumRating, stages, tags, sortBy, limit |
| jobDescription | string | – | Optional job description for relevance ranking |
No output schema declared.
No examples provided.
parse_resume ~92
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.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Base64-encoded file content, or a URL string when fileType is 'url' |
| fileType | string | yes | File type: pdf, docx, txt, md, or url |
No output schema declared.
No examples provided.
send_email ~140
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.
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | Array of resume results to include |
| smtpHost | string | yes | SMTP server host |
| smtpPass | string | yes | SMTP password or app password |
| smtpPort | number | – | SMTP server port (default: 587) |
| smtpSecure | boolean | – | Use TLS (default: false) |
| smtpUser | string | yes | SMTP username/email |
| subject | string | – | Email subject (optional) |
| to | string | yes | Recipient email address |
No output schema declared.
No examples provided.
How do I install the io.github.XJTLUmedia/ai-hr-management-toolkit MCP server?
io.github.XJTLUmedia/ai-hr-management-toolkit runs locally as an npm package, launched with npx -y mcp-ai-hr-management-toolkit. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · mcp-ai-hr-management-toolkit
claude mcp add xjtlumedia-ai-hr-management-toolkit -- npx -y mcp-ai-hr-management-toolkit
What is the io.github.XJTLUmedia/ai-hr-management-toolkit MCP server?
io.github.XJTLUmedia/ai-hr-management-toolkit is an MCP server listed in the public MCP registry as io.github.XJTLUmedia/ai-hr-management-toolkit. AI HR toolkit: 24 MCP tools for resume parsing, skill extraction & ATS management. This page covers its npm package (mcp-ai-hr-management-toolkit).
What tools does the io.github.XJTLUmedia/ai-hr-management-toolkit MCP server expose?
io.github.XJTLUmedia/ai-hr-management-toolkit exposes 24 tools: parse_resume, inspect_pipeline, extract_keywords, detect_patterns, compute_similarity, and 19 more. Their descriptions and schemas cost roughly 3,460 tokens of context every time the server is loaded.
Is the io.github.XJTLUmedia/ai-hr-management-toolkit MCP server still maintained?
io.github.XJTLUmedia/ai-hr-management-toolkit is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.XJTLUmedia/ai-hr-management-toolkit MCP server under?
io.github.XJTLUmedia/ai-hr-management-toolkit declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.