Case study

Job Tracker Case Study

Emily Ruth · October 26, 2026

I built a job tracker and an AI vetting workflow with Claude Code that screens a posting in about a minute and keeps every decision, contact and follow-up in one place.

The problemHow it worksProduct decisionsIteratingThe hard bugWhat I'd do nextTry it

The problem

A job search spreads across LinkedIn, company career sites and a handful of job boards. A spreadsheet could hold the rows, but not the reasoning behind each one: why I passed, what employees said about the company, who I had contacted and when to follow up.

Vetting was the real time sink. Checking one posting against my criteria, then researching layoffs, reviews and remote eligibility, took far longer than reading the posting itself.

How it works

Every posting goes through the same funnel, and the AI writes its findings back to the tracker so nothing lives only in a chat.

Only postings that clear the gates and score 55+ get deep researchDaily digestemailed each weekdayCapture postingone-click bookmarkletQuick screengates + 100-point scoreScore 55+?Full vetrole + company researchSkipunless I overrideMy callapply, maybe or passTracker updatednotes, stage, reasonsyesno, or a gate hitnew postings
Vetting flow, from capture to decision.

The quick screen uses only the posting, my resume and the tracker. The full vet adds web research on layoffs, reviews, pay and remote eligibility. The final call is always mine.

Product decisions

Each rule exists to save time or to keep the AI honest about my experience.

DecisionWhy
Hard gates run before any scoringA contract role is a no regardless of fit, so the screen stops there and asks if I want to compromise.
A skill counts only with on-the-job evidenceA course or side project doesn't score. It keeps scores honest about what I could defend in an interview.
Two stages: a 1-minute screen, then a full vetDeep research only happens for postings that score 55 or higher, so time goes where the fit is.
Company research is reused for 60 daysA second role at the same company skips straight to the role, checking only for news since the last vet.
The AI never invents facts about meAnything not on my resume or confirmed by me gets flagged as an inference or asked about.
Every write checks the record's version firstIf I edit a record while the AI is updating it, my edit wins and nothing is silently overwritten.
Capture is one clickA browser bookmarklet saves any posting to the tracker from any job site.
Follow-ups schedule themselvesA follow-up date sets itself 7 days after any activity, and the tracker suggests closing out roles quiet for 30+ days.

Iterating

I treat the workflow like any product: I use it daily and change what gets in the way.

The hard bug

Jobs I had just added kept disappearing, and edits kept reverting. I exported my data, and Claude and I traced it to the sync layer. Cloud reads lag behind my own writes, and the app trusted every incoming snapshot, so stale snapshots overwrote fresh edits. The fix timestamps every save and merges by newest. I found the problem through daily use and confirmed the fix the same way.

One of our own fixes then caused a regression: opening a rejected job could move it to another tab. I caught it by asking what happens when you edit one field but not the other, and we fixed it.

What I'd do next

This is a working prototype I use daily, not production software. Next I would add automated tests, then consolidate the stage rules into a single source of truth.

Try it

The demo tracker runs on the same code with fictional companies and contacts. Open any job to see its notes, follow-ups and interviews, or the Companies tab to see how ratings roll up from each job.

The code, README and changelog are on GitHub. The changelog shows the sync fixes described above.

Built with Claude Code. I wrote the specs and tested every change myself.