Case study
Grad Job Tracker
A graduate job-application tracker built around analytics: it tracks applications, stages and interviews, then uses statistics, TF-IDF text mining and hand-written machine-learning models to show what is and isn't turning applications into interviews.
Overview
Grad Job Tracker is a team-built Blazor Server application for tracking graduate job applications. It is an analytics app that happens to have a tracker: every other screen exists to feed clean data into the statistics and machine-learning layer.
Problem
Graduates send dozens of applications per hiring season and usually track them in a spreadsheet, which records what happened but cannot explain why some applications turn into interviews and others don't.
Users
Graduates and students applying for roles who want to know which tactics, sources and skills are actually getting them interviews.
Outcome
A team project I led from setup to submission, where my own work centred on the analytics and machine-learning layer that makes the tracker useful.
Main capabilities
- Dashboard, drag-and-drop Kanban board, searchable application list and application details.
- Interview rates by skill, source, location and salary band with 95% confidence intervals.
- TF-IDF skill demand, skill extraction from job descriptions and skill-gap ranking against the user's profile.
- Per-application interview prediction, a what-if predictor and plain-English insights.
- Interview calendar with .ics export, company stats and CSV/JSON import and export.
My contribution
- Led the team of three: wrote the project spec and task split, ran the kickoff, set up the solution, packages and GitHub Actions CI, and owned the shared DbContext and DI wiring.
- Reviewed and merged the team's pull requests, integrated everyone's features, checked the build in Visual Studio 2022 on Windows and prepared the final submission and report.
- Built the statistics module: conversion funnel, interview rates with confidence intervals, reply timing and ghosting rate.
- Wrote the text pipeline by hand: tokenizer, TF-IDF, cosine similarity, a skill dictionary with synonyms and skill-gap ranking.
- Implemented logistic regression and naive Bayes from scratch, with feature building, 5-fold cross-validation, a baseline comparison and explained per-application predictions.
- Built the insight generators and the Analytics page, plus the skills-and-fit panel on the application details page.
Technical approach
- Four projects (Core, Data, Analytics, Web) keep the domain model, EF Core data access, analytics and Blazor UI separate.
- Pages talk to services through interfaces, so each teammate could build against agreed contracts in parallel.
- EF Core with SQLite creates and seeds the database on first run, so the app needs no server install.
- The Analytics project has no ML libraries: TF-IDF, both classifiers and cross-validation are written in plain C#.
- NUnit tests cover statistics, text processing, models and services, and CI builds and tests on Linux and Windows.
Important engineering decisions
- Split work into vertical slices with one owner per file so three people could work in parallel without merge conflicts.
- Showed confidence intervals and greyed out small groups so users can tell a real pattern from noise.
- Compared every model against an always-the-average baseline using log loss, so the app only trusts a model that beats it.
- Generated insights from the statistics as plain sentences instead of leaving users to read every chart.
Challenges and trade-offs
- Coordinating a team on a short deadline while also building the largest slice of the app.
- Getting useful, honest predictions from a small dataset without overstating what the models know.
- Keeping the build working on lab PCs with Visual Studio 2022 and .NET 9 while developing on macOS.
Contact
I’m open to graduate and junior software, data and technology opportunities.
Send me an email or connect with me on LinkedIn. I’m especially interested in Sydney and Melbourne roles across software engineering, fintech, full-stack product work, data and technology consulting.