Septaneuron
Home Services Work About Contact
Start a Project
← Back to selected work
AUTOMATION / AI HIRING

Teaching a workflow to read resumes, GitHub profiles, and rank a shortlist.

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.

Automation Project · n8n + Claude AI2025
HR
RECRUITMENT
WORKFLOW

N8N → CLAUDE AI
01 / Introduction

Screening doesn't have to stop at "who applied."

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.

Introduction project view

A single applicant sheet hides more signal than it shows.

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.

03 / The solution

A three-stage pipeline: enrich, score, then route.

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.

01

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.

02

Gate & score

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.

03

Route & notify

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.

04 / Foundation

Built on a structured-hiring principle, adapted into automation.

REFERENCE PRINCIPLE

Structured, weighted criteria beat gut-feel review

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.

KEY FINDING ADOPTED

Fix the rubric, then let evidence fill it in

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.

WHERE THIS PROJECT DIVERGED

A human still makes the call

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.

05 / Build process

From a raw applicant sheet to a routed, ranked shortlist.

01Read & loopPulled unprocessed rows from the Master Response sheet and looped through candidates one at a time.
02EnrichDownloaded and extracted each CV, then pulled and summarized the candidate's public GitHub repos.
03ScoreGated on GPA, then scored the remaining candidates with Claude against the weighted rubric and parsed the structured JSON response.
04Route & digestAppended each candidate to their role sheet, then compiled and emailed a top-3 digest per role.
BUILD PROCESS / WORKFLOW CANVAS + SCORING LOGICSHEET READ → ENRICH → SCORE → ROUTE → DIGEST
06 / Results

A ranked shortlist lands in the inbox, per role, with reasoning attached.

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.

07 / Limitations and scope

Honest about what a rubric-scored, sheet-backed pipeline can and can't do.

NO FINAL DECISION

Ranking, not hiring

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.

SIGNAL, NOT VERIFICATION

GitHub and CV data are taken at face value

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.

SHEET-DEPENDENT

Only as clean as the source sheet

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.

08 / Outcomes and reflections

A working, end-to-end proof that automated screening can stay human-in-the-loop.

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.

Outcomes and verdict visual evidence
Project details

Built in n8n, powered by Claude AI.

n8nClaude (Anthropic API)Google SheetsGoogle DriveGmail APIGitHub API
View the project on GitHub
Have a similar problem?

Let's build the next system.

Tell us what you are trying to make clearer, faster, or more capable.

Start a conversation