render-resume
Compile a resume .tex (default: the scratchpad tailored.tex) to PDF.
Deterministic — no tailoring decisions happen here.
Input
- Path to a
.tex (default: tailored.tex in the scratchpad; falls back to the
working master, master.tex in the scratchpad or ./resume/main.tex, if asked
to render the master).
Engine fidelity — important
This resume is authored for pdfLaTeX (\pdfgentounicode for ATS + roboto
Type1 fonts). latexmk (→ pdflatex) renders it faithfully and needs no shim —
prefer it. Tectonic runs XeTeX and does NOT render this resume correctly: it
crashes on fontawesome5, lacks the pdfTeX ATS primitives, and falls back from
Roboto to a Computer Modern serif. render.sh auto-shims tectonic so it at least
produces a one-page PDF, but treat that as a rough preview only — the final PDF
the user submits should come from pdflatex/latexmk (or Overleaf). Tell the user
this if only tectonic is available.
Procedure
- Run the bundled render script,
"${CLAUDE_SKILL_DIR}/scripts/render.sh" <tex-file>
(when installed as a plugin, ${CLAUDE_SKILL_DIR} resolves to this skill's
directory; if that variable is unset, fall back to scripts/render.sh relative
to this skill). It:
- detects
latexmk (preferred, faithful), else tectonic (preview-only,
see fidelity note), else pdflatex/xelatex;
- for tectonic, compiles a shimmed throwaway copy; other engines use the file as-is;
- compiles in the file's directory and prints the PDF path;
- enforces the one-page rule: parses the TeX log for the page count and
exits non-zero (code 5) if the resume is more than one page.
- If no TeX engine is found, the script exits non-zero with install guidance.
Relay it: on macOS,
brew install --cask mactex-no-gui (full, includes
latexmk) or brew install tectonic (lightweight, auto-fetches packages).
If the user only ever compiles on Overleaf, don't push a local install — just
hand them the tailored .tex path to upload.
- On compile error, read the
.log, quote the first real error (the line
after ! ) and the offending source line, and propose a fix. Common causes
here: unescaped specials (& % $ # _) introduced during tailoring, or a
missing package (roboto, fontawesome5) — tectonic auto-fetches these;
a minimal TeX install may not have them.
Output
- Report the PDF path so the user can open/download it.
- Offer to open it (
open <pdf> on macOS).
Guardrails
- Local and deterministic. Compilation happens locally via
render.sh. Never
upload the .tex or .pdf to any external service; if the user wants Overleaf,
hand them the local path to upload themselves.
- No content decisions here. This skill compiles; it does not edit or invent
resume content. If the build fails, fix LaTeX syntax only — never alter the
meaning of a bullet to make it compile.
- Keep outputs private — PDFs land in the scratchpad or the git-ignored
applications/ folder, never committed. See
GUARDRAILS.md.
1---2name: render-resume3description: Compile a LaTeX resume to PDF with latexmk (falling back to tectonic or pdflatex) and report the output path, surfacing compile errors clearly. Use whenever the user wants to build, render, compile, or generate the PDF of their resume .tex — typically right after tailoring, or to rebuild the master. Detects the available TeX engine and gives install guidance if none is present.4---56# render-resume78Compile a resume `.tex` (default: the scratchpad `tailored.tex`) to PDF.9Deterministic — no tailoring decisions happen here.1011## Input12- Path to a `.tex` (default: `tailored.tex` in the scratchpad; falls back to the13 working master, `master.tex` in the scratchpad or `./resume/main.tex`, if asked14 to render the master).1516## Engine fidelity — important17This resume is authored for **pdfLaTeX** (`\pdfgentounicode` for ATS + `roboto`18Type1 fonts). `latexmk` (→ pdflatex) renders it **faithfully** and needs no shim —19prefer it. **Tectonic runs XeTeX and does NOT render this resume correctly:** it20crashes on `fontawesome5`, lacks the pdfTeX ATS primitives, and falls back from21Roboto to a Computer Modern serif. `render.sh` auto-shims tectonic so it at least22produces a one-page PDF, but treat that as a rough preview only — the final PDF23the user submits should come from pdflatex/latexmk (or Overleaf). Tell the user24this if only tectonic is available.2526## Procedure271. Run the bundled render script, `"${CLAUDE_SKILL_DIR}/scripts/render.sh" <tex-file>`28 (when installed as a plugin, `${CLAUDE_SKILL_DIR}` resolves to this skill's29 directory; if that variable is unset, fall back to `scripts/render.sh` relative30 to this skill). It:31 - detects `latexmk` (preferred, faithful), else `tectonic` (preview-only,32 see fidelity note), else `pdflatex`/`xelatex`;33 - for tectonic, compiles a shimmed throwaway copy; other engines use the file as-is;34 - compiles in the file's directory and prints the PDF path;35 - **enforces the one-page rule**: parses the TeX log for the page count and36 exits non-zero (code 5) if the resume is more than one page.372. **If no TeX engine is found**, the script exits non-zero with install guidance.38 Relay it: on macOS, `brew install --cask mactex-no-gui` (full, includes39 `latexmk`) or `brew install tectonic` (lightweight, auto-fetches packages).40 If the user only ever compiles on Overleaf, don't push a local install — just41 hand them the tailored `.tex` path to upload.423. **On compile error**, read the `.log`, quote the first real error (the line43 after `! `) and the offending source line, and propose a fix. Common causes44 here: unescaped specials (`& % $ # _`) introduced during tailoring, or a45 missing package (`roboto`, `fontawesome5`) — tectonic auto-fetches these;46 a minimal TeX install may not have them.4748## Output49- Report the PDF path so the user can open/download it.50- Offer to open it (`open <pdf>` on macOS).5152## Guardrails53- **Local and deterministic.** Compilation happens locally via `render.sh`. Never54 upload the `.tex` or `.pdf` to any external service; if the user wants Overleaf,55 hand them the local path to upload themselves.56- **No content decisions here.** This skill compiles; it does not edit or invent57 resume content. If the build fails, fix LaTeX syntax only — never alter the58 meaning of a bullet to make it compile.59- **Keep outputs private** — PDFs land in the scratchpad or the git-ignored60 `applications/` folder, never committed. See61 [`GUARDRAILS.md`](../../GUARDRAILS.md).