Selected project
Job Tracker.
A self-hosted dashboard that collects, filters, scores, and tracks early-career software roles from 200+ companies.
The project
What it does
Job Tracker is a self-hosted job-search workspace that gathers openings from Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, SimplifyJobs, JobRight, and JSearch. It runs an initial backfill when the service starts and then collects new postings every six hours, giving the user one searchable dashboard instead of many company career pages.
The collection pipeline filters for entry-level, junior, internship, and co-op software roles, excludes senior positions, and limits results to US-based or remote opportunities. Jobs can be scored using custom keywords and company preferences, added to an ordered application queue, and moved through statuses from new and saved to applied, followed up, response, rejected, or archived.
The application also includes a local ATS engine that compares one or more saved resumes with a job description across skills, relevance, visa language, and impact. A Chrome extension can fill application forms and request AI-assisted cover letters, while the dashboard supports follow-up drafts, analytics, push notifications, and reusable application data.
Core capabilities
What I built
- Collects jobs from Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, curated feeds, and JSearch every six hours.
- Scores resumes locally across skills match, relevance, visa signals, and impact.
- Tracks the full application pipeline and supports autofill and AI-assisted cover letters through a Chrome extension.
Technology
Frameworks and tools
- Backend
- Node.js 20, TypeScript 5, Fastify 5, node-cron
- Frontend
- React 19, Vite 7
- Database
- PostgreSQL through the pg driver, compatible with Neon
- Scoring and AI
- Local TF-IDF resume scorer, OpenAI API for writing assistance
- Browser and notifications
- Chrome Manifest V3 extension, Web Push with VAPID
Process
How it works
- 01
Collect postings from supported ATS platforms, curated feeds, and JSearch on a recurring schedule.
- 02
Normalize and filter results by role keywords, seniority, job type, and location.
- 03
Score and prioritize jobs using user keywords, company preferences, visa signals, and resume fit.
- 04
Manage selected roles through an ordered queue and a complete application-status workflow.
- 05
Use the Chrome extension for form autofill and tailored writing, then track follow-ups and outcomes in the dashboard.