feat: ship premium IT-focused vacancy radar
deploy / deploy (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-22 15:16:15 +02:00
parent 7d3d026d1d
commit 029df89265
23 changed files with 838 additions and 53 deletions
+65
View File
@@ -0,0 +1,65 @@
# VR-206 volledige UX-, logica- en browseraudit
Datum: 2026-07-22
## Uitgangssituatie
De productiecontrole toonde 242 actieve vacatures. De standaardlijst sorteerde hoofdzakelijk op
`first_seen` en liet elke actieve vacature zien. Daardoor stonden onder meer facilitaire techniek,
logopedie, vroedkunde en niet-IT-onderzoek tussen de persoonlijke IT-resultaten. Op 2560 px bleef
de inhoud bovendien op ongeveer 1280 px begrensd, waardoor de Stitch-cockpit een brede lege zone
overliet.
## Bevindingen en oplossing
| Prioriteit | Bevinding | Oplossing |
| --- | --- | --- |
| P0 | Niet-IT-vacatures bereikten Vandaag en de standaardfeed. | Titelgestuurde, deterministische IT-classificatie vóór score/AI; niet-IT blijft alleen in het expliciete volledige archief. |
| P0 | Vandaag gebruikte niet overal de laatste gebruikersgescopeerde score en open dossiercijfers waren niet volledig gebruikersgescopeerd. | Laatste score per vacature/profiel via subquery; profiel, scores en dossiers zijn aan de aangemelde gebruiker gebonden. |
| P1 | Verborgen/hard uitgesloten IT-vacatures stonden hoog door hun ruwe score. | Nieuwe standaardkeuze `Radarselectie` laat verborgen resultaten weg; `Verborgen` en `Alle IT-scores` blijven bewuste inspectiekeuzes. |
| P1 | De lijst sorteerde op bronrecency in plaats van persoonlijke besliswaarde. | Standaard matchscore aflopend, met alternatieven voor nieuwste en sluitingsdatum. |
| P1 | Stitch werd visueel gebruikt, maar ultrawide bleef een smalle strook. | Adaptieve contentbreedte tot 2240 px, tweekoloms feeds vanaf 1850 px en context-/actierails op breed desktop. |
| P1 | Vacaturekaarten boden weinig scorebewijs. | Score, datakwaliteit, eerste pluspunt, eerste aandachtspunt, status, werkmodel en directe actie staan in de feed. |
| P2 | Confidencewaarden wisselden tussen breuken en percentages. | Alle dagelijkse score- en extractiekwaliteit wordt als percentage getoond. |
| P2 | Inline feedback accepteerde een willekeurige `next`-URL. | Terugkeer alleen naar dezelfde host, met negatieve regressietest. |
| P2 | De bronpagina liep op 320 px uit door statuschips naast lange sectiekoppen. | Sectiekoppen stapelen onder 680 px; de 320 px matrix heeft geen horizontale overflow. |
| P2 | Sommige browsers vroegen `/favicon.ico` en kregen een 404. | Lokale permanente fallback naar het bestaande SVG-favicon. |
## Relevantieregel
De classifier is bewust conservatief en titelgestuurd. Een beschrijving die toevallig “digitale
systemen” vermeldt, maakt een zorg- of facilitaire functie niet relevant. Duidelijke IT-families
zoals infrastructuur, netwerk, cloud, security, software, data, applicatiebeheer en workplace
worden toegelaten. Commerciële of recruitmentcontext die IT-woorden bevat, wordt expliciet
afgewezen. Dezelfde regexcontracten worden in Python en in de databasequery gebruikt.
Op de lokale auditdataset met 336 actieve records bleven 108 titelmatig aantoonbare IT-vacatures
over en werden 228 niet-IT-records uit de standaardfocus gehouden. Na uitsluiting van verborgen
matches bevatte de persoonlijke radarselectie 102 kaarten. Het volledige archief blijft 336
records bevatten: er wordt geen bronhistoriek gewist.
## Stitch-vertaling
- Dashboard: KPI-strip, beslisbare matchfeed en vaste radar-/actierail.
- Vacaturelijst: brede commandofilter, compacte evidencekaarten, scorehiërarchie en radarcontext.
- Detail: scorehero, intelligence-strip, bronhistorie en menselijke actierail.
- Shell: vaste desktopnavigatie, compacte utilitybar, lokale iconen en mobiele drawer.
- Ultrawide: twee inhoudskolommen plus context; geen kunstmatig uitgerekte tekstregels of fictieve grafieken.
Alle cijfers en signalen komen uit de database. Quick apply, automatische sollicitatie,
platformloginbots, fictieve trendgrafieken en externe frontendassets blijven bewust afwezig.
## Browsermatrix
Handmatig gecontroleerd in de geïntegreerde browser op 320×800, 390×844, 1024×768, 1440×900,
1920×1080 en 2560×1440. De zes kernroutes (`/`, `/jobs/`, `/jobs/applications/`, `/profiles/`,
`/sources/`, `/system/`) hebben één `h1`, gelabelde formuliervelden en geen horizontale
paginaoverflow. De vacaturefeed schakelt van één kolom naar twee kolommen op ultrawide en gebruikt
daar 2240 px van de beschikbare ruimte. Mobiele navigatie opent en sluit met correcte
`aria-expanded`-status.
## Resterend operationeel punt
Na deployment moet de bestaande productie-inventaris opnieuw gescoord worden zodat opgeslagen
score-evidence eveneens het nieuwe `it_relevance`-blok bevat. De viewfilter werkt onmiddellijk en
onafhankelijk daarvan; het herscoren verbetert de uitleg en blijvende `hidden`-status.