---
name: latex-tech-resume
description: >
  Erstellt und überarbeitet ATS-optimierte, technisch glaubwürdige
  LaTeX-Lebensläufe und Anschreiben für IT/DevOps/SRE/Linux/Security/Cloud/AI.
  Nutze bei LaTeX-Lebenslauf, Tech-CV, Resume-Optimierung, ATS-Check,
  Bullet-Point-Überarbeitung, Stellenanzeigenanalyse, Anschreiben,
  GitHub-/Homelab-Profilen und SRE/Linux-Engineer-CVs.
metadata:
  category: career-documents
  tags: [latex, resume, cv, ats, anschreiben, devops, sre, linux, security, cloud, ai, bewerbung]
  version: "1.0.1"
  last_updated: "2026-06-09"
allowed-tools: "Read, Write, Edit, Glob, Grep, Bash(python *), Bash(latexmk *), Bash(pdflatex *), Bash(xelatex *), Bash(lualatex *)"
---

# LaTeX Tech Resume Skill

Produktionsreife LaTeX-Bewerbungsunterlagen für technische Rollen. Modular, ATS-parsbar, recruiter-lesbar. Single-column als Default, keine Skillbars, keine Tabellenlayouts, keine HR-Buzzwords.


## Shared-Tooling Setup

Wenn `python -m tex_toolkit` oder Skripte mit `from tex_toolkit...` genutzt werden,
setze im Paket-Root zuerst:

```bash
export SKILLS_ROOT="$(pwd)"
export PYTHONPATH="$SKILLS_ROOT/_shared/tex_toolkit_pkg:$PYTHONPATH"
```


## Wann diesen Skill nutzen

- LaTeX-Resume neu bauen oder substanziell überarbeiten
- Stellenanzeige gegen Lebenslauf abgleichen (Keyword-Matching)
- Bullet Points schärfen, schwache Formulierungen erkennen
- Anschreiben technisch glaubwürdig formulieren (DE/EN)
- Anti-Pattern-Check (ChatGPT-Resume-Stil, generische AI-Floskeln, Buzzword-Müll)
- LinkedIn/GitHub-Profil-Texte ableiten

## Abgrenzung

- **`bewerbung-fisi`** — FiSi-spezifischer Prozess, Praktikumssuche, deutsche Bewerbungsnormen, Tracker-Workflows. Geht *vor* diesem Skill bei reinen Prozessfragen.
- **`latex-paper-de`** — wissenschaftliche Arbeiten, kein CV.
- **`alex-writing-identity`** — wenn Stil als Alex erzwungen werden soll. Greift unabhängig.
- Dieser Skill ist die **LaTeX-/Tech-CV-Engine**, agnostisch zu Praktikum vs. Festanstellung, DE vs. EN.

## Hard Rules

1. **Single-column** als Default. Zwei-Spalten nur auf expliziten Wunsch und nie für ATS-Variante.
2. **Keine Skillbars, keine Sterne-Bewertungen, keine Tortendiagramme.** Skills sind Listen mit Gruppierung, keine Grafik.
3. **Keine Tabellen für Hauptstruktur** — `tabular`/`tabularx` nur für Stammdaten-Block im Header, nie für Experience/Projects.
4. **Standard-Section-Namen**: `Experience`, `Projects`, `Skills`, `Education`, `Certifications` (EN) bzw. `Berufserfahrung`, `Projekte`, `Skills`, `Ausbildung`, `Zertifikate` (DE). Keine kreativen Namen wie „My Journey".
5. **Bullet Points sind technische Aussagen**, nicht Motivationstexte. Aktive Verben, konkrete Tools, messbare Outcomes wenn ehrlich quantifizierbar.
6. **Keine Emojis, keine Icons im Fließtext** (max. dezente Unicode-Symbole im Kontaktblock — Mail, GitHub, Web).
7. **Schriftgrößen**: Body 10–11pt, Section-Headings nicht größer als 12pt. Mehr wirkt panisch.
8. **PDFs müssen kopier-/parsbar sein** — `\texttt` für CLI-Tools, kein `\verb`, kein gerendertes Text-als-Bild.
9. **Foto nur in DE-Vollversion**, nie in ATS-Variante, nie in EN-Variante.
10. **Vor jedem Build**: Bullet-Check gegen `references/anti-patterns.md`.

