A self-hosted job-search agent that scans job boards, public ATS APIs (Greenhouse, Lever, Ashby), and a company watchlist of ~250 career pages in parallel. Scores, filters, and dedupes postings against your profile, then surfaces a ranked shortlist in a local web UI. Never auto-applies — it pre-fills the form and hands control back to you. Runs entirely locally with no account, server, or telemetry.
Aggregating 15+ heterogeneous sources (Greenhouse, Lever, Ashby, SmartRecruiters, Rippling, Keka feeds, plus JSearch/Adzuna and a ~250-company watchlist) meant every source had a different schema and rate limit. Solved with a job_agent/sources/ adapter layer that normalizes each source into one common job schema before deduping by URL and normalized title+company.