Spelregels

Harde afspraken die het AI-brein altijd volgt.

Vaste regels

Wat staat hier?
Dit zijn de harde regels die in code zijn afgedwongen. Ze wijzigen alleen via een bewuste bouwopdracht — niet via prompts of instellingen in de database.

Laag 1 = harde garanties. Laag 2 (toekomst) wordt gevormd door prompts, RAG en evaluatie die hierop voortbouwen, maar nooit tegen deze regels in.

Centrale match-drempel
Dit is de enige drempel voor de mismatch-guard, voor alle kanalen en alle profielen. De qualify-code leest deze waarde bij elke call uit tabel ai_config (sleutel match_drempel). Bij een DB-leesfout valt de guard terug op 40.
Huidige waarde:
#1
Lege reply = nooit bedanken
Sinds 2026-07-12
Hard

Als een kandidaat nog niet heeft geantwoord (reply_tekst is leeg of alleen whitespace), draait de qualify-AI in nudge-modus. De output mag nooit bedank-frasen bevatten. Bij een overtreding wordt één keer geregeneerd; blijft het mis, dan valt het systeem terug op een vast nudge-template.

Waar afgedwongen

  • src/lib/qualification.server.ts (genereerKwalificatiebericht, BEDANK_REGEX + NUDGE_HARDCODED_FALLBACK)
  • src/routes/api/public/qualify.ts
  • src/lib/prompt-test.functions.ts
#2
Gesprekstatus altijd in contract, log en API
Sinds 2026-07-12
Hard

Elke kwalificatie levert een gesprek_status op: doorgaan, afgesloten_geen_interesse of menselijk_opvolgen. De status wordt gelogd in kwalificatie_log en teruggegeven via de API zodat de kanaal-laag weet of het gesprek moet stoppen of overdragen.

Waar afgedwongen

  • src/lib/qualification.server.ts (GesprekStatus type + STATUS_SET guard)
  • src/routes/api/public/qualify.ts
  • src/routes/prompt-test.tsx
#3
Vragen-array geforceerd leeg bij afsluiting
Sinds 2026-07-12
Hard

Wanneer de gesprek_status afgesloten_geen_interesse is, maakt een code-guard de vragen-array onvoorwaardelijk leeg. De AI kan dan geen vervolgvragen meer doorsturen.

Waar afgedwongen

  • src/lib/qualification.server.ts (status === 'afgesloten_geen_interesse' ⇒ v = [])
#4
Bedrijfskennis gaat automatisch mee in elke qualify
Sinds 2026-07-11
Hard

Alle actieve business_brain-items uit de categorieën bedrijf, recruitment, compliance en playbook worden zonder embeddings of vector search rechtstreeks in de system-prompt geplaatst onder het kopje 'Bedrijfskennis'. De meegegeven titels worden gelogd.

Waar afgedwongen

  • src/lib/business-brain.server.ts (laadBrainVoorQualify)
  • src/routes/api/public/qualify.ts
  • src/lib/prompt-test.functions.ts
#5
Mismatch-guard: match_score onder centrale drempel = geen vervolgvragen
Sinds 2026-07-12
Hard

De qualify-AI moet vóór elk bericht het kandidaatprofiel + gesprek expliciet toetsen aan de vacature-eisen (domein/ervaring, contractvorm, locatie, beschikbaarheid, tarief) en een match_score (0-100) + match_toelichting leveren. Bij een score onder de centrale drempel uit ai_config.match_drempel (default 50; fallback 40 bij DB-leesfout) forceert de code een eerlijk, warm mismatch-bericht met lege vragen-array en zet gesprek_status op menselijk_opvolgen zodat René meekijkt. De gebruikte drempel + bron worden samen met match_score en match_toelichting gelogd in kwalificatie_log.

Waar afgedwongen

  • src/lib/ai-config.server.ts (laadMatchDrempel, tabel ai_config)
  • src/lib/qualification.server.ts (genereerKwalificatiebericht + beoordeelKwalificatie, MATCH-stap in prompts + code-guard leest drempel per call)
  • src/routes/prompt-test.tsx (weergave match_score/toelichting + actieve drempel)
#6
Geen naam/handtekening onder berichten
Sinds 2026-07-12
Hard

De qualify-AI mag NOOIT ondertekenen met een naam of initialen. Zowel de prompts (ai_prompts + hardcoded fallbacks + SENIOR_RECRUITER_PROMPT) als een code-guard dwingen dit af: een slotregel als 'Groetjes, X', 'Mvg, X' of 'Met vriendelijke groet, X' wordt automatisch uit het gegenereerde bericht/afsluitbericht gestript en gelogd in kwalificatie_log (veld handtekening_gestript). Optioneel afzender-blok in de qualify-body geeft de AI wél context (voornaam, functie, focus) zonder toestemming om te tekenen; ondertekening volgt op kanaalniveau.

Waar afgedwongen

  • src/lib/qualification.server.ts (stripNaamHandtekening + toepassing in genereer en beoordeel)
  • src/routes/api/public/qualify.ts (SENIOR_RECRUITER_PROMPT HANDTEKENING-REGEL + strip-guard)
  • src/lib/prompt-test.functions.ts (zelfde strip-guard in testomgeving)
  • ai_prompts: qualify_bericht v4 + qualify_beoordeling v3 (actief)