The scout presented a keyword count as "Strong fit" / "Medium fit". It is
neither: it measures how many profile keywords a posting echoes, and knows
nothing about his evidence, the hard requirements, the level, the language or
the commute.
- Buckets renamed to keyword relevance, with "NOT a fit judgement" in the
heading, and score_job documents the limit with the review's own example:
"Senior AI Engineer, Generative AI / LLM / RAG" scores 12 against "Senior Data
Engineer" at 3, while the second is much closer to what he can evidence.
- German job vocabulary added. Every German-language posting used to score near
zero regardless of fit, which is the real reason RUAG, SBB, BKW, PostFinance
and Kdo Cy all needed a _score_floor. The floor was a workaround; the missing
terms were the defect. "Senior Dateningenieur" 1 -> 3, level with its English
twin.
- Platform/DevOps vocabulary was simply absent: devsecops, platform engineer,
platform automation, infrastructure as code, observability, site reliability.
The Kdo Cy "ICT-System Engineer (DevSecOps / Platform Automation)" scored ZERO
before this - a posting whose requirement lines match his canonical evidence
almost line for line. It now scores 10.
- Noise is unaffected: "Office Manager:in Administration" still scores 0.
Floors were left in place so this diff stays attributable; they can likely be
reduced now that the vocabulary exists.
34/34 tests pass; validated on a live 37-company run.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qej5SBvhcbGXHwLqNWiskM