Files
ai-job-search/.gitignore
T
Novica Nakov 82a60300b6 feat(add-template): make /add-template engine-agnostic (#238)
* feat(add-template): make /add-template engine-agnostic so Typst can register alongside LaTeX

/add-template hardcoded a lualatex|xelatex|pdflatex engine enum and .tex
assumptions, so custom templates could only be LaTeX. Replace the enum with a
declared source extension + compile command, so any toolchain (Typst via
`typst compile`, or others) registers the same way stock LaTeX templates did.

Stock CV/cover-letter pipeline stays LaTeX and untouched (per #181).

Also fixes a latent bug this surfaced: apply.md's compile step ignored the
ACTIVE-TEMPLATE block and always ran lualatex/xelatex on .tex regardless of
the active template, and .gitignore's cv/main_*.tex pattern would not have
ignored a non-.tex draft (personal-data leak). Both now resolve from the
declared extension/command.

* fix(add-template): satisfy security_guards on the .gitignore Typst fix

security_guards.py pins the personal-data ignore rules by exact string and
gates negations through an allowlist, so broadening cv/main_*.tex and
cover_letters/cover_*.tex to *.* (for .typ drafts) needed a matching update
to REQUIRED_IGNORE_RULES.

Also tighten the .gitignore itself per review: keep the re-include
negations at .tex instead of widening them to *.* too. The stock example
files are always LaTeX, so .tex is enough to re-include them, and a
wildcard negation would have also re-included build artifacts
(main_example.pdf/.aux) that should stay ignored. ALLOWED_IGNORE_NEGATIONS
needs no change since the negations are unchanged.

Also adds a CHANGELOG entry under Unreleased for the Typst/custom-template
support.
2026-07-26 16:21:33 +02:00

98 lines
2.3 KiB
Plaintext

# Dependencies
node_modules/
bun.lock
# Python
__pycache__/
*.pyc
*.pyo
.venv/
venv/
# Compiled documents
*.pdf
*.aux
*.log
*.out
*.synctex.gz
*.fls
*.fdb_latexmk
# Personal data (never commit these)
salary_data.json
# Match at any depth: the job-scraper skill resolves `job_scraper/` relative to
# its own directory, so these land at .claude/skills/job-scraper/job_scraper/*.
# A rooted `job_scraper/...` pattern silently fails to match them.
**/job_scraper/seen_jobs.json
**/job_scraper/notion_sync.json
**/job_scraper/*.md
*_BehavioralReport.pdf
linkedin_Profile.pdf
# Personal photos and signatures
*.jpg
*.jpeg
*.png
!cover_letters/OpenFonts/fonts/**
# OS files
.DS_Store
Thumbs.db
# Editor
.vscode/
.idea/
# Memory files (Claude Code user-specific)
.claude/projects/
# Skills lock (auto-generated)
skills-lock.json
# Personal application output files (generated by /apply — do not share)
# Extension-agnostic on the ignore side: a custom template registered via
# /add-template (e.g. Typst) writes main_<company>_<role>.typ instead of
# .tex, and it must be ignored just as reliably as the stock LaTeX output.
# The negations stay .tex-only - the stock example files are always LaTeX,
# and a wildcard negation (!cv/main_example.*) would also re-include build
# artifacts like main_example.pdf/.aux.
cv/main_*.*
!cv/main_example.tex
cv/*.txt
cover_letters/cover_*.*
cover_letters/Cover_*.*
!cover_letters/cover_example.tex
# documents/ subfolder contents are personal — only README and folder structure are tracked
documents/cv/**
documents/linkedin/**
documents/diplomas/**
documents/references/**
documents/applications/**
documents/postings/**
# Interview prep and experience records: these name the employers applied to,
# quote what was submitted, and set out the candidate's weak points.
documents/interview/**
!documents/**/.gitkeep
# Personal job search tracking
job_search_tracker.csv
# Gmail sync state (message IDs, subjects - personal data)
gmail_sync/
# Generated reports (personal output from /html-report)
reports/
# Upskill reports (personal output)
upskill/*.md
# Agent skills: track the source, ignore only deps and logs.
# (A blanket `.agents/` ignore silently drops the job-search CLI skills from the repo.)
.agents/**/node_modules/
.agents/**/*.log
.agents/usage/
# Brainstorm mockups (superpowers visual companion) - never ship
.superpowers/