# Project ## What This Is Job Tracker is a personal job-application workspace for an individual user. The user finds jobs elsewhere, imports them into the app, uses AI to improve CVs, cover letters, replies, and follow-ups, and keeps the real-world application process organized through tracking, correspondence, and manual updates. ## Core Value The product must let one person run a real job search without losing the thread: import a role, prepare stronger application material, track what happened, keep Gmail correspondence tied to the right job, and know exactly what needs follow-up next. ## Current State A substantial brownfield app already exists. The repo has a React frontend, an ASP.NET Core API, and a local FastAPI AI service. Current capabilities already include job tracking, companies, attachments, correspondence, reminders, job import preview, Gmail connection/import, profile CV upload/parsing/rewrite flows, AI-assisted tailored CV and cover-letter generation, candidate-fit/focus-plan/interview-prep/readiness endpoints, and dashboard/system surfaces. M001 is now complete across S01-S05: the Gmail workspace is job-aware, backend ranking happens server-side, Gmail imports persist thread/from/to metadata, duplicate-safe single-message and thread imports are explicit, already-linked Gmail threads refresh back into the same job automatically via a bounded `ExternalThreadId` pull, the Tailored CV workspace persists reusable package material, follow-up drafting reuses imported correspondence plus saved package context, and `/jobs`, `/dashboard`, and `/reminders` now share one workflow-signal contract that routes into the same job workspace semantics. S05 finished the trust-loop polish by centralizing workflow trust/action metadata, surfacing linked-thread continuity state directly in the workspace, and adding an integrated regression that proves overview entry → package reuse → Gmail continuity → grounded follow-up drafting without crossing the manual-send boundary. The next planned milestone is M002, which can build on this coherent single-user loop rather than re-solving Gmail/package continuity. ## Architecture / Key Patterns The frontend lives in `job-tracker-ui/` and is a React + TypeScript app using MUI. The backend lives in `JobTrackerApi/` and is an ASP.NET Core API with EF Core, Identity, background hosted services, and controller-based endpoints. The local AI service lives in `tools/summarizer/` and provides summarization plus OCR/text extraction. Existing patterns already center around per-job workspaces, Gmail-backed correspondence import, profile-CV-as-source-of-truth, attachment-level AI inclusion controls, and server-side generation endpoints that return drafts for user review rather than autonomous sending. With the override, Gmail-backed correspondence is no longer just a one-time import pattern; it is a linked-thread continuity pattern that must keep the job timeline aligned with the user’s real Gmail thread history. ## Capability Contract See `.gsd/REQUIREMENTS.md` for the explicit capability contract, requirement status, and coverage mapping. ## Milestone Sequence - [x] M001: Gmail and draft quality loop — Make Gmail import and AI drafting strong enough to trust as a daily workflow, including whole-thread Gmail continuity after import. - [ ] M002: Tracking control center — Strengthen the job table, follow-up surfaces, and tracking rhythm into a clearer control center. - [ ] M003: Deeper inbox-aware assistance — Extend correspondence awareness and context-driven assistance beyond the first Gmail improvements. - [ ] M004: Trust, launchability, and hardening — Polish validation, clarity, performance, and operational trust surfaces for sustained daily use.