## Workflow

```
1. Stellenanzeige einlesen → keyword-matching.md anwenden
2. Skill-Liste & Bullets gegen Anzeige priorisieren (nicht umschreiben — sortieren)
3. Template wählen:
   - pdflatex-Variante (templates/resume-pdflatex.tex) für max. Portabilität / Portal-Upload
   - xelatex-Variante (templates/resume-xelatex.tex) für IBM-Plex-Pipeline
4. Module einbinden (templates/modules/*)
5. Anti-Pattern-Pass (references/anti-patterns.md)
6. Build → pdfinfo-Smoke-Check → Text-Extraktion validieren
7. Anschreiben aus templates/cover-letter-{de,en}.tex
```

## Datei-Map (Progressive Disclosure)

Lade gezielt nach Aufgabe — nicht alles auf einmal.

### Beim Schreiben/Schärfen von Bullets
- [`references/anti-patterns.md`](references/anti-patterns.md) — was rausfliegt
- [`references/style-guide.md`](references/style-guide.md) — Verben, Struktur, Quantifizierung
- [`examples/bullets-devops.md`](examples/bullets-devops.md), [`bullets-linux-sysadmin.md`](examples/bullets-linux-sysadmin.md), [`bullets-ai-infra.md`](examples/bullets-ai-infra.md), [`bullets-security.md`](examples/bullets-security.md) — Module zum Kopieren/Adaptieren
- [`examples/projects-homelab.md`](examples/projects-homelab.md) — Projekt-Texte für Homelab/Selfhosting/Infra

### Beim Stellenanzeigen-Match
- [`references/keyword-matching.md`](references/keyword-matching.md) — Extraktions- und Priorisierungs-Heuristik
- [`references/recruiter-psychology.md`](references/recruiter-psychology.md) — Was in den ersten 10 Sekunden zählt

### Beim LaTeX-Bauen
- [`references/latex-guidelines.md`](references/latex-guidelines.md) — Packages, Microtype, Spacing, Listen
- [`references/ats-rules.md`](references/ats-rules.md) — was Parser bricht
- [`templates/README.md`](templates/README.md) — Build-Anleitung, Module-Reihenfolge

### Beim Anschreiben
- [`templates/cover-letter-de.tex`](templates/cover-letter-de.tex), [`cover-letter-en.tex`](templates/cover-letter-en.tex)
- [`examples/linkedin-summary-de.md`](examples/linkedin-summary-de.md), [`linkedin-summary-en.md`](examples/linkedin-summary-en.md) — Profil-Kurztexte

### Build & Validierung
- `python -m tex_toolkit build <main.tex>` — pdflatex/xelatex + smoke check (ersetzt `scripts/build.sh`)
- `python -m tex_toolkit lint --ruleset resume <main.tex>` — Buzzword-Grep, Anti-Pattern-Scan (ersetzt `scripts/check-resume.sh`)
- [`scripts/analyze-jd.md`](scripts/analyze-jd.md) — JD-Analyse-Prompt-Anleitung
- `scripts/tex_toolkit/` — Symlink auf das shared Package (`_shared/tex_toolkit_pkg/tex_toolkit/`)

## Output-Konvention

Sofern nicht explizit anders gewünscht:
- DE: Dateinamen `lebenslauf_<rolle>_<firma>.tex`, Output `Lebenslauf_Alexander_Schneider_<Firma>_<Rolle>.pdf`
- EN: `resume_<role>_<company>.tex` → `Resume_Alexander_Schneider_<Company>_<Role>.pdf`
- ATS-Variante: Suffix `_ATS` (kein Foto, kein Deckblatt, pdflatex)

## Anti-Goals (was dieser Skill NICHT tut)

- Keine bunten Designer-Templates, keine zwei-spaltigen Lebensläufe als Default, keine Skillbars
- Kein „LinkedIn-Coach"-Tonfall — keine „I'm passionate about…"-Sätze
- Keine Inflation von Soft Skills („Teamfähig, kommunikativ, belastbar" — raus)
- Keine generischen AI-Phrasen („leveraging cutting-edge technologies…")
- Keine Übersetzung 1:1 DE↔EN — beide Sprachen werden eigenständig formuliert
