You're viewing a demo portfolio

Join the waitlist
PRSM

candidate_screening_ranking

Active

Tool of gapup-mcp

declared in 0.2.0

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."
    }
  }
}

What this tool wraps· 0 endpoints

min confidence0.700.50

No endpoints wrapped at confidence ≥ 0.50.

Parent server

gapup-mcp

https://github.com/getgapup/gapup-mcp-public

2/7 registries
View full server →
candidate_screening_ranking — gapup-mcp — PRSM MCP