Set up the AI Recruiter
About 15 minutes on n8n Cloud (longer on self-hosted n8n, where you first create your own Google OAuth client). Everything you need to go from download to the first drafts, in order. Ticks are saved in this browser so you can come back later.
Before you start
- n8n (Cloud or self-hosted)
- Google account: Sheets + Gmail
- OpenAI API key
- Job description, must-haves, nice-to-haves (Config)
1. Pick where it runs
- Log in to your n8n Cloud workspace.
- Workflows → Import from file.
- Pick the file(s) in
workflow/.
- Open your n8n (Docker or npm, v1.x/2.x).
- Workflows → Import from file.
- Same files; nothing else changes.
- Create a Custom GPT or Claude Project.
- Paste
gpt/INSTRUCTIONS.txt. - Upload your sheet or paste rows in.
2. Setup checklist
3. Connect your tools
| Service | Nodes that use it |
|---|---|
| Google Sheets | Get New Candidates, Write Back to Sheet |
| OpenAI | Screen Candidate |
| Gmail | Create Outreach Draft |
In each node, choose Create new credential and sign in (Google uses OAuth; OpenAI takes an API key). n8n stores credentials in your instance, not with us.
Run budget (n8n executions)
n8n Cloud counts one execution each time a schedule fires, even when nothing is new. Runs you start with Execute workflow in the editor don't count. n8n Cloud Starter includes 2,500 a month.
| Workflow | Default schedule | Cron | Executions |
|---|---|---|---|
| Recruiter | On demand (manual trigger) | - | 0 counted (manual runs don't count) |
This employee at the defaults: 0 scheduled a month. All five AI employees on Workforce at their defaults: about 790 a month (724-833 depending on the number of weekdays), about a third of Starter's 2,500.
It runs when you click Execute workflow on a new batch. To schedule it, add a Schedule Trigger with a cron such as 0 8 * * 1-5 (weekdays 08:00, about 22 a month) and publish the workflow.
What the statuses mean
| Status | Meaning | Your next step |
|---|---|---|
outreach_drafted | Shortlisted, outreach draft in Gmail | Review the scorecard, then send |
screened | Scored, no draft | Read the scorecard; a human decides |
error | See the error column | Fix, then set status back to new and re-run |
Troubleshooting
| Symptom | Fix |
|---|---|
| cv_chars = 0 | The cv_url isn't a direct PDF link (e.g. a Drive preview page) → use a direct download link or paste text into cv_text |
| Scanned CVs score low | Image-only PDFs have no text → paste the text or OCR them first |
Guardrails
- EU AI Act: AI used to screen or rank job applicants is classed as high-risk. Use this pack as decision support with meaningful human review; don't auto-reject. Tell candidates you use AI-assisted screening and keep records. Check your obligations with counsel. Not legal advice.
- GDPR: CVs are personal data. Have a lawful basis, tell candidates how their data is processed (including by your LLM provider), and set a retention period.
- Audit periodically: compare scores across groups you can lawfully monitor, and read a sample of
not_a_fitscorecards by hand.