Screen every job applicant against the role and get a scored shortlist
Starts when new applications arrive for a role. Ends with a scored shortlist, a written reason for each candidate, and unreadable files sent to a person.
Bring the step you are stuck on: 30 minutes, a straight answer and the next step. If you would rather have it built, a reply within 5 working days.
The route
7 steps: 3 rule steps, 1 AI step and 1 person step
Copy, share, discuss
- Copy
Available once this workflow passes its checks.
- Share
todkett.com/automations/hr-recruiting/ai-resume-screening/
- Discuss
Opens when the first workflow passes its checks. No GitHub account? Ask about this by form.
How the library, the tracks and the talk work: the community page.
At a glance
- Starts when
- A schedule per open role pulls the new applications for that role.
- Input
- New applications for one role, pulled from the applicant tracking system across every page.
- Output
- A scored shortlist, a written reason for each candidate, and unreadable files sent to a person.
- AI
- Uses AIScoring each readable resume against the role checklist, with a written reason.
- Rule checks
- 7 checks around the AI
- Tools
- BambooHR, OpenRouter, Google Sheets
- Last stress test
- No recorded run yet
01Steps
The steps
7 steps: 3 rule steps, 1 AI step and 1 person step. Example: your first job post gets 150 applicants and nobody is a recruiter. Resumes arrive in mixed formats, location rules get applied unevenly on a busy day, and good people are missed.
01Trigger
Pull new applications
New applications for one role, pulled from the applicant tracking system across every page.
02Rule step
Location rules
Location rules run first: applicants outside the area never reach the AI step.
03Rule step
Read the resume
Read the resume in any format, or fall back to the application answers when no file can be read.
04Person step
Unreadable files to a person
Unreadable files and applicants with no address go to a person, never to an automatic rejection.
05AI step
AI scores, three votes
AI scores the candidate against the role checklist and writes a reason, three times per candidate.
06Rule step
Check and compute the match
Code checks the answer format, retries an incomplete answer and computes the match from the three scores.
07Output
Write the results
Score, reason and decision written to a results sheet and to the applicant record.
Results sheet
02Where AI is used
Where AI is used, and what stays with you
AI reads, judges or drafts. Fixed rules check, decide and route. A person approves anything that goes out.
AI step
Step 05Scoring each readable resume against the role checklist, with a written reason.
Reading resumes is language work. Location rules, thresholds and the match itself stay in code.
What the model reads
- The resume text of applicants who passed the location rules, capped at 60,000 characters.
- The role checklist it scores against.
What it never sees or decides
- Applicants outside the area: location rules remove them before any AI cost.
- Files nobody can read: those go to a person.
- The match or the threshold: code computes the match from three votes.
Model calls: 3 model calls per candidate.
Fixed rules
They check, decide and route. 3 rule steps.
- 02Location rules
- 03Read the resume
- 06Check and compute the match
A person
- 04Unreadable files and applicants with no address go to a person, never to an automatic rejection.
03Checks
Checks around the AI
What runs before the model, and what checks its answer after, in plain words. Build these into your version too.
- 01Location rules run before any AI cost.
- 02A has-document check picks how to read each file: text, image or none.
- 03Unreadable or address-less candidates go to a person, never to an automatic rejection.
- 04Resume text is capped at 60,000 characters.
- 05The model must answer in strict JSON; a broken answer is retried automatically.
- 06Three votes per candidate; code computes the match percentage.
- 07Spreadsheet formula injection is blocked in the output.
04The 8 checks
Stress test
The 8 checks we run on every workflow, and you can run too. A check marked Not needed says why.
- Status
- Not yet0 of 8 that apply have a recorded pass
- Last run
- No recorded run yet
- Model review
- Still open
Checks marked Not yet are still open. 2 of them were seen in the workflow design on 23 Oct 2026; a check shows Passed only once its test run is recorded.
ST4Failure recovery
Status: Not yet
Seen in the workflow design on 23 Oct 2026. The recorded test run is still open.
ST8Rules around the AI
Status: Not yet
Seen in the workflow design on 23 Oct 2026. The recorded test run is still open.
0 passed · 0 not needed · 8 not yet
What we testWe show what we tested, never the test data. The example below is made up.
05Test replay
How to test it
Before you trust a workflow, try to break it. The sample record runs the route step by step. Each break test below gets its own replay once its recorded run exists.
- Record
- APP-2071
- Data
- Sample run, made-up data
01Pull new applications
Application in for the support lead role
Done02Location rules
Based in Bangalore: passes the location rule
Done03Read the resume
PDF resume read as text
Done04Unreadable files to a person
File readable: no person needed
Skipped05AI scores, three votes
Scored three times against the checklist, with a reason
Done06Check and compute the match
Answers valid; match computed in code
Done07Write the results
One row in the results sheet
Results sheetArrived
APP-2071 reached the last station: Results sheet. One row in the results sheet.
Sample run on made-up data. No stress-test run is recorded yet, so this plays the example, not a test. Nothing runs live.
The break tests for this workflow
- ST3Not yet
Same input sent twice
No recorded run to replay yet.
- ST2Not yet
Instructions hidden in the input
No recorded run to replay yet.
- ST4Not yet
A connected service fails
Seen in the workflow design. No recorded run to replay yet.
- ST8Not yet
The AI returns a broken answer
Seen in the workflow design. No recorded run to replay yet.
06Example
The example, in and out
Made-up data, written to show the steps; no recorded run stands behind it yet. Fernway is a made-up small software company, and its address ends in .example, so it cannot belong to a real business.
InputExample
Example on made-up data: a support lead role at Fernway, based in Bangalore. Three applications: one in Bangalore with a PDF resume, one outside the area, one with a resume that is only a scanned image.
OutputExample
Outside the area: handled by the location rule, no AI call. Scanned image with no readable text: sent to a person. PDF resume: scored against the role checklist with a written reason, three votes, the match computed in code, and one row written to the results sheet.
07Limits
When not to automate this
- It does not make hiring decisions. A person decides who moves on.
- Rules on automated decisions about job applicants differ by place, for example New York City and the EU. Check the rules where you hire before using it.
- With a handful of applicants a month, reading them yourself is faster than setting this up.
08What you need
What you need to run it
| Tool | Access |
|---|---|
| BambooHR | Read the applications for one role and write the score and reason back |
| Google Sheets | Write one results sheet per role |
| OpenRouter | One API key with a credit limit, for the scoring step |
- Where it runs
- In n8n, self-hosted or n8n cloud.
- Model calls
- 3 model calls per candidate.
- Running costs
- Yours, paid to each service directly. Scope in writing first. A quote before any build. No prices on the site yet.
How to adapt it
Changes we have made or tested on this workflow.
- 01Take three AI votes per candidate and compute the match percentage in code, instead of one score.
- 02Run one copy per open role, each on its own schedule and role checklist.
What changed
- ContentFirst version, written from the 23 Oct 2026 catalog.
09FAQ
Questions people ask about it
Does AI reject candidates?
No. AI scores each readable resume and writes a reason. Location rules run first in code, and unreadable files go to a person. A person's sign-off on every rejection is check ST7, and it has not been recorded as passed yet.
Which resume formats does it read?
PDF, Word, older .doc files, RTF, HTML and images. When no file can be read, it uses the answers from the application form instead.
How is the match worked out?
The current version asks the model three times per candidate. Code checks each answer and computes the match percentage from the three scores, so one odd answer does not decide the result.
10Related
Where to go next
Use cases
6 steps
7 steps
Free tools
Stuck on your version of this workflow?
Bring the step that does not work. In 30 minutes you get a straight answer and the next step. If you would rather have it built, tell us your tools and the rules you already follow. Scope in writing first. A quote before any build. No prices on the site yet.