write-cover-letterlisted
Install: claude install-skill robbiehaynes/job-search
# write-cover-letter
Generates a per-job tailored cover letter for every role marked `selected: true` in the **Role Pipeline** artifact's `jobs` database collection that doesn't already have one. Sibling to `tailor-cv` (Phase 2) — same source material, same "write, don't invent" rule, same per-job angle — but produces a letter instead of a CV, and additionally has to survive the humanizer before it's rendered.
Every claim in the letter must trace back to a real fact: `../tailor-cv/work-experience-bank.json` (current role), `../tailor-cv/undergrad-experience-bank.json` (earlier role), or `../tailor-cv/project-bank.json` (personal projects). Never invent an achievement, number, or technology the letter doesn't already have evidence for elsewhere in the user's CV.
## Files in this skill's directory
- `cover-letter-template.tex` — the base letter with `%%DATE%%`, `%%RECIPIENT_BLOCK%%`, `%%SALUTATION%%`, and `%%BODY%%` markers. Header/contact block matches the CV.
- `render_cover_letter.py` — pure renderer, same pattern as `../tailor-cv/render_cv.py`. Takes `{slug, company, date, paragraphs: [...]}`, fills the template, compiles with `pdflatex` if available. Run as `python3 render_cover_letter.py <spec.json>`; prints `{tex, pdf, compiled, error}`. **It does not humanize anything** — paragraphs must already be final, humanized text by the time they reach this script.
Output lands in the repo at `cover-letters/tex/<slug>.tex` and, if compilation succeeded, `cover-letters/pdf/<s