A job-application system I built and use myself. It turns a job description into a tailored resume and a ready-to-review application, where every claim traces to real evidence, and it stops before Submit so I make the final call.
A serious job search means hundreds of applications. Each one needs a resume tuned to the role, answers that fit the job, and the same identity, education and eligibility fields typed again and again.
The shortcuts both fail. Mass-apply bots send generic or made-up content under your name. Doing it by hand in chat tools means every application starts from zero, and small errors creep in: a wrong sponsorship answer, a claim that isn't quite true, the wrong resume attached. I wanted speed without giving up truth or control.
Software handles everything repeatable: state, screening, routing, checks, packaging, filling. The AI model only writes where writing is actually needed. Every resume claim must trace back to real evidence. The human reviews everything and is the only one who clicks Submit.
| Stage | What happens |
|---|---|
| Discover | Scouts public job boards (Greenhouse, Lever, Ashby) with freshness rules, or takes a pasted job description |
| Normalize & screen | Cleans the posting and checks work-authorization fit before any effort is spent |
| Route | Picks one of six resume families (PM, TPM, and others) using simple text matching |
| Retrieve evidence | Pulls matching proof points from a curated Evidence Pack and lists the gaps |
| Tailor | Writes a file-based "ticket" that any AI model can complete; no single provider is locked in |
| Check | Builds the resume PDF and runs automatic checks for page fit, format, keywords and unsupported claims |
| Package | Bundles the approved resume, answers and profile data into one package, marked not-approved until I sign off |
| Autofill | A Chrome extension fills the application form from that package and stops before Submit |
| Human gate | I review every field and submit myself; outcomes feed back into the ledger |
Anything that must be right every time (state, screening, checks, filling) is plain code that behaves the same way on every run. The model is used only for writing, through a file ticket that I can read before anything is used. If the AI provider changes, nothing breaks.
Live application forms broke the autofill in specific ways: React clearing uploaded files, a portal's resume parser overwriting fields, a "No" option matching inside "Latino". Each failure became a named pattern with a guard and a regression test, published in the repo.
Submit applications, accept legal terms, bypass CAPTCHAs, scrape logged-in sites, guess unknown answers, or invent experience. Leaving those manual is a safety feature, not a missing one.
Since I started applying with CareerForger, applications are getting past automated screening and into human stages: 3 interview calls from an EV maker, plus 4 assessments from an asset manager, an energy company, a strategy firm and a sales-operations team. That is the system's job: get a truthful, well-matched application in front of a person. Converting from there is on me.
Zero unsupported resume claims. Zero wrong work-authorization or sponsorship answers. Zero automated submissions. Then: how many applications pass checks without manual repair, how many fields fill correctly, and how much time it takes to go from a job description to a review-ready package.
The public repo is sanitized. It contains the code, architecture report and synthetic templates, and none of my personal data.