45 lines
4.9 KiB
Markdown
45 lines
4.9 KiB
Markdown
# Career Profile UX
|
||
|
||
ARC-08; PRES-C01–PRES-C04, PRES-C07, PRES-C10, PRES-C11, PRES-E06, PRES-E09. Sources: [CareerProfilePage](../../../job-tracker-ui/src/views/CareerProfilePage.tsx), [career sections](../../../job-tracker-ui/src/views/career/CareerProfileSections.tsx), [CvVariant](../../../JobTrackerApi/Models/CvVariant.cs), Phase 2 canonical/sibling isolation regression.
|
||
|
||
## One canonical source
|
||
|
||
Career Profile is the account-owned structured career singleton. Account /profile owns login identity/email/security; CVs own identified settings and item overrides. Label every edit destination before editing, including AI review:
|
||
|
||
| Scope label | What changes | What must not change |
|
||
|---|---|---|
|
||
| Career Profile — shared source | Canonical selected profile fields after explicit profile save/import acceptance | Account login/email/security; existing CV overrides; frozen submitted packages |
|
||
| This CV only — [name] | Selected variant settings/item override | Canonical profile, sibling CVs, other owners |
|
||
| This application — [role/company] | Job draft, letter, answers or existing job-specific artifact | Canonical data; unrelated application drafts |
|
||
| Suggestion — not saved | Review proposal only | Any stored user-owned content until deliberate acceptance/save |
|
||
|
||
Live CVs can reflect later canonical edits where they inherit the source. Never promise that editing Career Profile leaves all rendered live CVs unchanged. Existing overridden fields remain overridden; frozen submissions remain historical. Show this consequence near profile Save and the variant's source label. An existing published live CV also needs clear explanation; it is not an immutable submitted snapshot.
|
||
|
||
## Page organization
|
||
|
||
Overview gives completeness and actionable missing information, recent import/history and CV links. Edit offers personal information, summary, work, education, skills, languages, interests and **all existing long-tail/custom sections**. Evidence has its existing sourced statement/title/category/tags list/add/delete. Import review/history stays a distinct activity with operation status.
|
||
|
||
Do not force onboarding before access. Profile completeness is guidance, not a public employability score or requirement to invent content. No “missing skill” autofill from job requirements. Desired role/location/remote/salary preferences are NEW-13 only where not currently represented; current job fields do not satisfy career intent preferences.
|
||
|
||
Preserve avatar editing, raw CV text copy, manual edit, history restore, extraction rebuild/improve/reprocess, retry/cancel and low-confidence selections. Do not reduce the canonical schema to the shorter illustrative section list.
|
||
|
||
## Import and AI review
|
||
|
||
Choose/upload source → processing with operation ID → compare extracted proposal with current profile → select supported changes (including low-confidence controls) → accept or discard. Display source document/field/confidence evidence when returned. Confidence alone does not verify truth.
|
||
|
||
Discard leaves canonical data intact. Failed extraction retains original and recovery actions; cancellation is not success. Low-confidence or conflicting personal claims require explicit user verification. User edits the proposal before acceptance where supported. No silent replacing of profile or automatic propagation from an AI assistant.
|
||
|
||
Privacy/entitlement/provider availability explains disabled actions and offers manual editing. Never send unselected attachment content or retain private extracted text in global shell state.
|
||
|
||
## Source and override interaction
|
||
|
||
Variant item references retain stable source keys. “Edit Career Profile” navigates to source; “Customize in this CV” creates/edits the existing override. “Use profile value” resets only that override, showing current source value first. Profile item removal can leave stale selections/overrides: surface an unresolved source link with repair choices, not silent reassignment to a similarly named item. Exact missing-source behavior needs a focused fixture before changing it.
|
||
|
||
Do not add one-click “promote all CV changes to profile.” If later requested, it needs an explicit field-level review and same-account server contract. No generic synchronization framework or schema move.
|
||
|
||
## Preservation and migration gate
|
||
|
||
Current save/history/projection behavior remains, but F01 record concurrency is unresolved. Plan source/override wording independently; coordinate any save/history/conflict owner edits with D01–D03 and recovery gates. B02 alone is not optimistic concurrency.
|
||
|
||
Before restructuring: native A→B stale-state denial; canonical/sibling unchanged after variant override; profile inherited-field propagation and override reset; extraction accept/discard/low-confidence/no-provider states; history restore; long sections and loaded keyboard names. Phase 2 already proves a headline override path, not every item/restore/import combination.
|