Skip to main content

User stories — epic catalog

Compact map of JobJitsu's platform epics (PE01–PE13, plus admitted PE20) and their stories.

SSOT: the JobJitsu Development board owns acceptance-criteria detail and live status. This file is the map, not the spec.

Status legend: Shipped — issue closed or verified in code · Partial — open issue, some code landed · Todo — not started.

Build order: DEPENDENCY_GRAPH.md · Delivery process: VERTICAL_SLICES.md

PE01 — Desktop Shell & Foundation (#1)​

Calm desktop shell: window, primary navigation, deny-by-default IPC, dark-first appearance.

StorySummaryStatus
PE01-S01Open JobJitsu as a desktop app with calm chromeShipped · #14
PE01-S02Move between Applications, Queue, Follow-ups, Agent, Preferences, TimelineShipped · #16
PE01-S03UI calls only allowlisted host commands; unknown commands fail closedShipped · #15
PE01-S04Default to a calm dark theme; Appearance persists across restartsShipped · #17

PE02 — Storage & Event Spine (#2)​

On-device persistence and the typed local event bus every package rides on.

StorySummaryStatus
PE02-S01Persist profile and application documents under the user data dirShipped · #19
PE02-S02Publish and subscribe typed Domain.Action events in-processShipped · #20
PE02-S03Durable event hook persists the Timeline allowlistShipped · #21

PE03 — Identity & Resume Library (#3)​

One local identity with career paths and a résumé library: import → review → attach → tailor.

StorySummaryStatus
PE03-S01Create and edit an on-device profileShipped · #22
PE03-S02Import a résumé file into the local libraryShipped · #23
PE03-S03Keep multiple résumé versions and pick one per applicationShipped · #24
PE03-S04Request a tailored résumé draft for a job — draft only, never sendsShipped · #39
PE03-S05Maintain career paths (Fullstack, Mobile, …) under one identityShipped · #77
PE03-S06Review and edit every import before anything attachesShipped · #78
PE03-S07Attach a reviewed import to identity, a path, or bothShipped · #79
PE03-S08Import LinkedIn via exported PDF with calm guidanceShipped · #80
PE03-S09Create a path from an existing résumé version without AIShipped · #81
PE03-S10Pre-fill import review with on-device AI parse; still editableShipped · #82

PE04 — Preferences & Privacy Chrome (#4)​

Preferences with approval-before-send on by default and honest Agent · On-device chrome.

StorySummaryStatus
PE04-S01Approval-before-send on by default, editable in PreferencesShipped · #25
PE04-S02Set quiet hours so nudges do not interrupt (schema only; no UI yet)Partial · #27
PE04-S03Honest Agent · On-device status chromeShipped · #18
PE04-S04Set fit, tone, and constraint preferences for curation and AgentShipped · #26
PE04-S05See and change the on-device data folderShipped · #68
PE04-S06Profile, résumés, and preferences persist as files under that folderShipped · #72

PE05 — Local Intelligence (#5)​

Local-first intelligence: provider, Context Builder, model management, offline path, real on-device models.

StorySummaryStatus
PE05-S01Run health and complete against a local AI ProviderShipped · #29
PE05-S02Point at an on-device model path with calm misconfig recoveryShipped · #32
PE05-S03Context Builder includes only task-needed slices in promptsShipped · #30
PE05-S04Optional remote provider with user-owned keys (Experimental; no board issue yet)Todo
PE05-S05Local AI keeps working offline; no silent remote fallbackShipped · #31
PE05-S06Run a real local model through loopback OllamaShipped · #102
PE05-S07Pick an installed local model from a list in PreferencesShipped · #112

Local Craft Studio — board epic PE28 (#101)​

JD → résumé + cover letter craft on this device; shipped alongside PE05.

StorySummaryStatus
PE28-S01Paste résumé + job description; generate editable drafts on-deviceShipped · #103
PE28-S02Preview a résumé as HTML and save a PDF on this deviceShipped · #104
PE28-S03Chat-refine drafts; Agent asks clarifying questions instead of inventingShipped · #105

PE06 — Agent (preparative) (#6)​

Preparative agent: start, pause, and orchestrate drafts into the review Queue — never send.

StorySummaryStatus
PE06-S01Start preparative work and pause anytime; Queue stays intactTodo · #48
PE06-S02Orchestrate drafts into the review Queue without sendingTodo · #49

PE07 — Discovery & Job Providers (#7)​

Discovery through registered job providers (local/CSV first), curated toward fit — not a feed.

StorySummaryStatus
PE07-S01Register a Job Provider source with list / sync / normalize (fake source exists; no registry)Partial · #35
PE07-S02Curate roles toward fit using preferencesTodo · #36
PE07-S03Analyze a job against the profile — local and advisoryTodo · #40
PE07-S04Browse curated roles and start an application draftTodo · #37

PE08 — Applications & Pipeline (#8)​

Application drafts and pipeline: create/edit, cover letters, list/detail, post-send tracking.

StorySummaryStatus
PE08-S01Create and edit application drafts linked to résumésShipped · #33
PE08-S02Generate an editable cover letter draftShipped · #38
PE08-S03Track status after send (Submitted → … → Archived)Todo · #46
PE08-S04List applications and open a detail viewShipped · #34

PE09 — Queue & Human Review (#9)​

Human review Queue — distinct from the AI Task Queue; the approval gate before egress.

StorySummaryStatus
PE09-S01Enqueue an application awaiting approvalShipped · #41
PE09-S02Approve or reject queued items (queue view works; no canSend policy yet)Partial · #42

PE10 — Send (Egress Boundary) (#10)​

The sole egress boundary: policy-checked send with honest success / failed / unknown outcomes.

StorySummaryStatus
PE10-S01Career payloads leave only via the send package after policy checks (channel exists; no host path)Partial · #44
PE10-S02Audit on the Timeline what left the machineTodo · #45

PE11 — Follow-ups & Scheduler (#11)​

Polite follow-ups on a durable scheduler that respects quiet hours.

StorySummaryStatus
PE11-S01Schedule a follow-up for a submitted application (application fields only; no scheduler arm)Partial · #50
PE11-S02Calm nudge when a follow-up is due, outside quiet hoursTodo · #52
PE11-S03Scheduled follow-ups survive restartTodo · #51
PE11-S04Dismiss or send a due follow-up under approval policy (dismiss works; no send-under-policy)Partial · #53

PE12 — Timeline & Trust (#12)​

Local activity timeline and sanitized logs that earn trust.

StorySummaryStatus
PE12-S01Inspect a local timeline of meaningful events (session-only; not durable)Partial · #43
PE12-S02Sanitized logs view without secrets or résumé bodiesTodo · #47

PE13 — Onboarding & Empty States (#13)​

Calm first run and empty states that invite one next step.

StorySummaryStatus
PE13-S01Complete first-run onboarding without pressure (missing résumé import + approval steps)Partial · #54
PE13-S02Calm empty states for primary lists (inline empties; no shared component)Partial · #28

PE20 — Email Integration (#117)​

Opt-in inbound mailbox sync. Extends existing Application drafts. Never sends.

StorySummaryStatus
PE20-S01Opt-in mailbox sync, classify/match, incremental cursorsPartial · #118 · PR #120
PE20-S02Complete Gmail/Outlook OAuth loopbackPartial · #119 · PR #123
PE20-S03Fix Buffer crash on Connect Gmail (webview-safe PKCE)In Progress · #139

PE21 — Shell information architecture (#128)​

Untangle Preferences; Profile → Job Mail → Paths → Applications; Sources stub; Reset with backup. Plan: SHELL_IA.md.

StorySummaryStatus
PE21-S01Document shell IA, platform spec, terminology, backlogShipped · #129 · PR #134
PE21-S02Nav groups + Job Mail view; move mailbox out of Preferences; Profile connect CTAShipped · #130 · PR #135
PE21-S03Preferences Reset: selective wipe, backup, restore; keep .envShipped · #131 · PR #135
PE21-S04Sources Coming soon stub + cross-links to Craft / Job MailShipped · #132 · PR #135
PE21-S05Icon accent tokens (cyan + marigold) + calm motion polishShipped · #133 · PR #135
PE21-S06Applications list-first editor dialogShipped · #138 · PR #136

Cross-cutting​

StorySummaryStatus
PE-QAH1 must-pass privacy gates: egress, approval, pause, honest outcomes (suites partial)Partial · #55

Beyond H1​

PE14–PE19 (Experimental: knowledge base, AI validation, workflows, automation, playground) and PE22–PE30 (Future) are roadmap bands only. PE21 (Shell IA) is admitted above. Stories join this catalog when a board issue exists.

Tally: 35 shipped · 12 partial · 11 todo — 58 tracked stories.