--- name: kandidatvurdering description: "Scorer en stillingsannonse mot kandidatprofilen, kjoerer hardfiltrene foerst og leverer score, begrunnelse og bekymringer paa norsk. Skriver ingenting. Utloeses av vurder denne annonsen, score denne stillingen, hva er scoren på denne, hva er scoren pa denne, passer denne stillingen for meg, kjør hardfiltrene og kjor hardfiltrene." triggers: - vurder denne annonsen - score denne stillingen - hva er scoren på denne - hva er scoren pa denne - passer denne stillingen for meg - kjør hardfiltrene - kjor hardfiltrene --- # kandidatvurdering Scorer én annonse mot `profil/kandidat.md`. **Skriver ingenting.** Ingen fil, ingen logg, ingen sak. I M1 finnes ingen ingest-vakt ennå, så teksten som vurderes er utrygg — og det eneste som holder den utenfor arbeidsmappa, er at denne stien ikke skriver i det hele tatt. Skal noe lagres, er det `beslutning` og `sak` som gjør det, etter at operatøren har bestemt seg. All operatørrettet tekst er norsk bokmål. ## Arbeidsdelingen Regnestykket er ikke ditt. Du leverer skjønn per kriterium; scriptet `${CLAUDE_PLUGIN_ROOT}/scripts/vurdering.py` gjør aritmetikken. En score du regner ut selv er ikke reproduserbar, og M6 leser den som et tall på en vektavhengig skala. Gjør dette, i denne rekkefølgen: 1. Les profilen med `les_profil_fil(root, "profil", "kandidat.md")`. 2. Sett delscore for hvert kriterium — `fagomrade`, `oppgavetype`, `teknologi`, `selskapstype` — som et heltall 0-100. Alle fire må være med; et manglende eller ugyldig kriterium blir avvist ved navn. 3. Skriv bekymringene dine som fri tekst i `bekymringer`. Scriptet leverer dem tilbake urørt — det oppfinner ingen. 4. Kall `vurder(profil, annonse, brodtekst, last)` og les resultatet. ## Les resultatet slik - **`verdikt`** er `avvist` så snart minst én hardfilter slo til, ellers `vurderes`. - **`avvisninger`** navngir frontmatter-nøkkelen hver avvisning kom fra. Gjengi nøkkelen ordrett. Annonsen får en score uansett, slik at operatøren kan veie avslaget mot et tall. - **`advarsler`** er filtre som ikke kunne kjøre. Lønn som ikke er oppgitt er ikke lønn under gulvet, og en stillingskode rangtabellen ikke kjenner er ikke lav senioritet. Si hva som ikke ble sjekket. - **`vekt_hash`** identifiserer vektvektoren scoren ble regnet med. Ta den med når scoren refereres videre. Står arbeidsstedet i profilens `arbeidssteder`, blir reisetid en advarsel og ikke et avslag. Det er operatørens eget valg, kodet — ikke en lekkasje i filteret. ## Lever på norsk Gi operatøren fire ting, i denne rekkefølgen: score, verdikt med de navngitte nøklene, begrunnelse for delscorene, og bekymringene. Ikke pynt på et avslag, og ikke gjett på lønn eller reisetid annonsen ikke oppgir. ## Uten verktøyserveren Er `jobbsok-tools` ikke tilgjengelig, degraderer skillen i stedet for å stoppe: les profilen direkte, sett delscorene som vanlig, og be operatøren kjøre scriptet fra kommandolinja for aritmetikken. Ikke regn ut summen selv som en mellomløsning — da er tallet ikke lenger reproduserbart, og det er hele poenget med delingen. Vektene og frontmatter-kontrakten står i `${CLAUDE_PLUGIN_ROOT}/skills/kandidatvurdering/references/vekter.md`.