Product requirements

Job Tracker PRD

Emily Ruth · October 27, 2026

The Job Tracker captures postings, vets them with AI against fixed criteria, and tracks each job to a decision. Every finding lands in the tracker, not a chat.

OverviewProblem and userGoalsUser storiesVetting flowFunctional requirementsNon-functionalSuccess and releases

Overview

ItemDetail
OwnerEmily Ruth (product owner and sole user)
StatusWorking prototype in daily use
Built withClaude Code, from my specs; I tested every change
Demodemo.emilyruth.me (fictional data)
CodeGitHub: Emily-vibe-code/Job-Tracker

Problem and user

A job search produces more detail than a spreadsheet can hold, and keeping it current by hand is slow.

Primary user: an experienced job seeker with set criteria (dealbreakers, salary floor, remote eligibility) and a resume the AI must not overstate.

Goals and non-goals

Goals

  1. Screen a posting in about a minute.
  2. Research only postings with a real fit.
  3. Keep every decision, note, contact and follow-up in one record per job.
  4. No invented facts about the user's experience.
  5. Never lose the user's own edits.

Non-goals

User stories

#As a job seeker, I want to...Acceptance criteria
1save a posting from any job site in one clickA bookmarklet copies the title, company and link into a new job in the tracker.
2get a quick fit score before I invest timeThe screen uses only the posting, my resume and the tracker, and returns a score in about a minute.
3stop early on a dealbreakerHard gates (for example, a contract role) run before any scoring; on a fail the screen stops and asks if I want to compromise.
4research only roles worth itA full vet is offered only when the quick screen scores 55 or higher.
5avoid re-researching a companyCompany research less than 60 days old is reused; the vet checks only for news since then.
6trust the scoresA skill counts only with on-the-job evidence; anything not on my resume or confirmed by me is flagged or asked about.
7read a vet fastEach full vet opens with the recommendation and runs about 150-200 words.
8see where every job standsEntering an applied or rejected date, or ticking Interviewing, moves the job to the matching tab.
9never miss a follow-upA due date sets itself 7 days after the latest activity, changes color when overdue, and suggests closing roles quiet for 30+ days.
10keep my edits safeIf I edit a record while the AI updates it, my edit wins and nothing is silently overwritten.

Vetting flow

Only postings that clear the hard gates and score 55+ get deep research. The user makes the final call.

Only postings that clear the gates and score 55+ get deep researchDaily digestemailed each weekdayCapture postingone-click bookmarkletQuick screengates + 100-point scoreScore 55+?Full vetrole + company researchSkipunless I overrideMy callapply, maybe or passTracker updatednotes, stage, reasonsyesno, or a gate hitnew postings
Vetting flow, from capture to decision.

Functional requirements

AreaRequirement
TabsSix tabs: Jobs, Applied, Interviewing, Rejected, Contacts, Companies. Inline editing, sortable and resizable columns, pinned header, dark mode.
DetailsA slide-out drawer shows the full record for any job, contact or company.
StagesAn applied date, rejected date or Interviewing tick moves the job to the matching tab.
Activity logsDated logs for follow-ups, interviews and replies; the table shows the most recent date.
RemindersDue date 7 days after the latest activity; turns color when overdue; suggests closing after 30+ quiet days.
RatingsTwo sets of review-site ratings and counts, a Recommend %, a per-job Excitement rating and a per-company rating.
CompaniesAuto-created from job and contact names; rename, delete or merge; ratings flow to related jobs.
ContactsInternational phone formats, business and personal email, LinkedIn, and dated replies.
CaptureA bookmarklet copies a posting's title, company and link into the tracker.
AI vettingHard gates, quick screen, full vet at 55+; company research reused for 60 days; findings saved to the job.
BackupExport all data to JSON.
Daily digestWeekday email of new matches, skipping jobs already passed on.

Non-functional requirements and limits

Requirements

Known limits

Success measures, releases and open questions

Success measures

MeasureTarget
Quick screen timeAbout 1 minute per posting
Full vet lengthAbout 150-200 words, recommendation first
Lost editsNone: the user's edit always wins
Unsupported claims about the userNone: flagged or asked about instead

Shipped iterations (from daily use)

Next release

  1. Automated tests.
  2. Consolidate the stage rules into a single source of truth.

Open questions