feat: personalize scoring and add skills radar
This commit is contained in:
@@ -1488,6 +1488,93 @@ tasks:
|
||||
completed_at: '2026-07-22'
|
||||
note: 'Volledige code- en browseraudit: deterministische IT-focus, laatste gebruikersscore, premium Stitch-feed/detail
|
||||
en adaptieve 320-2560px-layout; 225 tests groen en browsermatrix geslaagd.'
|
||||
- id: VR-207
|
||||
title: Cv-gestuurd field- en infrastructuurprofiel
|
||||
status: done
|
||||
priority: P0
|
||||
requirement_ids:
|
||||
- PR-002
|
||||
- PR-040
|
||||
- PR-041
|
||||
- NFR-002
|
||||
- NFR-004
|
||||
depends_on:
|
||||
- VR-206
|
||||
summary: Breid de begeleide profielconfiguratie uit voor een ervaren IT field-/infrastructuurprofiel en voorkom
|
||||
dat een brede, relevante skillset de matchscore kunstmatig verlaagt. Persoonlijke cv-data blijft uitsluitend
|
||||
in de gebruikersdatabase en komt niet in repositoryfixtures of documentatie.
|
||||
acceptance_criteria:
|
||||
- Rollen en skills zijn in begrijpelijke categorieën selecteerbaar voor field service, infrastructuur, Microsoft
|
||||
365/endpoint, netwerk/security, back-up/monitoring, virtualisatie, VoIP en automation.
|
||||
- Relevante IT-ervaring is via een selectielijst configureerbaar en wordt deterministisch vergeleken met expliciet
|
||||
gevraagde ervaringsjaren; onbekende ervaring leidt niet tot uitsluiting.
|
||||
- Ambigue field-/implementatietitels gelden alleen als IT wanneer de vacaturetekst tevens een sterk technisch
|
||||
contextsignaal bevat; niet-IT field service blijft gefilterd.
|
||||
- Meer relevante cv-skills aanvinken verwatert de skillscore niet onbeperkt en niet-vermelde voorkeurskills worden
|
||||
niet als bewezen tekort gepresenteerd.
|
||||
- Bestaande vrije profielwaarden blijven selecteerbaar en persoonlijke gegevens uit cv's worden niet gecommit.
|
||||
verification:
|
||||
- uv run pytest tests/unit/test_relevance.py tests/unit/test_scoring.py tests/unit/test_profiles.py tests/integration/test_profile_preferences.py
|
||||
- uv run python manage.py makemigrations --check --dry-run
|
||||
- ./scripts/codex_verify.sh
|
||||
primary_paths:
|
||||
- apps/profiles/forms.py
|
||||
- apps/profiles/models.py
|
||||
- apps/profiles/taxonomy.py
|
||||
- apps/jobs/services/relevance.py
|
||||
- apps/jobs/services/scoring.py
|
||||
- templates/profiles/edit.html
|
||||
- static/css/app.css
|
||||
result:
|
||||
completed_at: '2026-07-22'
|
||||
note: Cv-gestuurde gegroepeerde profielconfiguratie, ervaringsband, begrensde skill-evidence, contextgebonden
|
||||
fieldrelevantie en lokale profielrescore geverifieerd; 232 tests groen en browsercontrole op ultrawide/390
|
||||
px geslaagd.
|
||||
- id: VR-208
|
||||
title: Skillsvraag- en leerkansenradar zonder ervaringsscore
|
||||
status: done
|
||||
priority: P0
|
||||
requirement_ids:
|
||||
- PR-002
|
||||
- PR-040
|
||||
- PR-041
|
||||
- PR-043
|
||||
- PR-050
|
||||
- NFR-004
|
||||
depends_on:
|
||||
- VR-207
|
||||
summary: Maak ervaringsduur volledig informatief en bouw uit de actuele, relevante vacatures een uitlegbare marktvraaganalyse
|
||||
met profieldekking, skillsfilters en concrete bijleerkansen.
|
||||
acceptance_criteria:
|
||||
- Ervaringsjaren en senioriteitslabels hebben geen invloed op score, aanbeveling of harde uitsluiting; de profielwaarde
|
||||
is uitsluitend informatieve context en bestaande senioriteitsgewichten worden veilig genegeerd en opgeruimd.
|
||||
- De analyse gebruikt alleen actieve IT-vacatures die voor het actieve profiel niet hard uitgesloten zijn en blijft
|
||||
strikt gebruikersgescopeerd.
|
||||
- Een deterministische, uitbreidbare skillcatalogus toont per technologie of capability in hoeveel vacatures een
|
||||
expliciet tekstsignaal voorkomt en onderscheidt profieldekking van mogelijke leer-/bijscholingskansen.
|
||||
- Het profiel biedt extra relevante skills als gegroepeerde checkboxes; de inzichtspagina biedt categorie- en
|
||||
dekkingsfilters en links naar de onderliggende vacatures.
|
||||
- Feiten, tekstinferenties en onbekende gegevens zijn in de Nederlandstalige UI duidelijk onderscheiden; lege
|
||||
toestanden en layouts werken van 320 tot 2560 px zonder horizontale paginaoverflow.
|
||||
verification:
|
||||
- uv run pytest tests/unit/test_scoring.py tests/unit/test_skill_demand.py tests/integration/test_skill_insights.py
|
||||
tests/integration/test_profile_preferences.py
|
||||
- uv run python manage.py makemigrations --check --dry-run
|
||||
- ./scripts/codex_verify.sh
|
||||
- Browsercontrole op 2560x1440, 1440x900 en 390x844
|
||||
primary_paths:
|
||||
- apps/jobs/services/scoring.py
|
||||
- apps/jobs/services/skill_demand.py
|
||||
- apps/jobs/views.py
|
||||
- apps/profiles/taxonomy.py
|
||||
- templates/jobs/skill_insights.html
|
||||
- static/css/app.css
|
||||
- docs/architecture/SCORING_ENGINE.md
|
||||
result:
|
||||
completed_at: '2026-07-22'
|
||||
note: Ervarings- en senioriteitsinvloed uit score en learning verwijderd; gebruikersgescopeerde Skillsradar
|
||||
met actuele bronselectie, vraagbewijs, profieldekking, leerkansen, uitgebreide skillfilters en 2560/1440/390-browsercontrole
|
||||
voltooid.
|
||||
- id: VR-301
|
||||
title: Multi-tenant SaaS, teams en billing
|
||||
status: deferred
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Projectstatus
|
||||
|
||||
- Laatst bijgewerkt: 2026-07-22
|
||||
- Repositoryversie: 0.2.11 premium IT-radar en ultrawide Stitch-cockpit
|
||||
- Repositoryversie: 0.2.13 persoonlijke skillsvraag- en leerkansenradar
|
||||
- Uitvoeringsmodus: autonome backlog
|
||||
- Eerste uitvoerbare taak: controleer met `python scripts/backlog.py next`
|
||||
|
||||
@@ -140,6 +140,25 @@ VR-206-herverificatie op 2026-07-22:
|
||||
- de Stitch-cockpit benut maximaal 2240 px met tweekoloms matchfeeds op ultrawide; de zes kernroutes zijn handmatig gecontroleerd op 320, 390, 1024, 1440, 1920 en 2560 px zonder horizontale paginaoverflow;
|
||||
- dark/light, gelabelde velden, mobiele drawer, score-/confidencecopy, archieffilters en inline bewaren zijn in de geïntegreerde browser gecontroleerd.
|
||||
|
||||
VR-207-herverificatie op 2026-07-22:
|
||||
|
||||
- 232 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
|
||||
- 84,59% branch-aware codedekking; Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via `scripts/codex_verify.sh`;
|
||||
- het profiel bevat gegroepeerde field-/infrastructuur-, Microsoft/endpoint-, netwerk/security-, back-up/monitoring-, virtualisatie-, VoIP- en scriptingkeuzes plus een ervaringsband;
|
||||
- de skillcomponent bereikt zijn maximum bij vier aangetroffen cv-skills en presenteert niet-vermelde voorkeurskills niet meer als tekort;
|
||||
- ambigue field-/implementatietitels vereisen een onafhankelijk IT-contextsignaal en titeluitsluitingen respecteren woordgrenzen en eenvoudige Engelse meervouden;
|
||||
- de lokale actieve auditprofielen zijn zonder persoonsgegevens in Git afgestemd op 10–14 jaar ervaring, 27 relevante roltitels en 46 cv-skills; na herscoring blijven 14 plausibele field-/infrastructuurkansen zichtbaar;
|
||||
- geïntegreerde browsercontrole bevestigde de categorie-editor op ultrawide en 390 px, één mobiele categoriekolom, geldige profielselecties en geen horizontale paginaoverflow.
|
||||
|
||||
VR-208-herverificatie op 2026-07-22:
|
||||
|
||||
- 240 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
|
||||
- 84,73% branch-aware codedekking; Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via `scripts/codex_verify.sh`;
|
||||
- ervaringsduur en senioriteitslabels hebben geen invloed meer op deterministische score, AI-score, aanbeveling, uitsluiting of feedbacklearning; migratie 0006 ruimt het oude gewicht op;
|
||||
- de persoonlijke Skillsradar analyseert alleen actieve IT-vacatures met een niet-verborgen score voor de actuele profielversie en laat records van uitsluitend uitgeschakelde bronnen buiten beschouwing;
|
||||
- de lokale radar toont 9 onderzochte vacatures, 5 herkenbare vraagsignalen, 2 gedekte skills en 3 mogelijke leerkansen zonder een tekstsignaal als harde eis te presenteren;
|
||||
- geïntegreerde browsercontrole bevestigde filters, 88 profielskillcheckboxes, één `h1`, lege console en geen horizontale paginaoverflow op 2560×1440, 1440×900 en 390×844.
|
||||
|
||||
## Deploymentstatus
|
||||
|
||||
- `main` is via de bestaande Gitea-SSH-sleutel naar `NuklearRabbit/VacatureRadar` gepusht.
|
||||
@@ -150,6 +169,18 @@ VR-206-herverificatie op 2026-07-22:
|
||||
|
||||
## Laatste uitgevoerde backlogtaak
|
||||
|
||||
- 2026-07-22: `VR-208` voltooid.
|
||||
- Ervaringsjaren zijn alleen nog profielcontext; alle score-, recommendation-, concern-, evidence- en learninginvloed is verwijderd.
|
||||
- Een gebruikersgescopeerde vraaganalyse brengt actuele skillfrequentie, bewijskwaliteit, profieldekking en niet-blokkerende leer-/bijscholingskansen in kaart.
|
||||
- De profielcatalogus en nieuwe responsieve Skillsradar ondersteunen Microsoft, netwerk/security, monitoring/platform, ITSM en digitale adoptie met begeleide filters.
|
||||
- Volgende taak: geen uitvoerbare `ready` taak; `VR-202`, `VR-203` en `VR-204` blijven `blocked-external`.
|
||||
|
||||
- 2026-07-22: `VR-207` voltooid.
|
||||
- De twee aangeleverde cv's zijn visueel en tekstueel lokaal beoordeeld; alleen afgeleide technische profielkeuzes zijn in de lokale gebruikersdatabase opgeslagen.
|
||||
- Relevante ervaring, rollen, skills en doelgerichte uitsluitingen zijn toegepast en alle 336 actieve vacatures zijn opnieuw gescoord voor beide lokale auditprofielen.
|
||||
- De profiel- en scorelogica is regressiegedekt; afwezige cv-skills verlagen een breed profiel niet onbeperkt en worden niet als bewezen tekort getoond.
|
||||
- Volgende taak: geen uitvoerbare `ready` taak; `VR-202`, `VR-203` en `VR-204` blijven `blocked-external`.
|
||||
|
||||
- 2026-07-22: `VR-206` voltooid.
|
||||
- Niet-IT-vacatures en commercieel/recruitmentmisleidende IT-titels zijn standaard uit Vandaag en de vacaturefeed verwijderd zonder bronhistoriek te wissen.
|
||||
- Matchsortering, radar-/archieffilters, score-evidence en gebruikersgescopeerde dashboardscores maken de dagelijkse selectie beslisbaar.
|
||||
|
||||
Reference in New Issue
Block a user