candidate_screening_ranking
ActiveTool of @gapup/mcp-knowledge
AI-powered candidate screening and ranking for recruiters, hiring managers, ATS providers and recruitment AI agents. Ingests a job description and 1-50 candidate resumes, returning a ranked shortlist with score breakdowns across five weighted criteria: skills_match (tech stack and soft skills extracted from JD vs resume), experience_match (years vs seniority level inferred from JD), education_match (degree level + top-school detection), role_progression (Junior to Senior to Lead patterns), culture_fit_estimate (remote/hybrid, startup vs enterprise). Per candidate: overall_score 0-100, matched/missing skills, red_flags (job hopping, employment gaps, seniority mismatch), green_flags (long tenure, promotions), 3-5 interview questions, fit_summary. Diversity signals are first-name proxies ONLY with mandatory ethical WARNING. All processing is local -- no external API calls, instant response, privacy-preserving.
Parameters schema
{
"type": "object",
"required": [
"job_description",
"candidates"
],
"properties": {
"async": {
"type": "boolean",
"description": "If true, returns a job_id immediately (<200ms) instead of waiting for the result. Poll the result with job_result(job_id). Use for slow tools to avoid client timeouts."
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"resume_text"
],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this candidate."
},
"name": {
"type": "string",
"description": "Optional full name (used for diversity signals)."
},
"resume_text": {
"type": "string",
"minLength": 10,
"description": "Raw resume or CV text."
},
"linkedin_url": {
"type": "string",
"description": "Optional LinkedIn URL (informational, not fetched)."
},
"years_experience": {
"type": "number",
"minimum": 0,
"description": "Optional self-reported years of total experience."
}
}
},
"maxItems": 50,
"minItems": 1,
"description": "Array of candidate objects. Maximum 50."
},
"role_country": {
"type": "string",
"description": "Optional ISO 2-letter country code for regional context (informational)."
},
"job_description": {
"type": "string",
"minLength": 20,
"description": "Full text or summary of the job description and role requirements."
},
"criteria_weights": {
"type": "object",
"properties": {
"culture_fit": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"skills_match": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"education_match": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"experience_match": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"role_progression": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"description": "Optional weighting per criterion. Default: skills=0.4, experience=0.2, education=0.1, progression=0.15, culture=0.15."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
@gapup/mcp-knowledge
https://github.com/getgapup/gapup-mcp
2/7 registries