A score you can't interrogate isn't worth much. This page describes exactly what happens to your resume, how the number is produced, and — just as importantly — what it can't tell you.
Your file is read in memory. PDFs go through pdf.js, DOCX through mammoth, plain text and RTF directly. We read the text layer only — we do not run OCR, so a scanned or photographed resume has no text to extract and will fail rather than return a misleading score.
Before anything leaves our server we strip email addresses, phone numbers, LinkedIn/GitHub/social URLs, other personal URLs, postal addresses, Aadhaar and PAN numbers, passport-format identifiers, and the candidate name where it appears in the resume header. The same stripping runs on the job description, which often carries a recruiter’s contact details.
We detect which standard sections are present (experience, skills, education, summary, certifications, projects), estimate length, and look for quantified achievements. This part is deterministic — the same document always produces the same result.
The stripped resume and job description are sent to Google Gemini 2.5 Flash, with gemini-2.5-flash-lite as a fallback under load. A response schema constrains the output to a fixed structure. The model identifies matched terms, missing terms, and semantic equivalents — for example recognising that "people management" and "team leadership" describe the same thing.
The model returns a 0–100 score weighing keyword coverage, section structure, experience relevance, and formatting risk. We validate the value, clamp it to range, and derive the letter grade from the fixed bands below.
Bands are fixed, so the same score always produces the same grade.
This section matters more than the one above it.
You will see figures repeated across this industry — that some fixed percentage of resumes are auto-rejected, or that an optimised resume multiplies your interview rate. We previously repeated a few of them ourselves. When we went looking for the primary research behind them, we could not find it.
So we removed them. We would rather tell you how our own system works than borrow authority from numbers we cannot source. Where we publish a statistic in future it will carry a citation, a date, and a description of the sample.
If you find a claim anywhere on this site that isn't sourced, please tell us and we will correct or remove it.
Your file is never written to disk. Text is extracted in memory and discarded when the request ends. We retain anonymised telemetry — score, grade, role category, which sections were detected, and which keywords were commonly missing — with no resume text and no contact details attached.
Results are cached for 24 hours against a SHA-256 hash of the stripped text, so rescanning an unchanged document returns instantly without a second model call. The hash is one-way: your resume cannot be reconstructed from it.
Automated redaction is thorough but not perfect. It cannot guarantee that every identifier in every document format is caught. Full detail is in our Privacy Policy.
Scan your resume against a real posting and see the breakdown.
Scan my resume