The framework ships with two production-ready LaTeX templates: moderncv (banking style) for the CV and a customDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/SudharakaA/ai-job-search/llms.txt
Use this file to discover all available pages before exploring further.
cover.cls for the cover letter. Both are used automatically by /apply without any configuration. If you want to use your own template instead, the /add-template command handles the full registration workflow: it captures the template’s compile instructions, stores the files in a safe profile-agnostic form, runs a mandatory test compile, and wires the template into /apply so every future application drafts from it.
Stock templates
The CV (cv/main_example.tex) uses moderncv’s banking style compiled with lualatex. The lualatex engine is required because pdflatex commonly fails on modern MiKTeX installations with fontawesome5 font-expansion errors, while lualatex handles the same sources without issues.
The cover letter (cover_letters/cover.cls) is a custom class that loads Lato and Raleway fonts from the bundled OpenFonts/ directory. It requires xelatex because the class uses fontspec for its font loading, which is only available under xelatex and lualatex. The cover letter uses xelatex specifically to match the class’s font-loading requirements.
The CV and cover letter intentionally use different engines. Always compile the CV with
lualatex and the cover letter with xelatex. Using the wrong engine is the most common source of compilation errors.Registering a custom template with /add-template
Run/add-template inside Claude Code to start the registration workflow. You can point it at a .tex file, an @-mentioned file, or paste LaTeX content directly. If the template uses a custom .cls or .sty file, have those ready as well.
Declare the template type and source
Tell the command whether this is a CV template or a cover letter template, then provide the source. This can be a file path, an
@-mention, pasted LaTeX, or a directory containing the template and its assets.Answer the instruction interview
The command reads your LaTeX source, infers as much as it can (document class,
\fontspec calls, geometry, colors), and presents those inferences for confirmation. You will be asked to confirm or supply:- Name: a short kebab-case identifier such as
awesome-cvorclassic-serif - Compile engine:
lualatex,xelatex, orpdflatex. If the template usesfontspecor loads fonts by path, the command requiresxelatexorlualatexand will say so - Fonts: which fonts the template uses and whether they are bundled files (
.ttf/.otf) or system fonts - Style rules: anything the drafter must preserve, such as color scheme, section order, heading style, spacing conventions, bullet formatting, and date format
- Page limit: hard page count for the compiled PDF (default: 2 pages for a CV, 1 page for a cover letter)
- Known pitfalls: optional, but valuable for macros that break with certain content
Files are stored under templates/
The command creates the template folder and writes three things into it:
template.tex: your template skeleton with all personal data replaced by[PLACEHOLDER]tokens- Class/style files: any
.clsor.styfiles copied alongsidetemplate.tex TEMPLATE.md: the manifest (see format below)
fonts/ subdirectory and the Path values in template.tex are updated to be relative to the template folder.Mandatory test compile
The command fills every
[PLACEHOLDER] with realistic dummy data and compiles the result with the declared engine. If compilation fails, it diagnoses the error (missing font, wrong engine, missing class) and iterates. If the fix requires a file only you have, it waits for you to provide it.On success, the command reads the compiled PDF to confirm the layout is sensible, records any surprises in the manifest, and deletes all scratch files.Registration does not proceed until the test compile passes.Template is activated
The command inserts a managed block at the top of
05-cv-templates.md (for a CV template) or 06-cover-letter-templates.md (for a cover letter template). The block names the template, engine, fonts, and page limit. /apply reads these files when drafting, so the block is all the wiring needed.TEMPLATE.md manifest format
Every registered template includes aTEMPLATE.md manifest. The command generates this automatically, but if you register a template manually (see below), create it in exactly this format:
Template storage layout
Switching between templates
--use default removes the managed block from the guidance file entirely. The stock moderncv or cover.cls guidance below it takes over immediately, with no further changes needed.
Manual route
If you prefer to register a template by hand instead of using/add-template, update the guidance in the relevant file:
- CV templates:
.claude/skills/job-application-assistant/05-cv-templates.md - Cover letter templates:
.claude/skills/job-application-assistant/06-cover-letter-templates.md
/apply drafter reads these files directly, so your manual additions take effect on the next application.
[PLACEHOLDER] tokens and safe commits
All templates stored undertemplates/ use [PLACEHOLDER] tokens in place of personal data ([YOUR_NAME], [YOUR_EMAIL], [YOUR_PHONE], [YOUR_LINKEDIN_URL], and so on). The template skeleton represents your layout and styling only, not your personal information. This makes templates safe to commit, push, and share in your public fork without leaking contact details or employment history.
Known pitfall: cover letter itemize font
The stockcover.cls template has a known issue with font consistency inside itemized lists. Wrapping \begin{itemize}...\end{itemize} inside \lettercontent{} causes two problems: the trailing \\ in \lettercontent{} errors on \end{itemize}, and moving the itemize block outside loses the Raleway font for list items.
The correct pattern is to close \lettercontent{} before the list and then wrap the itemize block explicitly:
/apply compile-and-inspect loop detects and fixes this automatically, but if you are editing cover letter .tex files by hand, apply this pattern from the start to avoid font inconsistency in the compiled PDF.