RULE-BASED CHECKS + AI REVIEW

Check how ATS-friendly your CV is

Run 16 deterministic checks on structure, contact details, bullet quality and parsability. Add a job description to identify keyword gaps, with a separate AI review for additional feedback. No account required.

Important Disclaimer & PrivacyThis tool combines 16 rule-based checks with a separate, best-effort AI review. It does not reproduce any proprietary ATS or predict a hiring decision. Rule-based results remain available if AI review is unavailable.Privacy Note: Your PDF is uploaded to our server for text extraction. Up to 15,000 characters of unmasked text may be sent to the configured AI provider for review. If you add a job description, it is also sent for keyword extraction and review.

Drag & drop your CV here

Supports exactly 1 PDF file (max 5MB)

How the ATS check works

Start with reproducible checks on the text extracted from your PDF and its filename. A separate AI review adds feedback when available; it does not determine the rule-based lint score.

1 · Deterministic rules

16 checks implemented as pure functions — no AI, no randomness. The same extracted text and filename produce the same findings for a given date (an open-ended role marked “Present” is measured against today's date), and every finding names the rule it came from, so you can verify it yourself instead of trusting a score.

2 · AI evaluation

A language model reads the extracted text and scores formatting, impact and completeness, then suggests what to review. With a job description, AI extracts keywords and code matches them against your CV for a separate keyword gap report. Both AI-dependent layers are best-effort; the deterministic checks still work when they are unavailable.

The 16 deterministic checks

These run before any AI is involved. They are grouped by what fails when the check fails.

Contact details

Checks whether recognizable contact details appear in the extracted text.

  • Email address
  • Phone number
  • LinkedIn URL
  • GitHub URL
  • Personal website / portfolio
  • Location / timezone

Bullet quality

Checks action-verb openings, bullet length and the presence of measurable results. Include numbers only when they are accurate.

  • Action verbs
  • Bullet point length
  • Measurable metrics

Structure

Checks recognizable sections and date patterns, and flags possible timeline issues for review.

  • Standard sections
  • Dates & timeline
  • Employment gaps
  • Recent roles without end date

ATS-specific parsing

Checks special characters, skills formatting and the filename for potential parsing issues.

  • Special characters / emoji
  • Skills parsability
  • File name

Common PDF and content issues to review

These examples show why checking extracted text and clear formatting can be useful. They are possible issues, not predictions of rejection by a particular ATS.

Skills in a table or multi-column layout
Columns and tables can disrupt reading order during PDF text extraction.
Section headings like “My Journey” instead of “Experience”
Creative headings may be harder for automated section detection to recognize.
Icons and emoji next to contact details
Some icon glyphs extract as unknown characters. Check that adjacent contact details remain readable.
Dates written as “2022 – now” or only as years
Ambiguous date formats can make timeline interpretation less reliable. Review flagged date ranges.
A file named cv_final_v3(1).pdf
Generic names and draft markers trigger the filename check. Use a clear name for your exported CV.

The CraftCV editor exports a single-column PDF with selectable text, so the layout cannot drift back into a table.

Questions people actually ask

Does this reproduce an enterprise ATS?

A CV checking tool, not an enterprise ATS. It checks extracted PDF text and the filename using documented rules, with a separate AI review when available. It does not reproduce proprietary ATS products or employer configurations.

Why two scores?

The weighted lint score is calculated by code from 16 deterministic checks. A passed check earns full credit, a warning half; optional GitHub and personal-website checks do not lower it. A separate AI evaluation score summarizes model feedback on the extracted text. The scores are not averaged. If AI review fails or is not configured, the rule-based report is still available.

What does adding a job description change?

When AI keyword extraction is available, it extracts terms from the posting and code checks for them in your CV text. The keyword gap score measures matched terms marked must-have by the extraction; it is not evidence that you have or lack a skill. Without must-have terms, this gap score is N/A. The AI review may also comment on keyword coverage.

What happens to my PDF?

The server extracts text from your PDF. The rules check the full extracted text and filename; up to 15,000 characters of unmasked CV text may be sent to the configured AI provider for review. The original PDF is not sent to the provider. See the privacy policy for processing and retention details.

Does a high score mean I get the interview?

No. A high lint score means your CV passed more of these documented checks; a high AI score reflects the model’s assessment. Neither predicts acceptance by an employer’s ATS or a job interview.

After the report

The report tells you what to change; fixing it is a separate job. You can rebuild the CV from scratch in the editor, keep the file local, and re-run this check on the export and review any findings that matter to your CV.