Blog & Resources/ATS Methodology
ENGINEERING DEEP DIVE Aug 11, 2026 6 min read

ATS Core Methodology & Six-Category Scoring Engine

How Coral Resume actually scores a résumé: real linear-text ATS parsing, a fixed six-category weighted rubric, and a model that grades categories but never gets to pick your final number.

MRM

Coral Resume Team

Core Product Architecture & Career Intelligence

Executive Summary & Key Takeaways

  • Real column detection, not a guess: before anything is scored, your browser measures the actual text-run geometry of the PDF (via PDF.js) to catch multi-column layouts — the one thing plain-text extraction can't see on its own.
  • The model scores; your code decides the number: an AI model grades six categories 0–100 each against a fixed rubric — it never outputs an overall score. Coral Resume applies one published formula to those six numbers, so the same résumé lands in the same range every time instead of drifting with the model's mood.
  • Linear Text Extraction: ATS engines like Greenhouse, Workday, and Lever do not "see" visual layouts—they parse unformatted linear text blocks.

1. Anatomy of an Applicant Tracking System (ATS) Parser

When a candidate uploads a PDF or DOCX file to an employer portal powered by Workday, Greenhouse, or Lever, the system does not render the document graphically to evaluate typography or margins. Instead, an automated parser converts the binary file into a continuous, unformatted linear text stream.

If your resume utilizes multi-column table elements, floating text boxes, or non-standard font encoding, the parser's line-by-line reading order collapses. Qualifications located in sidebars frequently get appended to unrelated sections, causing critical technical skills and metrics to be completely discarded during automated indexing.

Engineering Truth: PDF.js Linear Text Inspection

Coral Resume extracts the raw character coordinates directly from your PDF using client-side PDF.js. If a skill isn't in the linear text output, an ATS will never index it.

2. The Six Categories, and the Formula Applied to Them

The model grades your résumé on six independent categories, each an integer from 0 to 100. Coral Resume then applies one fixed formula to those six numbers — the weights below, defined once in code — to compute the overall score and letter grade. The model is never asked for an overall number, because a model asked for one number tends to give you a different one on every run.

1. ATS Compatibility25% Weight

How reliably a tracking system can extract and parse the text — standard section headings, contact info present, and no tables, columns, or text inside images breaking the parse.

2. Keywords20% Weight

Coverage of the skills, tools, certifications, and industry terms expected for the role your résumé implies.

3. Experience & Results20% Weight

Measurable achievements, strong action verbs, and quantified impact versus vague duties.

4. Content Quality15% Weight

Writing clarity, grammar, concision, and consistency.

5. Role Matching10% Weight

How coherently your experience, skills, and education point at one clear target role rather than several unrelated ones.

6. Resume Structure10% Weight

Standard sections present, logically ordered, and readable once extracted to plain text.

Grade bands sit on the computed overall: 86+ is an A, 76+ a B, 61+ a C, 41+ a D, below that an F.

3. Why the Model Doesn't Get to Pick Your Score

Most AI résumé tools ask a model for a single overall score directly. That's the part worth being skeptical of — not because models are bad at reading résumés, but because asking one for a single number invites exactly the failure modes you'd expect from asking a person to eyeball a percentage:

  1. Score instability: the same résumé, re-uploaded, can land on a different overall number, because nothing forces the model to reason the same way twice.
  2. An unauditable number: if the model just says "72," there's no way to see which part of that is real and which part is vibes.
  3. No fixed standard: without a published formula, "72" means something different depending on the résumé, the day, and the model's mood.

Coral Resume still uses a model — grading six categories against a fixed rubric is exactly the kind of judgment call a model is good at. What it doesn't do is let the model average its own judgment into a final grade. That's arithmetic, and arithmetic doesn't need an AI.

See your own six scores

Test your résumé against the six-category engine

Column detection runs locally before anything is sent. The category scoring itself is one request — never re-run without your say-so.

Audit Resume Now