{
  "$schema": "https://promptfoo.tech/schemas/workflow-template.json",
  "name": "n8n: Resume Parser & Ranker for Job Applications",
  "slug": "n8n-hr-resume-parser",
  "platform": "n8n",
  "category": "n8n",
  "difficulty": "Intermediate",
  "tags": [
    "n8n",
    "hr",
    "recruiting",
    "openai"
  ],
  "summary": "Every emailed resume gets parsed, ranked against the JD, and pushed into your ATS with a summary and match score.",
  "overview": "Recruiters drown in resumes. This n8n workflow watches a jobs@ inbox, parses each PDF with GPT-4o vision, ranks the candidate against a job description using a structured rubric, and pushes to your ATS (Ashby, Greenhouse) with a match score and a two-line summary.",
  "variables": {
    "WEBHOOK_URL": "<your webhook URL>",
    "API_KEY": "<your provider API key>",
    "OPENAI_API_KEY": "sk-..."
  },
  "steps": [
    {
      "order": 1,
      "name": "Set up the jobs inbox",
      "description": "One inbox per role, or use +role addressing on a shared jobs@. Filter to attachments only."
    },
    {
      "order": 2,
      "name": "Vision extraction",
      "description": "GPT-4o with a strict schema: {name, email, roles: [{title, company, start, end, bullets}], skills, education}."
    },
    {
      "order": 3,
      "name": "Ranking rubric",
      "description": "JD-specific: must-have skills, nice-to-have, seniority (junior/mid/senior/staff), red flags (job hops without justification, sensitive gaps)."
    },
    {
      "order": 4,
      "name": "Match score + notes",
      "description": "'Return {score:0-10, must_haves_met, nice_haves_met, concerns[], one_line_summary}'."
    },
    {
      "order": 5,
      "name": "ATS push",
      "description": "Create candidate with the extracted fields, attach original PDF, add score as a tag or custom field."
    }
  ],
  "howItWorks": [
    "Gmail trigger on new email with attachment.",
    "GPT-4o vision extracts structured resume data (roles, tenure, skills, education).",
    "Second call ranks against the JD rubric (skills match, seniority fit, red flags).",
    "Ashby/Greenhouse API creates a candidate with tags and a summary note."
  ],
  "benefits": [
    "Recruiters open pre-ranked candidates.",
    "Zero data entry per resume.",
    "Consistent screening rubric removes reviewer variance."
  ],
  "useCases": [
    "Startups without a dedicated sourcing team.",
    "High-volume roles (support, sales, entry-level eng).",
    "Agencies managing multiple client roles."
  ],
  "example": "Match: 8/10. Summary: 'Senior FE eng, 6y React, ex-Stripe, strong design collab experience.' Concerns: 'Two < 1yr tenures in last 3 years.'",
  "faqs": [
    {
      "q": "Bias risks?",
      "a": "Real and legal. Never let the model factor names, photos, or schools into the score. Audit outputs monthly against outcomes."
    },
    {
      "q": "PII compliance?",
      "a": "For EU candidates, use Azure OpenAI in an EU region and honor deletion requests via the ATS."
    },
    {
      "q": "Cost?",
      "a": "About $0.02-0.05 per resume with GPT-4o vision."
    }
  ],
  "source": "https://promptfoo.tech/workflows/n8n-hr-resume-parser",
  "updated": "2026-06-05",
  "license": "CC-BY-4.0"
}