Categories
News Personal Software

From Spreadsheet to Strategy: How I Built My Own Job Search Tool

The moment in every job search when spreadsheets stops being a tool and starts being the problem.

For me it came about one month in. I had applications scattered across three versions of a spreadsheet, resume files named things like Resume_IT_Director_v3_FINAL_v2.docx sitting in folders I could not reliably sync between my laptops and my phone, and absolutely no way to answer a simple question: “Which version of my resume did I send to that company last Tuesday?”

Article content

As an IT leader, I’ve spent years helping organizations move away from exactly this kind of chaos. Spreadsheets as databases. Local folders as version control. Manual processes where automated ones belong. It was time to take my own advice.


Treating the Job Search Like a Project

I did what I would do with any professional initiative: I drafted a project plan, defined requirements, and made architecture decisions before touching any code.

The requirements were straightforward:

  • Link the exact resume and cover letter to the specific role they were submitted for
  • Track email correspondence and interview prep notes per application
  • Access everything from any device without sync conflicts
  • Measure which job platforms were actually worth my time

That last point turned out to be more important than I expected. When you are applying to 15 roles a week across LinkedIn, Glassdoor, company sites, and recruiter referrals, you have no idea which channels are generating responses until you measure it. The gut feeling is almost always wrong.


What I Built

Job Tracker is a self-hosted web application that manages the full lifecycle of a job search. It runs on my own infrastructure; a Proxmox open-source server management platform used for enterprise virtualization with no third-party data storage, no subscription fees, and no one else touching my application history.

The dashboard shows me the pipeline at a glance: total applications, response rate, average time to response, and a follow-up queue of roles that have gone past seven days without a reply. The chart I find most useful is response rate by source, color-coded by ROI: green for platforms returning above 30%, amber for 15 to 30%, and red for below 15%. It answers the question I could never answer from a spreadsheet; where should I actually be spending my time?

Article content

The role drawer is where the version control problem gets solved. Every application has its own space for the specific resume version submitted, the cover letter, the original job description, an email log, interview prep notes organized by category, and file attachments. When a recruiter calls two weeks after I applied, I can pull up exactly what I sent them in under ten seconds.

The tracker gives me three views of the same data depending on what I need: a table with aging color-coding that turns red when an application has been waiting too long, a kanban board for moving roles through the pipeline by dragging cards, and a mobile card view for checking status from my phone.

Article content

Import works from my existing Excel tracker. Export produces a clean Excel file whenever I want one. The whole thing installed with a single script or docker deployment.


What I Learned Building It

Article content

The tooling insight was not surprising, the right environment makes a measurable difference in how organized and strategic a search feels. What did surprise me was how much clarity the dashboard created.

Seeing response rates by source in black and white forced me to stop applying everywhere and focus on the two or three channels that were actually producing conversations. That shift happened in weeks and changed the character of the search entirely.

The other thing worth noting: building this was itself a portfolio piece. Walking into a technical leadership interview having just architected, deployed, and shipped a full-stack application with authentication, multi-user data isolation, a PostgreSQL backend, and a CI pipeline is a different conversation than describing projects I’ve lead from two years ago.


Try It and Get the Code

Article content

I have a live demo running at jobtrack-demo.jermsmit.com Log in with username “admin” and password “Demo123” and explore the full interface with realistic sample data loaded.

Note: My shared demo environment will be reset to its default nightly to prevent clutter.

The complete source code, installer, and documentation are on my GitHub at github.com/jermsmit/job-tracker. It installs on any Debian or Ubuntu server with one command, and Docker Compose support is included.

If you are an IT or Software engineer going through a search right now and the spreadsheet is already feeling like the problem, this might be worth an hour of your time (or less) to set up.


Built with React, Node.js, PostgreSQL, and a genuine need to stay organized. MIT licensed.