Multi-Country Job Applier
AI pipeline that scrapes, scores, tailors, and applies
A 5-stage pipeline (scrape → score → tailor docs → apply → notify) that covers Canada, Singapore, and Australia. Generates tailored CVs and cover letters via a local Ollama model and submits applications via email or Playwright-driven browser automation.
Open the live appproblem
Applying broadly across multiple countries means rewriting the CV for every posting and managing per-country quirks — Singpass, JobBank's `fglo=1` flag for international candidates, Seek Quick Apply, LinkedIn Easy Apply.
solution
FastAPI pipeline with country-specific scrapers (JobBank, Indeed, LinkedIn, MCF, Seek), a scoring model that ranks postings against your CV, an Ollama-powered tailor for CV and cover letter, and a Playwright submission layer with anti-detection (stealth JS, randomised user agents, cookie persistence).
architecture
external → compute → store → ui
outcome
One CV strategy, three countries covered, applications submitted on a schedule with a full audit trail. Adding a new country = adding one entry to `COUNTRY_REGISTRY`.
stack
capabilities
- →Country-specific scraping (CA · SG · AU)
- →Opportunity scoring and de-duplication
- →AI-tailored CV and cover letter per posting
- →Browser automation with anti-detection
- →Email submission for jurisdictions that allow it
- →Per-application audit trail
lessons learned
- 01Anti-detection is a moving target — stealth JS, randomised UAs, and cookie persistence buy time, not immunity.
- 02A "relevant skills only" CV strategy beat the kitchen-sink CV in score-tracking. Recruiters skim; the AI was reflecting that.
- 03Singapore's Singpass requirement broke the apply step — generating a clean cover-letter for copy-paste was a better fit than forcing automation.