Parag Jha
coretracker.app

CoreTracker

I built the tracker I needed, then taught it to fill itself in.

A local-first job application tracker. Spreadsheet, kanban, and resume manager in one. V3 runs a scheduled agent that finds and scores listings, then updates the board from my inbox.

Live · in use
CoreTracker v2 sheet view with dashboard tiles, seeded demo data
Role
Everything. Personal build.
Dates
2026, three versions deep
Team
Me
Scope
Product, design, build, prompts
Tools
Figma, Claude Code, Gemini vision API, Next.js
Status
In daily personal use. Also my hands-on frontend learning project.
01 · The problem

Three tools, none of them talking, and I was doing the boring part.

I was tracking job applications across a spreadsheet, a Notion doc, and a set of tabs. None of them talked to each other. And I was doing the boring part myself: reading a JD, remembering which resume version fit, updating status when a recruiter emailed.

I wanted the tracker to do those parts.

02 · Constraints and decisions

Five calls that shaped the product.

  1. Local-first.

    Job search data is sensitive and I didn't want it on someone else's server. Anyone opening the live link gets an empty board of their own.

    Rejected:hosted SaaS with a login.

  2. Screenshot-based JD extraction using Gemini vision API.

    Paste a screenshot of a listing, get a structured JD.

    Rejected:OCR pipelines and job-board scraping (fragile and legally muddy).

  3. AI resume-to-JD match scoring.

    Every extracted JD is scored against every stored resume version. The one that scores highest becomes the suggested attach.

  4. V3: scheduled agent, not a chat interface.

    Once a day, it searches, finds ten matched listings, scores each, and drops them into the inbox column of the board.

    Rejected:an on-demand chat that requires me to remember to ask.

  5. Spreadsheet + kanban + resume manager in one tool.

    Not because it's clever, because switching between three tools is where the friction lived.

03 · The work
CoreTracker kanban board: To Apply, Applied, Interviewing, Offer, Rejected, Ghosted
Kanban view. The match score sits on every card, so pruning To Apply is a scan, not a read.
CoreTracker sheet view with To Apply, Applied This Week, In Interview and Response Rate tiles
Sheet view. Four tiles for the questions I ask first each morning.
Match-score panel: 85/100, matched skills, and the years of experience the role asks for
Match score against my resume, with the skills that actually matched.
Add job panel with a field for a LinkedIn, Greenhouse, or Lever link
Add job: paste a link, the posting is fetched and sorted into fields for review.
04 · Outcome

Where it stands.

  • In daily personal use
  • Currently the substrate for me learning frontend properly
  • Public URL: coretracker-rho.vercel.app (opens a fresh, empty board)
05 · Reflection

Building for one user (me) is a shortcut only if I stay honest about which features I'd add for anyone else.

Some choices (local-first, single-account) don't generalize. That's fine. Not every project needs to.