Design rules for an LLM pipeline whose output people act on — from a small product that turns AI job-search research into something you can trust.
Ask any LLM for "20 companies hiring senior PMs in Bengaluru right now" and you'll get 20 names in seconds. Some are hiring. Some froze headcount months ago. One or two may not have the role at all. Here's the trap: the output looks identical either way. Fluency is not evidence, and an invented fact arrives wearing the same confident prose as a checked one.
For most AI products that's an annoyance. For ours it's disqualifying. We sell done-for-you job-search research — scored target roles, company deep-dives, salary bands, a rewritten résumé — and a job seeker acts on it. They spend an evening tailoring an application to a role. If that role closed three weeks ago, the AI didn't save them time; it stole an evening from someone who may be between jobs. One hallucinated fact can cost a real person a real opportunity.
So we adopted one rule and built the pipeline around it: if we can't verify it, it doesn't ship. This post is the engineering version of that rule — the principles that turned out to matter, and what they cost.
Rule 1: LLMs draft, deterministic code decides






