Flagship Build · AI Systems · Case Study · 01 / 06

CareerForger

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.

Python SQLite Chrome Extension Evidence-Backed AI Human Review Build in Public
The Problem

Applying Well
Doesn’t Scale.

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.

The Rule the Whole System Follows

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.

Who It's For

  • Me, first: I use it for my own US job search across PM, TPM, Product Ops and related roles.
  • Engineers and PMs who would rather run and inspect their own tool than pay a black-box service to apply on their behalf.
How It Works

Job Description
→ Reviewed Package.

StageWhat happens
DiscoverScouts public job boards (Greenhouse, Lever, Ashby) with freshness rules, or takes a pasted job description
Normalize & screenCleans the posting and checks work-authorization fit before any effort is spent
RoutePicks one of six resume families (PM, TPM, and others) using simple text matching
Retrieve evidencePulls matching proof points from a curated Evidence Pack and lists the gaps
TailorWrites a file-based "ticket" that any AI model can complete; no single provider is locked in
CheckBuilds the resume PDF and runs automatic checks for page fit, format, keywords and unsupported claims
PackageBundles the approved resume, answers and profile data into one package, marked not-approved until I sign off
AutofillA Chrome extension fills the application form from that package and stops before Submit
Human gateI review every field and submit myself; outcomes feed back into the ledger
PM Thinking

Decisions and
Trade-offs.

Deterministic first, AI second

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.

Simple over fashionable

  • SQLite, not a cloud database: one person, one machine, full audit history, no personal data on a server.
  • Keyword matching, not embeddings: the evidence set is small and hand-curated, so simple matching is transparent and good enough. Embeddings only come in if a test set proves they help.
  • A Chrome extension, not screen-driving automation: it works inside the real form, keeps my login session, and is built so it cannot submit.
Learning From Real Failures

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.

What it deliberately won't do

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.

Status & Proof

Built. Pending.
Measured By.

6
Resume families routed
3
Job-board sources scouted
18
Regression tests
  • Built: the state ledger, screening, routing, evidence retrieval, AI tickets, PDF checks, application packages, job-board scouting, an approval dashboard, and the autofill extension (v0.6.12) with guarded mappings for Greenhouse, Ashby and Lever.
  • Not built yet: the bridge that links a live job page back to its application folder, and Gmail/Notion outcome sync.
  • Rejected on purpose: automatic submission.
Early Real-World Results

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.

How I judge it

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.

← Home · All Work · CareerForger