Enrich
Each unprocessed applicant's CV is downloaded from Google Drive and converted to text, while their GitHub URL is queried through the GitHub API to summarize public repos, languages, and stars.
An end-to-end n8n automation that pulls unscreened applicants from a Google Sheet, extracts their CV text, enriches it with their public GitHub activity, scores each candidate with Claude against a weighted rubric, and routes a ranked, role-specific shortlist to the hiring team's inbox.
Manually screening every applicant against a CV, a GitHub profile, and a GPA cutoff doesn't scale once a role gets more than a handful of submissions — reviewers end up skimming instead of comparing. This project set out to build a complete pipeline that could read every unprocessed applicant end-to-end and hand the hiring team a ranked, evidence-backed shortlist instead of a raw spreadsheet.
The workflow was built entirely in n8n, combining classic data plumbing (Google Sheets reads/writes, Google Drive downloads, GitHub API calls) with an AI scoring stage powered by Claude, chained into a single automated pipeline that runs per role.
A raw "Master Response" sheet has a name, an email, a CV link, a GitHub URL, a GPA, and a role — but none of that is comparable at a glance. Reading a CV, checking a GPA cutoff, and skimming a GitHub profile for every applicant is exactly the kind of repetitive, judgment-light work that doesn't need a human doing it thirty times in a row.
On top of that, four different roles (AI/ML Engineer, Full Stack, Video Editing, Game Development) were being screened against the same sheet, which meant the pipeline had to fan out candidates by role, score them fairly, and still make the final call to the hiring team, not the machine.
Rather than one opaque AI call, the problem was split into focused stages chained together — a strategy grounded in how structured hiring rubrics work in practice (Schmidt & Hunter, 1998), where breaking a decision into weighted, evidence-backed criteria consistently outperforms a single holistic judgment.
Each unprocessed applicant's CV is downloaded from Google Drive and converted to text, while their GitHub URL is queried through the GitHub API to summarize public repos, languages, and stars.
A GPA ≥ 3 gate filters out disqualified candidates before the rest are scored by Claude against a fixed rubric — CV fit 40%, GitHub 30%, GPA 20%, communication 10% — returning a structured score and reasoning.
Scored candidates are appended to their role's sheet, and once every applicant is processed, each role's top 3 by score are compiled into an HTML digest and emailed to the hiring team.
Decades of selection-research findings (Schmidt & Hunter, 1998, Psychological Bulletin) show that combining a small set of weighted, evidence-based predictors consistently outperforms unstructured, holistic candidate review.
The strongest lever for consistency was locking a fixed weighting — CV fit, GitHub, GPA, communication — before any candidate was scored, so the AI is filling in evidence against a rubric rather than forming a free-floating opinion.
Instead of auto-advancing a "winner," every digest is explicitly labeled as requiring manual review — the workflow surfaces a ranked, evidence-backed shortlist per role, but the hiring decision stays with the hiring team.
The pipeline reliably enriches, scores, and routes every unprocessed applicant, then produces a clean HTML digest per role — ranked by score, with GPA, contact info, and a trimmed reasoning excerpt for each of the top 3 candidates.
Every digest is explicitly framed as requiring manual review — the workflow narrows the field to a ranked top 3 per role, but it never advances a candidate on its own.
Public repo activity and extracted CV text are used as scoring signal, not verified fact — a thin GitHub profile or a poorly parsed PDF can understate a genuinely strong candidate.
The pipeline trusts the Master Response sheet's columns (CV Link, GitHub URL, GPA, Role Applied For) exactly as entered, so malformed links or missing fields fall through to graceful-but-lower-signal scoring rather than being caught upfront.
The finished workflow reliably turns a raw applicant sheet into a ranked, reasoned shortlist per role without ever making the final hiring call itself, validating the core idea behind the build: automate the repetitive evidence-gathering and scoring, and leave the judgment call to the people who own the decision.
The clearest next step is adding basic validation on the source sheet's CV and GitHub links, and expanding the rubric with a structured interview stage once candidates are shortlisted.
Tell us what you are trying to make clearer, faster, or more capable.
Start a conversation ↗