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.

Python Adzuna API Remotive API Google Gemini Gmail API CSV tracker
job-autoapply — pipeline run ~/Projects/job-autoapply
Job Application Pipeline cover art

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

Designed around honest framing and consent: it tailors language to each ad without inflating experience, uses a cheap dry-run pass to triage cheaply before spending on AI, and never presses "submit" for you.

← All projects