CV and Cover Letter Submission-Ready Checklist: 6 Verification Groups from ai-job-search

The ai-job-search repository defines six mandatory verification groups—factual accuracy, targeting, consistency, quality, compiled PDF verification, and ATS compatibility—that must be passed before any CV or cover letter is considered ready for submission.

The MadsLorentzen/ai-job-search repository provides a structured LaTeX workflow for generating job application documents. Central to this framework is a comprehensive CV and cover letter submission-ready checklist documented in CLAUDE.md that segments quality assurance into six distinct dimensions. These criteria ensure every document meets both human recruiter standards and Applicant-Tracking System (ATS) parsing requirements.

The Six Verification Groups for Submission-Ready Documents

The repository splits the verification process into six logical groups, each covering a distinct quality dimension.

1. Factual Accuracy

All personal data, job titles, dates, and company names must be correct and independently verifiable. The checklist explicitly prohibits fabricated claims and requires contact details to be present and accurate. Any company-specific statements must be verified against independent sources. According to CLAUDE.md lines 97-101, recruiters and automated parsers immediately reject applications containing inaccurate or unverifiable information.

2. Targeting

Every document must demonstrate explicit alignment with the specific role. The opening paragraph, skill bullets, and experience entries should be tailored to address required and nice-to-have job requirements. Where gaps exist, they must be acknowledged rather than concealed. As documented in CLAUDE.md lines 103-107, this targeting proves the candidate has analyzed the posting and mapped their profile to the employer’s needs.

3. Consistency

The CV must follow the 2-page modern-cv or banking layout, while the cover letter must use the cover.cls template. Tone and factual content must remain coherent across both documents to prevent contradictory signals. The guidelines in CLAUDE.md lines 109-113 emphasize that layout consistency prevents credibility issues during review.

4. Quality

LaTeX syntax must be sound with error-free spelling and grammar. Any AI-tool references must explicitly mention Claude Code. The cover letter must fit roughly one page and be addressed to the correct recipient. These requirements in CLAUDE.md lines 115-120 ensure the presentation passes both human review and automated screening.

5. Compiled PDF Verification (Mandatory)

This group requires visual inspection of the final PDFs built with specific engines: lualatex for the CV and xelatex for the cover letter. The CV must be exactly 2 pages and the cover letter exactly 1 page. Inspectors must verify no orphaned \cventry titles exist, bullet fonts match the body font, and page-break handling using \needspace or \enlargethispage is correctly applied. As stated in CLAUDE.md lines 122-129, LaTeX rendering shifts can alter layout unexpectedly, making visual verification critical.

6. ATS and Keyword Verification (CV)

The PDF’s hidden text layer must extract cleanly without cid:* glyphs or replacement characters. Email addresses and phone numbers must appear as literal text rather than images, and the reading order must match the visual order. Required keywords must be present without keyword stuffing. According to CLAUDE.md lines 130-135, malformed PDFs or missing keywords cause automatic rejection by ATS parsers.

LaTeX Implementation Examples

The following snippets from the repository demonstrate how to satisfy critical checklist items in practice.

Prevent Orphaned Section Titles

To satisfy the "no orphaned \cventry titles" requirement in cv/main_example.tex, use the \needspace command before entry declarations:

\needspace{5\baselineskip} % Forces page break if insufficient space remains
\cventry{2020--2022}{Senior Engineer}{Acme Corp}{Copenhagen}{}
  {%
    \begin{itemize}
      \item Designed a micro-service architecture ...
    \end{itemize}
  }

The \needspace{5\baselineskip} directive ensures the \cventry title remains with its content, directly implementing the PDF verification requirements.

Consistent Bullet Fonts in Cover Letters

In cover_letters/cover_example.tex, wrap bullet environments with font specification blocks to match body text:

\lettercontent{
  I am excited to apply for the Data Scientist role at XYZ.
}
% Switch to Raleway for the bullet list
{\raggedright\fontspec[Path=OpenFonts/fonts/raleway/]{Raleway-Medium}\fontsize{11pt}{13pt}\selectfont
\begin{itemize}
  \item Built a recommendation engine that increased CTR by 12%
  \item Led a cross-functional team of 5 data engineers
\end{itemize}
\par}

This font wrapper guarantees bullet text matches the body font, satisfying the consistency verification group.

ATS-Friendly Contact Details

Ensure ATS parsers can extract contact information by using literal text fields in cv/main_example.tex:

\email{john.doe@example.com}
\mobile{+45 1234 5678}

Both commands emit literal text into the PDF’s hidden layer, ensuring email and phone numbers parse correctly during automated screening.

Build Process and Verification Workflow

The repository implements a four-step workflow to execute the checklist:

  1. Generate LaTeX source – Create cv/main_<company>.tex and cover_letters/cover_<company>_<role>.tex using the templates.
  2. Build PDFs – Compile CVs with lualatex and cover letters with xelatex (utilizing cover.cls).
  3. Execute checklist – Tick off each verification group after visual PDF inspection and pdftotext sanity checks.
  4. Iterate – Failed items trigger LaTeX tweaks (such as adding \needspace adjustments) followed by rebuilds until all boxes are checked.

This systematic approach guarantees that every document meets the CV and cover letter submission-ready checklist standards before reaching recruiters.

Summary

  • Factual accuracy requires verifiable dates, titles, and contact details with no fabricated claims.
  • Targeting mandates tailoring content to specific job requirements or acknowledging gaps honestly.
  • Consistency enforces 2-page CV layouts (modern-cv) and 1-page cover letters (cover.cls) with coherent tone.
  • Quality demands error-free LaTeX, explicit Claude Code attribution, and correct recipient addressing.
  • PDF verification requires lualatex/xelatex builds with exact page counts and no orphaned \cventry titles.
  • ATS verification ensures clean text extraction, literal contact details, and proper keyword placement without stuffing.

Frequently Asked Questions

How do I verify that my CV will pass ATS parsing?

Extract the text layer using pdftotext and inspect for cid:* glyphs or replacement characters. Verify that email addresses and phone numbers appear as literal text in the extraction. According to the repository's CLAUDE.md (lines 130-135), any garbled text or image-based contact information will cause automatic rejection by applicant-tracking systems.

Why must I use different LaTeX engines for the CV and cover letter?

The repository specifies lualatex for CV compilation and xelatex for cover letters to accommodate different font handling and layout requirements. The cover.cls template relies on specific XeLaTeX font features, while the CV template uses LuaLaTeX for better micro-typography. Using the correct engine prevents layout shifts that could violate the exact 2-page CV and 1-page cover letter requirements.

What causes orphaned \cventry titles and how do I fix them?

Orphaned titles occur when a \cventry heading appears at the bottom of a page while its descriptive content flows to the next page. Insert \needspace{5\baselineskip} before the \cventry command (as shown in cv/main_example.tex) to force a page break if insufficient vertical space remains. This ensures the title and content remain together, satisfying the mandatory PDF verification checklist item.

Is mentioning Claude Code actually required in the documents?

Yes, the Quality verification group explicitly requires that any AI-tool references mention Claude Code. This attribution appears in the CLAUDE.md (lines 115-120) quality standards and ensures transparency regarding document generation assistance while maintaining professional integrity.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →