Loading...

Job Tracker

Job Tracker is a modern, self-hosted web application designed to help job seekers stay organised, focused, and in control of their application process. Built with a React frontend and an ASP.NET Core API, it provides a fast and responsive experience while keeping your data private and fully under your control.

Whether you are applying to a handful of roles or managing dozens of opportunities, Job Tracker turns a messy spreadsheet process into a structured workflow.

Why I Built It

Many job seekers rely on spreadsheets, notes apps, or scattered emails to manage applications. That quickly becomes difficult to maintain.

I built Job Tracker to solve common frustrations:

  • Forgetting when to follow up
  • Losing track of recruiter conversations
  • Not knowing which companies replied
  • Managing multiple CV versions and documents
  • Seeing no clear progress over time

The goal was to create a tool that feels professional, lightweight, and genuinely useful during a job search.

Key Features

Application Management

Track every application in one place with rich details such as:

  • Status (Applied, Interview, Offer, Rejected, Ghosted, etc.)
  • Date applied
  • Salary expectations
  • Notes
  • Tags
  • Links to job adverts
  • Follow-up dates
  • Deadlines

Smart Dashboard

A clean analytics dashboard helps you understand your progress instantly.

See:

  • Active applications
  • New applications in the last 30 days
  • Average time to first response
  • Responses logged
  • Conversion funnel by stage
  • Most common skills across roles
  • Application trends over time

This turns your job search into measurable progress.

Follow-Ups & Reminders

Never lose momentum.

The reminder system highlights roles that need attention using configurable rules, such as:

  • No reply after X days
  • Follow-up date due
  • Missing tailored CV
  • Interview preparation needed
  • Stalled opportunities

Company CRM

Manage companies as well as jobs.

Store:

  • Company location
  • Source platform
  • Recruiter names
  • Contact details
  • Last contact date
  • Next contact date
  • Pipeline stage

Correspondence Tracking

Keep all communication linked to each application:

  • Emails
  • LinkedIn messages
  • Recruiter notes
  • Call summaries
  • Interview updates

Attachments & Documents

Upload and manage files per application:

  • CVs
  • Cover letters
  • Portfolios
  • Notes
  • Job descriptions

Includes rename, download, and delete support.

Import Jobs from URLs

Paste supported job advert links and generate a preview to quickly create entries instead of typing everything manually.

Optional AI Features

Supports a local AI service for:

  • Short summaries
  • Full role descriptions
  • CV block classification
  • Future smart automation ideas

Designed to work locally for privacy-conscious users.

Technical Overview

Frontend

  • React
  • Responsive UI
  • Dark modern interface
  • Fast filtering and search

Backend

  • ASP.NET Core (.NET 9)
  • REST API
  • EF Core
  • Background jobs

Data

  • SQLite by default
  • Export to JSON / CSV
  • Daily automated backups

Deployment

Runs locally or in Docker using separate containers for:

  • Frontend
  • API
  • Optional AI service
  • Optional Ollama integration

Why Self-Hosted?

Unlike SaaS tools, Job Tracker gives you:

  • Full ownership of your data
  • No subscriptions
  • No third-party lock-in
  • Local deployment
  • Easy backups
  • Customisable features

Built as a Real Product

This project demonstrates full-stack engineering across:

  • Product design
  • Frontend development
  • Backend APIs
  • Authentication
  • Database design
  • Docker deployment
  • Background processing
  • UI/UX decisions
  • Performance optimisation
  • Feature planning

Future Roadmap

Planned improvements include:

  • OpenAPI documentation
  • Multi-user support
  • Improve CV tailoring workflows
  • Improve Gmail integration
  • Job market analytics

Summary

Job Tracker is more than a portfolio project — it is a real productivity tool built to solve a genuine problem with practical engineering decisions, scalable architecture, and a polished user experience.