Building ReTrack: A Free Job Application Tracker That Isn't a Spreadsheet
Building ReTrack 📋
It started small. My girlfriend was job hunting, and like a lot of people, she’d picked up the habit from TikTok: a spreadsheet with columns for company, role, date applied, status, follow-up date. It works, technically. But it’s fiddly — copy-pasting job titles by hand, remembering to update a status cell, no reminders, nothing that works cleanly on a phone.
I watched her wrestle with it for a week and thought: this is a solved problem, I just haven’t solved it yet. So I built ReTrack — a free job application tracker with one rule I held myself to: it has to be zero friction. Paste a URL, get the details, track the stage. That’s it.
🧠 Why I Built It
The spreadsheet-on-TikTok trend is everywhere right now, and it tells you something real: people want to track their job search, but the tools available to them are either a blank spreadsheet (no structure, no reminders, easy to abandon) or a bloated ATS-style SaaS product built for recruiters, not job seekers.
I wanted something in between:
- Free — no paywall between someone and a system that helps them get hired
- Actually structured — real statuses (saved → applied → interview → offer → rejected), not a color-coded cell
- Zero friction — paste a link, most of the form fills itself
- Works everywhere — she’s on her phone more than her laptop, so mobile-first wasn’t optional
- Your data is yours — import your existing spreadsheet, export it back out any time, no lock-in
Building it for one person (my girlfriend) first is what kept the scope honest. Every feature had to answer “does this help her actually apply to more jobs,” not “would this look good in a demo.”
⚙️ Key Features
- 🔗 Paste a URL, get a job card — a scrape endpoint pulls the title, company, and location from most job postings automatically
- 📊 Real status pipeline — saved, applied, interview, offer, rejected — with board and list views
- 📥 Import / export, no lock-in — bring your existing spreadsheet in, take your data out whenever you want
- 📱 Mobile-first PWA — installable, works offline, pull-to-refresh, feels native on a phone
- 🧩 Chrome extension — save a job posting to ReTrack straight from the listing, one click
- 🌐 Bilingual (EN/ID) — built in Jakarta, for job seekers here first
🖥️ How It’s Built
ReTrack is a small monorepo — one web app, one SEO site, one extension, and a mobile app on the way — sharing types and utilities so the “job” data model stays consistent everywhere.
Stack
- Web app: React 19 + Vite + Tailwind CSS v4, state in Zustand persisted to localStorage, packaged as a PWA with a service worker
- SEO site: Astro + MDX + content collections — static, fast, and SEO-friendly for the pages that actually need to rank (a lot of people search “job application tracker free” and “pelacak lamaran kerja gratis”)
- Database: Supabase (Postgres + Auth), with row-level security so every user only ever sees their own rows
- Scrape API: a small Vercel function that fetches metadata from a pasted job URL — the thing that makes “zero friction” actually true instead of just a slogan
- Chrome extension: one-click job saving straight from a listing page, shares the same types and Supabase queries as the web app
- Deploy: two Vercel projects —
retrack.workfor SEO,app.retrack.workfor the app itself
Splitting the SEO site from the app was a deliberate call: static Astro pages for anything that needs to be crawled and ranked, a client-rendered SPA for the actual product behind login. Same lesson I’m applying to this blog, honestly.
📚 Lessons Learned (So Far)
- Building for one real person beats building for a persona. Every time I was tempted to add a “nice to have,” I asked whether it helped her specifically, this week. Most speculative features didn’t survive that question.
- Import/export isn’t a nice-to-have, it’s trust. People who’ve been burned by a tool that traps their data want the exit door visible before they’ll walk in.
- The scrape step is the whole product. Everything else — the board, the statuses, the reminders — is table stakes. The moment where pasting a URL saves someone two minutes of typing is the actual reason to switch off a spreadsheet.
Link to Project
Built by re — for the person who actually needed it, first.