feat(sbb): 2-page English resume for SBB Data Engineer, Bern
13 bullets, 6 skills lines, International Tech profile in English with an explicit Languages line naming German as mother tongue (user instruction). Framing leads on operate-and-own — Component Ownership with on-call and governance answers the JD's "Betrieb" and "Verantwortung für Qualität und Nachhaltigkeit" — and carries the Bosch industrial sensor-data thread (defect records, wafer inspection images, PCM parameters) against the role's vorausschauende-Wartung purpose. GenAI/LLM material dropped. Two deviations from the approved 11-bullet plan, both deliberate: Fraunhofer keeps one combined bullet rather than zero, because dropping the role opens an unexplained 21-month gap between Vizrt and Bosch; and BS-1 is added as a fifth Bosch bullet, HIGH priority in the bundle and directly relevant to an employer running a 24/7 network. Kept the guarded page break after testing the natural flow: without it page 1 fills, but two Bosch bullets land on page 2 with no visible employer header. Hierarchy beats page-fill, and page-fill quotas were removed on 2026-07-27. Gates: canonical validator PASS (0 warnings), forbidden-token scan PASS (none of the seven non-canonical JD tools present), scope-discipline scan PASS, compile PASS at exactly 2 pages, both pages visually inspected. SW-1 and SW-7 bullets also read by eye against their claims.json forbidden lists. Not submitted — held pending the Anforderungsniveau K comp answer. Also fixes a KB defect found during generation: bundle_data_engineer.md §S5's cover-letter hook read "leading the migration of our legacy stack", a full-ownership verb on a company-scale object that contradicts claims.json SW-1 and its own narrative thread. Rewritten, warned inline, and recorded in the CLAUDE.md corrections log. The other four bundles are unchecked. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WpMtWFtYkGkjSMShuTgXiB
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
\ProvidesClass{resume}[2026/07/27 Evidence-first professional resume]
|
||||
\LoadClass[11pt,a4paper]{article}
|
||||
|
||||
\RequirePackage{enumitem}
|
||||
\RequirePackage{ifthen}
|
||||
\RequirePackage{lastpage}
|
||||
\RequirePackage{parskip}
|
||||
\RequirePackage{needspace}
|
||||
|
||||
\pagestyle{empty}
|
||||
\setlength{\parindent}{0pt}
|
||||
|
||||
\def\@resumename{}
|
||||
\def\@resumeheadline{}
|
||||
\def\@resumecontact{}
|
||||
|
||||
\newcommand{\name}[1]{\def\@resumename{#1}}
|
||||
\newcommand{\headline}[1]{\def\@resumeheadline{#1}}
|
||||
\newcommand{\contactline}[1]{\def\@resumecontact{#1}}
|
||||
|
||||
\newcommand{\printresumeheader}{%
|
||||
{\LARGE\bfseries \@resumename}\par
|
||||
\vspace{0.15em}
|
||||
\ifthenelse{\equal{\@resumeheadline}{}}{}{\@resumeheadline\par}
|
||||
\vspace{0.1em}
|
||||
{\small \@resumecontact}\par
|
||||
\vspace{0.45em}
|
||||
}
|
||||
|
||||
\AtBeginDocument{\printresumeheader}
|
||||
|
||||
\newenvironment{rSection}[1]{%
|
||||
\vspace{0.35em}
|
||||
{\bfseries #1}\par
|
||||
\vspace{0.1em}\hrule\vspace{0.35em}
|
||||
}{%
|
||||
\vspace{0.2em}
|
||||
}
|
||||
|
||||
% Arguments: employer, dates, formal title, location.
|
||||
\newenvironment{rSubsection}[4]{%
|
||||
\Needspace{6\baselineskip}%
|
||||
{\bfseries #1}\hfill{\small #2}\par
|
||||
{\itshape #3}\hfill{\itshape #4}\par
|
||||
\vspace{0.1em}
|
||||
\begin{itemize}[leftmargin=1.25em,label=\textbullet,itemsep=0.18em,topsep=0.15em,parsep=0pt,partopsep=0pt]
|
||||
}{%
|
||||
\end{itemize}
|
||||
\vspace{0.25em}
|
||||
}
|
||||
|
||||
\newcommand{\skillline}[2]{%
|
||||
\textbf{#1:} #2\par
|
||||
\vspace{0.08em}
|
||||
}
|
||||
|
||||
\newcommand{\compactentry}[2]{%
|
||||
\textbf{#1}\hfill #2\par
|
||||
}
|
||||
Reference in New Issue
Block a user