Building an AI résumé scorer with Claude + AWS Bedrock - architecture and lessons learned ScorAxis has built an AI résumé scorer using Claude Sonnet via AWS Bedrock that provides ATS compatibility scores from 0 to 100. The system uses a hybrid approach: deterministic Python rules for the 0–70 range and LLM-based analysis for the 0–30 range, with graceful degradation if the LLM is unavailable. The architecture ensures structured JSON output through forced tool_choice, resulting in near-zero validation failures in production. Most résumés never reach a human recruiter. ATS software filters them out silently, with zero feedback to the applicant. That's the problem ScorAxis https://www.scoraxis.com/ solves. Upload a PDF → get a 0–100 ATS compatibility score with specific issues flagged and actionable fixes. Deterministic 0–70 — pure Python, no AI: contact info, sections, word count, bullets, date consistency, layout density LLM 0–30 — Claude Sonnet via tool use: action verbs, quantified impact, keyword coverage, tense, buzzwords If Sonnet is unavailable, the upload never fails. The system persists a deterministic-only score with a "Limited Mode" banner. The user always gets something useful. Forced tool choice made structured JSON output rock solid — almost zero validation failures in production. Live at scoraxis.com https://www.scoraxis.com/ — happy to answer questions about the architecture below.