HireTrack: an AI résumé tailor and job-application tracker
Built an open-source, offline-first tracker that moves applications through a fixed pipeline and tailors résumés with a deterministic-first LangGraph flow.
- Role
- Sole author, end to end
- Period
- From June 2026
- Status
- Shipped and open source, with a live deployment. No adoption to report. (as of 17 August 2026)
- Outcome
- I wrote every commit made from 24 June to 24 July 2026, 89 in all, in a public repository.
01 / Problem
Tracking job applications means juggling stages, postings and résumé versions. I wanted one app that moves each application through a fixed seven-phase pipeline and tailors a résumé to each posting with AI. Two constraints shaped it. No API key should sit on a server, mine or anyone's. And the app had to work with no account and no network, so sync had to be optional. It also had to read and write DOCX, PDF and Markdown, because that is what résumés come as.
My role: Sole author, end to end: product, app, AI pipeline, sync and MCP server.
02 / System
Select a component to read what it does and how it fails.
- Browser app. React 19 and Vite app that runs offline from local storage, no account needed. Data stays on the device unless sync is on.
- File import. Reads and writes DOCX, PDF and Markdown in the browser, with no server round-trip. Extraction is only as good as the source file.
- LangGraph flow. Parses and scores the posting, then tailors the résumé. Code decides what it can; the model gets the rest, including unfamiliar phrasing.
- AI provider. One of five providers, using the user's own key, so no key is stored on a server. A bad key surfaces as the user's error.
- Storage and sync. Local storage first. Optional Supabase sync uses Auth and row-level security over one applications table. With sync off, nothing is backed up.
- MCP server. A separate Next.js 15 package lets an AI assistant read and write applications over remote MCP. It deploys, and can fail, separately.
03 / Decisions
Code before the model
- Decision
- A LangGraph pipeline where deterministic steps run first and the model is called only where code cannot decide.
- Rejected
- One prompt that takes a résumé and a posting and returns a tailored résumé.
- Why
- Code steps repeat exactly, cost nothing to run and can be read. I can say why a posting scored the way it did. A single prompt gives me none of that.
- Cost
- More graph to build, and rules I have to keep honest as postings change.
Bring your own key
- Decision
- Users supply their own key for one of five providers, and no key is stored on a server.
- Rejected
- A hosted proxy using my key behind a quota.
- Why
- A key I hold is a key I can leak, and a bill I have to cap. With the user's own key, neither exists.
- Cost
- Every user needs a key before the AI features work, and I support five providers instead of tuning for one.
Offline first, sync optional
- Decision
- Full function from local storage with no account, optional Supabase sync behind row-level security, and parsing and export in the browser.
- Rejected
- An account-first app with a server database.
- Why
- The app works with no signup and no network, and a résumé is parsed and exported without a server round-trip.
- Cost
- Two storage paths to keep consistent, and no cross-device data for anyone who skips sync.
04 / What broke
I have no incident to report and will not invent one. The honest boundary is testing: there is no test runner. I checked changes with a type-check and manual testing in the browser, so the pipeline has no regression suite.
05 / Outcome
- I built the tracker, the tailoring pipeline, optional sync and a remote MCP server, and shipped them in one public repository.
- Parsing and export of DOCX, PDF and Markdown run in the browser, and the whole app works offline with no account.
- The repository and the live deployment are public. I claim no adoption: the value here is the design, and the code is there to read.
06 / The rule I took from this
Stack
Next
Working on something similar? Email me about this build.
Related: AI agents working inside a live ERP, Architecture for a multi-tenant lead-intelligence SaaS.
Hiring for this kind of work? AI backend engineer.
Next case study: Low-cost single-lead ECG for vascular-age prediction.