{"slug": "i-built-a-job-risk-checker-that-never-calls-an-llm-it-reads-your-github-instead", "title": "I built a job-risk checker that never calls an LLM — it reads your GitHub instead", "summary": "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.", "body_md": "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?\"**\n\nBecause 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.\n\nSo 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.**\n\nA resume is what you say about yourself. A commit history is what you actually did.\n\nThe scoring itself never touches an LLM. No API call, no token cost, no non-determinism.\n\nUnder 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.\n\nNot the engine. The honesty.\n\nEarly 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.\n\nLater, 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.\n\nThen, once it was live: a genuinely 0%-match score crashed the PDF renderer outright (`react-pdf`\n\nthrows 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.\n\nDeploying 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.\n\nNone 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.\n\n[Career Radar — free, no signup →](https://app-vert-sigma-60.vercel.app)\n\nPaste 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.\n\nCurious 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.", "url": "https://wpnews.pro/news/i-built-a-job-risk-checker-that-never-calls-an-llm-it-reads-your-github-instead", "canonical_source": "https://dev.to/abhisimplified/i-built-a-job-risk-checker-that-never-calls-an-llm-it-reads-your-github-instead-1393", "published_at": "2026-08-30 10:36:19+00:00", "updated_at": "2026-08-30 10:52:28.023665+00:00", "lang": "en", "topics": ["developer-tools", "ai-products"], "entities": ["GitHub", "Claude", "BLS", "Career Radar", "react-pdf", "Google Sheet", "Vercel"], "alternates": {"html": "https://wpnews.pro/news/i-built-a-job-risk-checker-that-never-calls-an-llm-it-reads-your-github-instead", "markdown": "https://wpnews.pro/news/i-built-a-job-risk-checker-that-never-calls-an-llm-it-reads-your-github-instead.md", "text": "https://wpnews.pro/news/i-built-a-job-risk-checker-that-never-calls-an-llm-it-reads-your-github-instead.txt", "jsonld": "https://wpnews.pro/news/i-built-a-job-risk-checker-that-never-calls-an-llm-it-reads-your-github-instead.jsonld"}}