I built a job-risk checker that never calls an LLM — it reads your GitHub instead A developer built a job-risk checker that analyzes GitHub commit histories instead of relying on self-reported resumes, and it never calls an LLM at runtime. The tool uses a deterministic scoring engine over a hand-curated knowledge base of 75+ roles and BLS labor market data. The developer highlighted fixes for issues like a zero-match score crashing the PDF renderer and a weekly counter failing on serverless infrastructure. A few weeks ago I sat down to build "will AI take my job," the tool. The honest first question I asked myself wasn't "how do I build this" — it was "why would anyone use this instead of just asking Claude?" Because they wouldn't. Not if all I built was five text boxes title, years of experience, skills... feeding a prompt. That's a worse version of a chat window. Anyone can open Claude right now and get a more nuanced answer to "is my job at risk" than a form ever will. So the product only had a reason to exist if it did something a five-minute chat session structurally can't: gather real evidence about you, not just take your word for it. A resume is what you say about yourself. A commit history is what you actually did. The scoring itself never touches an LLM. No API call, no token cost, no non-determinism. Under the hood it's a deterministic engine over a hand-curated knowledge base — 75+ roles, each broken into the specific tasks "atoms" that make up a normal week in that job, scored against real BLS labor market data actually fetched and verified against government projections, not fabricated . Run the same input twice, get the exact same result twice. Not the engine. The honesty. Early on, the "gap" recommendations were skill-generic — a nurse and a CTO with the same missing skill got byte-identical advice. Fixed by grounding every recommendation in a real, rotating part of that specific role's actual week. Later, I generated a real sample PDF and actually read it back instead of trusting the code was "obviously correct." Found a card that rendered nearly empty because a skill had no matching course in the learning database — directly undermining the report's own promise. Fixed with an honest fallback instead of a hole. Then, once it was live: a genuinely 0%-match score crashed the PDF renderer outright react-pdf throws on a zero-length arc . That's not a hypothetical edge case — it's a real, common outcome for someone changing careers. Found it, fixed it. Deploying it surfaced its own honesty problem: the "weekly counter" — a real, non-fabricated count of checks that week — was silently failing in production because it wrote to a local file on a filesystem that doesn't persist on serverless infra. Fixed by routing it through a Google Sheet in the background instead. None of this is dramatic. It's the unglamorous 80% of actually shipping something, and most of what I learned building this had nothing to do with AI at all. Career Radar — free, no signup → https://app-vert-sigma-60.vercel.app Paste your GitHub username or type your title. The only thing that ever asks for an email is unlocking the full breakdown or downloading a job-posting comparison, and nothing is ever emailed to you even then. Curious what a technical audience makes of the "evidence over self-report" framing, and whether zero-LLM-at-runtime reads as a real design decision or a gimmick. Tell me I'm wrong about something.