11 KiB
Jobjakt design proposal: prepare an application with confidence
Status: proposed design — Not Tested. This is an original proposal grounded in observed interaction patterns and verified Jobjakt source. It is not an implemented feature or an imitation of FlowCV's templates.
Product direction
Make the document editor answer three questions throughout the task: “Which application is this for?”, “What have I changed?”, and “Is this the version I can safely export?” Jobjakt's advantage is the relationship between career facts, a tailored CV, the application letter and the application record. Build around that relationship rather than creating another isolated document studio.
Preserve the existing CV editor, routes, MUI components, renderers, revision contracts and application workspace. Improve the journey in small increments. Existing CV autosave, undo/redo, preview recovery, AI review and history should remain the foundation, not be rebuilt.
| Approach considered | Benefit | Cost / risk | Decision |
|---|---|---|---|
| Extend existing CV and application document surfaces | Reuses mature saving, rendering, ownership, localisation and tests; keeps application context | Requires a careful letter contract and some shared visual treatment | Recommended |
| Replace both with a new universal document engine | Uniform editor surface | Large migration, duplicate models, loss of working safeguards, no measured need | Defer |
| Only polish CV controls | Fast, low risk | Leaves cover letters without a complete designed-document workflow | Useful first phase, insufficient final scope |
Information architecture
Keep the CV library at /career/builder, the editor at /career/builder/:id, and the application-scoped cover letter in the current application workspace. The Documents page remains the cross-application index. Avoid a new standalone letter library until users demonstrate a need for letters unrelated to applications.
CV library cards should prioritise document name, linked application when available, theme label and saved status/date. A schematic thumbnail can remain the lightweight list representation; a clearly labelled “Preview design” opens an actual rendered candidate. Open, Duplicate, PDF and existing publication actions use the current handlers. Icon-only actions have document-specific accessible names. Do not introduce “version” as a synonym for a duplicated document.
In the application workspace, present CV and Cover letter as a coordinated document pair. Show the attached CV name, a link to edit it, and the letter's own save state. Preserve existing attachment and submitted-package controls. A package captured in Jobjakt is labelled “Recorded application package”; it must not imply the application was actually sent.
CV editing
Keep Content, Template, Customize, AI Tools and History. Separate frequent controls from advanced controls using the existing capability metadata. Content starts with the outline and a short explanation: “Uses your career profile. Changes here apply to this CV.” Each overridden entry shows “Edited for this CV” with the existing reset-to-source action. Editing master facts remains an explicit navigation action, protected by the existing unsaved-change guard.
Section rows expose title, visibility, entry count, drag handle and named Move up/down actions. Dragging is an enhancement. Up/down controls remain usable with keyboard and touch, including at the first/last item. Announce the actual new position and restore focus to the moved row. Preserve stable source keys and custom entries; do not derive identity from display order or translated labels.
Existing typed content and custom presets remain the catalogue. Add-content choices explain the resulting object: “Add a project entry” versus “Add a custom section”. Reuse existing presets rather than creating 15 new backend tables for FlowCV's observed headings. Validate dates according to Jobjakt's actual source model; month precision must be compared as year/month, with explicit semantics for year-only values and Current.
The preview shows physical pages, page count, fit percentage and last render status. While a new preview is pending, keep the previous document and identify it as updating. On failure retain the last good output and provide Retry. Do not display “Saved” solely because a preview succeeded. A manual zoom control is a later usability decision: first verify that current fit-to-width plus browser zoom supports real users. No custom pinch handler in the initial scope.
Template selection and design
Use Jobjakt's current themes and metadata. Selecting a gallery card opens a candidate preview with the actual template renderer; switching candidates does not persist a change. Initial implementation may use the existing synthetic sample-preview endpoint, explicitly labelled “Sample content”. Previewing the user's current unsaved CV is a separate extension only if the current endpoint contract cannot support it safely.
The candidate view explains supported controls and which visual overrides will reset. “Apply design” performs the existing visual-only settings update and creates one undo step. Content ordering, hidden entries, custom content and overrides must remain intact according to the current apply-theme contract. Cancel closes without dirtying the CV. Locked designs use existing availability rules, not a new billing mechanism.
Customize keeps the current options with their null/inherit semantics. Use existing font choices and renderer-safe values; avoid a new font catalogue or font upload. Show units next to numbers, errors next to invalid fields, and “Use theme default” where supported. Do not silently reset unsupported values that the existing editor deliberately retains.
Save, history and export
Preserve the CV save state machine: dirty → saving → saved; recoverable failure → retry; revision conflict → stop automatic writes and offer recovery. Keep status text next to the document title. A conflict message explains that another edit was saved and offers existing download/reload recovery. Export waits for the current draft's successful save; a failure cannot fall back to exporting an older revision without an explicit, accurately labelled choice.
History copy distinguishes CV settings revision from a frozen document. Historical settings currently resolve against the current career profile. Tell users this before restoring; do not market settings history as a full historical CV snapshot. The submitted application package is a separate recorded artifact. A full frozen-document history is outside this plan unless explicitly chosen later.
Letter editing keeps the existing Save / Discard contract initially. FlowCV's sampled absence of visible saving feedback is a reason to retain Jobjakt's clear state, not to remove it. Any later autosave decision depends on resolving all letter writers and revision conflicts first.
Cover letter: complete the document workflow
Use two clear modes within the existing letter area: Write and Preview. Write retains the labelled Markdown text field and existing toolbar. Show a small formatting hint and rendered preview so users understand the input. Avoid a rich-text dependency in the first release; visual preview is more valuable than replacing the underlying editing model.
Add a compact document-details region only as part of the approved letter schema: sender, recipient/company, date and subject. Initial values are explicit local drafts. “Copy contact details” opens a field-selection review and copies only approved fields. Default selection is name, professional title, email and phone; location and links are optional. Birth date, nationality, passport/ID, visa and unrelated profile details are never copied by default. Each copy is a snapshot; later profile edits do not silently overwrite the letter.
“Match attached CV” maps compatible typography, colours, page size, margins and header treatment to a letter design snapshot. It does not copy CV columns or skill layout into a prose letter. Show what will change, preserve all letter text and recipient data, and allow cancellation. Store effective compatible values so a later CV theme change does not silently restyle the letter. Retain an optional source CV identifier for explanation; rendering must not depend on that CV continuing to exist.
Letter preview and PDF must use the same safe renderer and pagination contract, with an independently testable letter render model. Reuse the CV export infrastructure only where its contract fits; do not pass letter text through a CV variant or the separate tailored-CV draft model. Letter export saves the intended draft, then exports that revision. Existing CSV/JSON/backup exports remain data exports and continue to include letter content/history.
AI interaction
Keep Jobjakt's existing consent, plan, metering and explicit review flow. A suggestion appears beside the current draft with Apply / Reject. Applying changes the draft; the current letter Save action still determines persistence. Cancel, failure, navigation and a changed application must not apply stale suggestions. Never describe AI-generated text as verified career facts. Avoid inventing FlowCV AI input/result behaviour: only its entry points and Pro gate were observed.
Visual direction
Use the verified current job-tracker-ui/src/theme.ts: Archivo UI typography, existing MUI spacing and semantic tokens; primary accent #5B5BD6, existing indigo/cyan gradient, inverse navigation #0F172A. Dark surfaces currently use #0B0B0E, #111116 and #1C1C24. Use theme roles so light/dark mode continue to work. Do not hard-code older homepage tokens into the editor.
Create hierarchy through grouping, concise labels and stable controls. White physical document pages stay independent of application chrome. Use colour for selection/status with text and icons, never colour alone. Avoid FlowCV's branding, template geometry, proprietary assets, promotional copy and gallery illustrations. Existing Jobjakt themes are the design source; new templates require separate original design work and export checks.
Completion boundary
The proposed outcome is a more understandable existing CV editor plus a safe application-scoped letter preview, matching design and PDF workflow. New standalone letter accounts, collaborative editing, unrestricted font upload, manual page-break designers, multi-format DOCX output, new AI providers and a universal document platform are deferred. None is required to deliver this scope.
See wireframe specifications, implementation sequence and acceptance tests. Every proposal here remains Not Tested until implementation and validation.