I built a job tracker

Job searching generates enough noise on its own. Roles across multiple platforms, listings that disappear, no single place to make sense of it all. So I built something to keep track of it.

3 min read

A spreadsheet technically works. It just kept getting messier. More tabs, more manual updates, no clear picture of what I had already looked at versus what still needed a decision.

So I built something for it.

What it does

Each role captures title, company, location, applied date, status, source platform, a link back to the original ad, notes, and a full job ad field so the text does not disappear when the listing closes. Roles sit in a status pipeline: unactioned, to apply, applied, interviewing, offer, rejected. Stats across the top show a live count at each stage so I know where things stand without having to scroll through everything.

The scan function takes keywords, locations and source platforms and goes off and crawls SEEK, LinkedIn, Indeed and Glassdoor for matching roles. New listings land straight in the list. Anything I find through other channels I can add manually.

The data can be viewed as a table or a kanban board depending on what is useful. There is also an import and export function. I opted to keep everything in local cache rather than build out authentication. For something I built for myself it was the simpler call and I did not need the overhead.

How I built it

Claude wrote most of the code. GitHub for version control, Firebase for the backend. Runs as a hosted web app.

What I got out of it

Building something for yourself is a good way to actually finish a side project. You already know what it needs to do and you notice immediately when it does not. There is no scope creep because the only stakeholder is you.

It also turns out that vibe coding a job tracker while job searching is a reasonable way to spend an afternoon.

By Curtis Blunden

30 March 2026