Files
jobtrackingapp/docs/redesign/phase-3/JOB_WORKSPACE.md
T
2026-09-10 18:15:05 +02:00

57 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Job workspace and guided journey
ARC-07; PRES-W01–PRES-W12, PRES-J03–PRES-J09, PRES-M01–PRES-M05, PRES-C01, PRES-C05–PRES-C12. Reuse ApplicationWorkspacePage, ApplicationAssets, Attachments, Correspondence, InterviewPrep and the typed applicationWorkspace client.
## Persistent header
Show role, company, current status with precise edit action, location, deadline and next action. Secondary metadata: source link, saved/applied date and recorded match summary with source/freshness when available. Main CTA follows the supported next step; Edit job and overflow retain existing controls. Do not automatically start analysis/rendering when opening a page.
A “Tailored for this job” or “Current CV” label must link to the exact variant. No header claim that a package was submitted because a PDF was downloaded. Favourite awaits NEW-09. On mobile keep title/status/action compact; remaining metadata expands without disappearing.
## Section ownership
| Target section | Existing capabilities consolidated | Display and progressive disclosure |
|---|---|---|
| Overview | JobDetailsSection, ApplicationProgress, nextStep, description/translation, dates and contacts | Summary and one suggested action; expand full source description and contact details |
| Match | ApplicationAnalysis, ApplicationMatch, strategy snapshot, reviewed workflow/status suggestions | Source requirements, supported/unknown gaps, explanation; optional AI narrative with review. “Analysis” old key maps here |
| Application | ApplicationCvSection/TailoringSection, CoverLetterSection, package drafts and SubmittedPackagesSection | Steps within one section: CV → Letter → Answers → Submission; independent entry, explicit scope and save state |
| Documents | Attachments plus references to current CV/letter and immutable packages | Upload/category/AI-use/rename/preview/download/delete; do not copy content into a new store |
| Timeline | ApplicationTimeline plus correspondence and follow-up context | Activity / Correspondence subview; filters and compose/import thread actions. Sending remains its explicit review flow |
| Notes & tasks | Existing Notes, ApplicationChecklist | Manual/system/dismissed distinction, move controls and progress. Application answers remain in Application, not overwritten into Notes |
| Interview | InterviewPrep manual/questions/AI review/readiness/debrief/follow-up | Prep / Debrief disclosure; preserve generated question review, manual edits and source context |
Keep all seven reachable even before an interview; “Not yet applicable” explains missing context without hiding existing edits. Old CV/cover-letter/checklist/document/timeline/communication links translate per [Route plan](ROUTE_PLAN.md). A logical Timeline merge does not imply all emails and job events already share a backend timeline endpoint.
Application has four subsection controls, not an enforced wizard or duplicated route tree. Keep per-domain save/dirty boundaries and guards across tab/query changes. Choosing a new CV may reassign a relationship; explain it before performing the existing attach operation. Do not invent many-to-many CV associations.
## Guided journey without a forced wizard
| Situation observed | Suggested action | Required guard / alternative |
|---|---|---|
| Discover/import listing | Review captured fields; then Save job | Preview never creates. URL import retains B01. Manual entry stays available |
| Saved job lacks usable description | Add/review source description | No invented facts or auto-submit |
| Source available, profile missing/incomplete | Review Career Profile; optionally analyse job independently | Missing information is unknown, not proof of unfitness |
| Match available | Inspect supported strengths/gaps, choose/tailor CV | No job requirement silently added to profile |
| CV chosen | Prepare letter/answers | User can use existing materials or skip tailoring |
| Material prepared | Review and freeze current package; record application | Explicit capture operation; not proof of external delivery |
| Applied with date | Set/review follow-up and current reminders | Existing date/rule meanings retained; no automatic real email |
| Interview stage | Open preparation and optionally add supported calendar action | Current calendar supports deadline/follow-up; scheduled interview needs NEW data |
| Interview completed | Record debrief/outcome and optional follow-up | Do not seed achievements or company facts |
| Offer / rejected / withdrawn / other | Review offer/record outcome, retain artifacts/history | Neutral tone; no mandatory goal or stage path |
Use the existing server nextStep/checklist/workflowSignal as initial source. Do not build a competing client progression engine. A dismissed/manual checklist item stays user-controlled; rerenders and layout changes must not reseed or repeat operations.
Status change and package capture are separate existing operations. Preserve both; never claim an atomic “Applied + immutable package + external send” transaction exists. Show partial completion and explicit retry without creating duplicate sends/packages. Any new atomic submission behavior needs a separate backend design.
## Full page versus preview and state
Full page owns writing, AI review, correspondence send, history restore, package capture and multi-step work. Preview is a summary/navigation aid. Dirty text survives ordinary viewport changes and cancelled navigation. Accepted AI suggestions change only the intended local draft/settings; saving uses its existing API contract. Account switch clears private state and invalidates stale requests even if a dialog was open.
Existing job IDs are application-read-model identifiers; internal Job linkage does not authorize a route/schema rewrite. Ownership, association and resource missing results stay server-enforced.
## Migration blockers and proof
**P2-D01** blocks successful native SQLite tailoring/package capture; fix under its separate ticket before restructuring those sections. Keep its expected-failure oracle visible. F01 lost-update semantics remain separate from B02 identity and creation idempotency; no new autosave/conflict system in this plan.
Require loaded tests covering all section aliases, draft Cancel/Discard, preserved Notes versus answer drafts, CV attach/detach, immutable historical HTML/letter/binary after live mutation, timeline/status updates, correspondence uncertain-send behavior and interview review. Test keyboard/mobile and both locales/themes; missing/foreign job stays safe. No removal of low-frequency interview/debrief/version/attachment actions for a cleaner overview.