Three lines of requirements arrive for a role. Somewhere at the other end a shortlist gets built by hand, and nobody can quite reconstruct why one name made it and another didn’t. The obvious move is to hand the whole thing to AI and let it sort the pile.
Don’t. Not the whole thing.
Two kinds of requirement, two different tools
Every screening problem splits into two kinds of requirement, and they want opposite tools. Hard requirements are non-negotiable: the certification, the location, the legal must-have. Soft requirements are matters of degree: how well this person fits, how close this part comes.
Hard requirements belong in code. They are rules, and rules should be enforced by something that does not get creative. A model that “mostly” respects a must-have is not a feature. It is a liability waiting for the one case where mostly is not enough.
Let the model judge fit. Never let it decide the rules.
Evidence under everything
Soft matching is where the model earns its keep. In a screening tool we built, free-text requirements become an editable ideal profile, candidates are ranked 0-100 by semantic match, and every answer is backed by evidence pulled from the CV, or an explicit “no evidence.” The model never gets to assert something it cannot point to.
Hard rules in code, soft judgement in the model, evidence under everything. The whole thing was built end to end in about a month, and you can read exactly why any candidate sits where they do.