Files
VacatureRadar/docs/design/UX_SPEC.md
T
Jens b8091e59bd
deploy / deploy (push) Canceled after 0s
Initial deploy setup
2026-07-21 14:00:00 +02:00

166 lines
4.7 KiB
Markdown

# UX-specificatie
## 1. Ervaringsprincipe
VacatureRadar voelt niet als een zoekmachine maar als een rustige persoonlijke inbox. De gebruiker ziet eerst beslisbare informatie en pas daarna technische details. Bronbeheer en parserproblemen blijven beschikbaar, maar domineren de dagelijkse flow niet.
## 2. Informatiearchitectuur
Hoofdnavigatie:
1. **Vandaag** — beste matches en kernstatus;
2. **Vacatures** — volledige doorzoekbare lijst;
3. **Sollicitaties** — dossiers en opvolging;
4. **Profiel** — voorkeuren en drempels;
5. **Bronnen** — source health en retries;
6. **Systeem** — health, versies en beheercontext.
Op mobiel wordt dit een compacte uitklapbare navigatie; primaire vacatureacties blijven binnen duimbereik.
## 3. Dashboard “Vandaag”
### Doel
Binnen 30 seconden weten of er iets relevants is.
### Volgorde
1. paginatitel + korte samenvatting;
2. KPI's: nieuwe vandaag, actieve vacatures, open dossiers, ongezonde bronnen;
3. kaarten, descending score;
4. lege toestand met concrete uitleg;
5. subtiele link naar alle vacatures/bronnen.
### Matchkaart
Boven de vouw:
- recommendationlabel;
- score als `86/100` en confidence apart;
- functietitel;
- werkgever;
- locatie + werkvorm;
- maximaal twee kernpluspunten;
- maximaal één belangrijkste concern;
- acties: bekijken, interessant, bewaren, verbergen, gesolliciteerd.
Regels:
- geen score zonder label/uitleg;
- onbekende data als “Niet vermeld” of “Nog niet berekend”;
- hard uitgesloten jobs niet op Vandaag;
- dubbele aliassen niet als aparte kaart.
## 4. Vacaturelijst
Filters:
- vrije tekst;
- status;
- recommendation/scoreband;
- werkvorm;
- regio;
- werkgeverstype;
- feedbackstatus.
Desktop gebruikt een compacte filterbalk; mobiel een disclosurepanel. Filters blijven in querystring zodat bookmarks en back navigation werken.
Tabel of kaarten kiezen op breedte. Geen horizontale scroll voor kernvelden.
## 5. Vacaturedetail
Secties:
1. titel, werkgever, status, canonical link;
2. score-overzicht met componenten;
3. “Waarom aanbevolen” en aandachtspunten;
4. harde uitsluitingen indien via directe link geopend;
5. vacaturetekst (gesanitized);
6. voorwaarden/skills/locatie;
7. bronnen en provenance;
8. wijzigingshistorie;
9. sollicitatiestatus/notities.
Bronbewijs wordt technisch maar scanbaar getoond: veld, methode, confidence, excerpt en bron.
## 6. Profielwizard/editor
De eerste onboarding wordt in maximaal vijf logische stappen opgezet:
1. rollen en ongewenste titels;
2. skills en ongewenste verplichte skills;
3. regio, afstand en werkvorm;
4. contract en employerpreferences;
5. digest en samenvatting.
De bestaande editor mag één pagina blijven voor MVP, maar groepeert velden visueel en geeft voorbeeldsyntax. JSON mag in de interne modelvorm bestaan; de eindgebruiker ziet uiteindelijk chips/checkboxes, geen ruwe JSON.
Opslaan toont:
- welke harde regels actief zijn;
- scoregewichten in begrijpelijke labels;
- profielversie;
- mogelijkheid om learning uit/reset te zetten.
## 7. Bronnen
Bronkaart/-rij toont:
- naam en domein;
- type;
- policy en operationele status apart;
- laatste succes/fout;
- volgende run;
- parser/confidence;
- laatste tellingen;
- retryknop indien policy niet deny.
Kleur is nooit de enige indicator. `deny`, `review`, `quarantined` hebben tekst en icoon/patroon.
## 8. Sollicitaties
Kanban is niet noodzakelijk. Een duidelijke lijst met status, werkgever, functie, applied date, follow-up date en eerstvolgende actie is beter voor laag volume.
Dossierdetail/editor bevat:
- immutable vacaturesnapshot;
- huidige bronlink/status;
- contact;
- notities;
- documentenmanifest;
- tijdlijn van statuswijzigingen (backlog);
- opvolgdatum.
## 9. Meldingen
Digestcopy:
```text
2 sterke matches
4 mogelijke matches
11 automatisch uitgesloten
1 opgeslagen vacature sluit binnenkort
```
Elke vacature heeft titel, werkgever, locatie, score, twee redenen, één aandachtspunt en originele link. Geen volledige vacaturetekst in mail.
## 10. States
Iedere pagina specificeert:
- loading: alleen nodig bij async enhancement; serverrender toont normale response;
- empty: leg uit waarom en geef één relevante actie;
- error: concrete fout + veilige retry, geen stacktrace;
- partial: bron/resultaten beschikbaar met warning;
- stale: toon laatste succesvolle tijd en dat vernieuwing faalde;
- unauthorized: login en geen informatielek.
## 11. Copyrichtlijnen
- Nederlands, direct en niet-oordelend;
- “Mogelijke match” in plaats van “Je bent geschikt”;
- “Niet teruggevonden” in plaats van “Je mist”;
- “Rechtstreekse werkgeversbron” in plaats van absolute garantie;
- percentages alleen wanneer betekenis duidelijk is;
- technische bronfout in beheer, eenvoudige impacttekst op dashboard.