AI · Automation
Job Application Pipeline
An end-to-end pipeline that searches official job APIs, removes duplicates, and uses Google Gemini to write a grounded, tailored cover letter and attach the matching CV for each role — with a human-review gate so nothing is ever submitted automatically.
Overview
Job hunting is repetitive search plus careful, honest writing. This pipeline automates the search and the first draft while keeping a human firmly in the loop. It pulls roles from official APIs, deduplicates them against a tracker, and tailors a cover letter that draws only from a single source-of-truth profile — then stops, so I review and send every application myself.
What it does
🔎 Multi-source search
Pulls hundreds of roles from Adzuna and Remotive — official APIs only, deliberately no LinkedIn/Indeed scraping (ToS and ban risk).
🧹 Stable dedupe
Jobs are keyed by their source ID, not URL, to defeat rotating redirect tokens that otherwise create phantom duplicates.
✍️ Grounded tailoring
Gemini drafts each cover letter from a single master profile only — real specifics, no fabrication — and attaches the best-matching CV variant.
🛑 Human-review gate
Every draft lands in a per-job folder for review. Nothing auto-submits to a portal and nothing is sent without a human.
How it works
- Search: a broad sweep across Adzuna (regional) and Remotive (remote) collects 250+ unique jobs per run.
- Dedupe: results are matched against a CSV tracker by stable source ID, so already-seen roles are skipped.
- Tailor: for each new role,
gemini-2.5-flash(with a fallback model) writes a cover letter grounded in the master profile. - Package: each job gets a draft folder with the application text, cover letter, and matching CV PDF.
- Hand off: roles with a contact email can become a Gmail draft via the Gmail API, ready for a human to review and send.