{"slug": "i-built-a-free-ats-resume-checker-for-indian-job-seekers-no-llm-no-build-step-no", "title": "I Built a Free ATS Resume Checker for Indian Job Seekers — No LLM, No Build Step, No Framework", "summary": "A developer built ATSMeter, a free ATS resume checker tailored for Indian job seekers. The tool uses deterministic rule-based checks instead of LLMs, runs on a vanilla JS frontend with no framework, and stores no resume content. It supports two-column layouts, CGPA, fresher resumes, and distinguishes between government/PSU and private-sector targeting.", "body_md": "🔗 Live: atsmeter.in\n\nWhy I built this\n\nMost free ATS resume checkers are built for the US job market. They flag CGPA as \"unnecessary personal data,\" don't understand fresher/campus-project resumes, and give the same advice regardless of whether you're applying to a private company or a government/PSU role in India — where the same detail (DOB, photo, father's name) means completely opposite things depending on who's screening you.\n\nSo I built ATSMeter — a free, unlimited ATS resume checker (plus cover letter and LinkedIn About checkers) made specifically for Indian job seekers.\n\nThe interesting technical decisions\n\nNo LLM in the scoring path. Every finding is a deterministic, rule-based check — regex patterns, layout heuristics from pdfplumber (two-column detection, header/footer band detection for contact info), keyword matching. Same resume in, same score out, every time. No black box, no hallucinated feedback, and it means I can explain every single finding with the exact reason behind it.\n\nNo framework, no build step. The frontend is plain HTML/CSS/JS across three pages. No React, no bundler, no TypeScript. For a tool this size, that means instant load times, zero dependency-update maintenance, and I can read the entire codebase top to bottom in a sitting.\n\nFirebase Auth via raw REST API, not the SDK. Sign-in is optional (email-link, passwordless) and only unlocks cross-device score history. I called Firebase's REST endpoints directly instead of loading the Firebase JS SDK, specifically so I could keep a strict CSP (script-src 'self') — no third-party script CDN needed at all.\n\nNothing is stored, structurally. Your resume/cover letter/LinkedIn text is parsed in memory for the duration of one request and discarded. If you sign in, we store only score/type/filename/date — never the actual content. This isn't just a privacy policy sentence, it's enforced by the code path itself: there's no code that ever writes resume text anywhere.\n\nIt's a real PWA. Installable on iOS/Android/desktop, works offline via a service worker caching the app shell, with network-first fetching so a new deploy shows up immediately instead of needing a stale cache to expire.\n\nWhat it checks\n\nTwo-column layouts and tables that scramble when an ATS parses them\n\nContact info accidentally sitting in a header/footer band that some parsers skip\n\nCGPA, fresher/campus-project resumes (scored on their own merit, not penalized for missing \"experience\")\n\nGovt/PSU vs private-sector targeting — same resume, different rules, because the right answer genuinely differs\n\nPassive/filler phrases with suggested action-verb rewrites\n\nMissing quantified results\n\nStack\n\nFastAPI + pdfplumber/python-docx on the backend, deployed on Google Cloud Run. Vanilla JS frontend, Firebase Auth/Firestore/Cloud Storage for the optional account features (private bucket, served only to its owner — no public URLs).\n\nIt's free, unlimited, and takes about 10 seconds — no sign-up required to check a resume.\n\n🔗 atsmeter.in — feedback welcome, especially if something looks wrong on your resume.", "url": "https://wpnews.pro/news/i-built-a-free-ats-resume-checker-for-indian-job-seekers-no-llm-no-build-step-no", "canonical_source": "https://dev.to/aravindhraja123/i-built-a-free-ats-resume-checker-for-indian-job-seekers-no-llm-no-build-step-no-framework-5ki", "published_at": "2026-07-14 09:07:39+00:00", "updated_at": "2026-07-14 09:28:59.810561+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence"], "entities": ["ATSMeter", "Firebase", "Google Cloud Run", "FastAPI", "pdfplumber", "python-docx"], "alternates": {"html": "https://wpnews.pro/news/i-built-a-free-ats-resume-checker-for-indian-job-seekers-no-llm-no-build-step-no", "markdown": "https://wpnews.pro/news/i-built-a-free-ats-resume-checker-for-indian-job-seekers-no-llm-no-build-step-no.md", "text": "https://wpnews.pro/news/i-built-a-free-ats-resume-checker-for-indian-job-seekers-no-llm-no-build-step-no.txt", "jsonld": "https://wpnews.pro/news/i-built-a-free-ats-resume-checker-for-indian-job-seekers-no-llm-no-build-step-no.jsonld"}}