Job hunting turns chaotic real quick. Tabs everywhere, emails you lose track of, and spreadsheets that get outdated the second you close them. Most trackers either throw too many features at you or hide the useful stuff behind paywalls.
I built JobTracker to fix exactly that mess.
It gives you a clean 7-stage pipeline: Applied, Screening, Interview, Offer, Accepted — plus Rejected and Withdrawn as separate paths. Every time you change status, it automatically logs the change with a timestamp. You can add company details, role, salary range, and the original job link. There are also basic metrics showing interview rate and offer rate.
The app is live and free for core tracking here:
https://job-tracker.noorulhassan.com
I built the frontend with Next.js 15 App Router, Tailwind CSS, shadcn/ui, and SWR for data fetching. Backend runs on Fastify with full TypeScript, Drizzle ORM on PostgreSQL, and Zod for strict validation. Authentication uses httpOnly JWT cookies with rate limiting.
One thing I made sure of is a proper status state machine so you can't make invalid jumps between stages.
Here's how the transitions look in code:
const validTransitions: Record<ApplicationStatus, ApplicationStatus[]> = {
APPLIED: ['SCREENING', 'REJECTED', 'WITHDRAWN'],
SCREENING: ['INTERVIEW', 'REJECTED'],
INTERVIEW: ['OFFER', 'REJECTED'],
OFFER: ['ACCEPTED', 'REJECTED'],
};
if (!validTransitions[currentStatus]?.includes(newStatus)) {
throw new Error(`Invalid transition: ${currentStatus} → ${newStatus}`);
}
The full source is open on GitHub:
Frontend: https://github.com/codewithnuh/job-tracker
Backend API: https://github.com/codewithnuh/job-tracker-api
If you're job hunting right now, try the live app. It might actually keep things organized without the usual headache.
If you're a developer, open the repos and take a look. The code uses strict TypeScript, validation at the edges, and keeps things separated properly.
Star both repositories if the tool helps you or if the code looks solid. It helps the project reach more people and gives me real feedback on what to improve.
Follow my GitHub at github.com/codewithnuh for more projects like this.
What's the biggest pain you face when tracking job applications? Tell me in the comments.
Top comments (0)