Files
santifer--career-ops/templates
wehub-resource-sync d083df1fdb
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 2s
Web CI / web typecheck + build (push) Failing after 1s
Release Please / release-please (push) Failing after 1s
CodeQL Analysis / Analyze (go) (push) Failing after 16s
chore: import upstream snapshot with attribution
2026-07-13 12:02:43 +08:00
..

Templates

System-layer template files used by career-ops scripts and modes. These files are auto-updated when you run npm run update -- put user customizations in the user-layer files instead (see DATA_CONTRACT.md).

Files

File Used By Purpose
cv-template.html generate-pdf.mjs HTML/CSS template for ATS-optimized CV PDFs
resume-template.html generate-pdf.mjs (via --template) Resume-branded variant of cv-template.html. Same layout and placeholder tokens; differs in: <title> reads "Resume" instead of "CV", omits Certifications section, targets 12 page US/industry format. See detailed section below.
cv-template.tex generate-latex.mjs LaTeX/Overleaf template for ATS-optimized CV PDFs
portals.example.yml Onboarding Example portal scanner configuration (copy to portals.yml to activate)
states.yml verify-pipeline.mjs, normalize-statuses.mjs, merge-tracker.mjs Canonical application states and their aliases

cv-template.html

The HTML template rendered by Playwright into PDF. Uses placeholder tokens ({{NAME}}, {{SUMMARY_TEXT}}, {{EXPERIENCE}}, etc.) that the PDF pipeline fills at generation time.

Design: Space Grotesk headings + DM Sans body, single-column ATS-safe layout, self-hosted fonts from fonts/.

Customization: Edit this file to change colors, spacing, or section order. The placeholder tokens are documented in batch/batch-prompt.md under "Template placeholders."

resume-template.html

Resume-branded variant of cv-template.html for US/industry job applications. Key differences from the CV template:

  • Title reads "Resume" instead of "CV"
  • No Certifications section — resumes focus on recent, relevant experience
  • Designed for 12 pages — omits academic-style sections

Otherwise uses the same placeholder tokens ({{NAME}}, {{SUMMARY_TEXT}}, etc.) and is fully compatible with the existing PDF pipeline.

Keep in sync: When updating cv-template.html, apply matching changes to resume-template.html (preserving the differences noted above).

cv-template.tex

LaTeX template for Overleaf-compatible CV generation. Based on the sb2nov/resume format. Uses placeholder tokens ({{NAME}}, {{EXPERIENCE}}, {{PROJECTS}}, etc.) that the LaTeX pipeline fills at generation time.

Design: Single-column ATS-safe layout using standard CTAN packages (fontawesome5, enumitem, hyperref, titlesec). No custom fonts or external dependencies — uploads directly to Overleaf.

Usage:

# Validate and compile .tex → .pdf (requires pdflatex on PATH)
node generate-latex.mjs output/cv-name-company-date.tex

# Or specify a custom output path
node generate-latex.mjs output/cv-name-company-date.tex output/custom-name.pdf

Prerequisites: pdflatex via MiKTeX (Windows) or TeX Live (Linux/macOS). First compilation may auto-install missing LaTeX packages. Alternatively, upload the .tex file directly to Overleaf — no local install needed.

Customization: Edit this file to change margins, section order, or formatting commands. The placeholder tokens are documented in modes/latex.md under "Template Placeholders."

portals.example.yml

Pre-configured portal scanner with 45+ tracked companies and search queries. Contains title filters, company career page URLs, Greenhouse API endpoints, and WebSearch queries.

To activate: Copy to project root as portals.yml and customize title_filter.positive keywords for your target roles. Add or remove companies as needed.

states.yml

Defines the 9 canonical application states (Evaluated, Applied, Responded, Interview, Offer, Hired, Rejected, Discarded, SKIP) with aliases for common variants. All pipeline scripts validate statuses against this file.

Do not rename states -- the dashboard and all scripts depend on these exact IDs. You can add aliases if you encounter new variants that should map to an existing state.