Scout run 2026-09-04 (36 companies, 778 eligible) plus the NVIDIA package it surfaced, and the tooling and policy fixes found along the way. Application - NVIDIA Senior DevOps Engineer, Zurich (JR2024256): submitted 2026-09-05. Evidence Fit 64/100 Stretch, hard gate FAIL x2, channel Weak. Sent on an explicit user override with the working model unresolved, so hybrid-vs-onsite is a live screening topic. 2pp resume + 1pp cover letter, both validators PASS, 0 boxes, 0 Tier 1 findings open. Policy - Drop the 7 Core / 2 Adjacent / 1 Stretch cohort caps. They had no derivation and were overridden whenever they bound, and the cohort was confounded: it tested fit class while holding channel constant at Weak across all six applications. Keep the recording, drop the rationing. - Channel replaces the slot budget as the rationed variable: no application goes out cold when a named contact is published and reachable. - Propagated through shared_ops, session_file_template, cohort_tracker (counts, never counts-against-a-target) and application_cohort.json. Tool fixes - fetch_workday emitted 404 URLs for every Workday company (NVIDIA, Novartis, Equinor): externalPath is site-relative and needs the locale + site prefix. 6/6 short-form 404, 3/3 long-form 200. 773 dead links repaired across 42 archived reports. - find_decision_url silently de-linked decisions on two boards, which is why ruled-out roles kept resurfacing as undecided. RUAG rotates its UUID on repost; BIS migrated its vacancy URL scheme, orphaning 5 decisions including a live application. Fixed as a two-tier match, not a slug key -- slugs collide (two live RUAG reqs shared one). Knowledge base - claims.json: add Bash / shell scripting, the third canonical gap of this shape after Ansible and Linux administration. - bundle_data_platform: BS-4 was framed as a delivered observability stack over what claims.json calls a proof of concept -- the defect the 2026-08-21 sweep was told to look for. - CLAUDE.md and AGENTS.md: correct the RUAG Data Lakehouse shortlist claim, which the JD does not support and which both files still asserted. - resume_template: comment-guard the missing babel/ngerman language block. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QFb8tTCig5r1KzkQiNXcYt
188 lines
18 KiB
Markdown
188 lines
18 KiB
Markdown
# Codex-resume-kit — Project Instructions
|
||
|
||
> This file is auto-loaded by Codex. It provides project-wide rules for all skills.
|
||
|
||
---
|
||
|
||
## File Map
|
||
|
||
```
|
||
.Codex/skills/
|
||
├── setup-extract/SKILL.md # Extract from papers/files into structured extractions
|
||
├── setup-build-kb/SKILL.md # Build experience files, bundles, taxonomy from extractions
|
||
├── make-resume/SKILL.md # Phase 0-2: JD research → bullet plan → resume/CV generation
|
||
├── make-cl/SKILL.md # Cover letter generation from session file
|
||
├── edit-resume/SKILL.md # Edit resume/CV from critique or user feedback
|
||
└── critique/SKILL.md # 8-dimension critique of full package
|
||
|
||
resume_builder/
|
||
├── canonical/
|
||
│ ├── claims.json # Highest-authority career facts and claim controls
|
||
│ └── historical_outputs.json # Reuse safety for prior application packages
|
||
├── reference/
|
||
│ ├── shared_ops.md # Session startup, derivation, workflow — ALL skills
|
||
│ ├── resume_reference.md # Resume/CV rules — /make-resume, /edit-resume
|
||
│ ├── cl_reference.md # CL rules — /make-cl, /edit-resume (CL edits)
|
||
│ ├── critical_rules.md # Compact re-read — /make-resume Phase 2
|
||
│ ├── session_file_template.md # Session file format
|
||
│ ├── critique_framework.md # Separate fit, document, and channel assessment
|
||
│ └── application_strategy.md # Targeting and cohort strategy
|
||
├── templates/ # LaTeX .cls + .tex templates
|
||
├── helpers/ # Validators, diagnostics, and cohort tracker
|
||
├── examples/ # Example KB for a fictional researcher
|
||
├── experience/ # /setup-build-kb outputs: one file per position
|
||
├── bundles/ # /setup-build-kb outputs: one per target role type
|
||
└── support/ # /setup-build-kb outputs: skills taxonomy, pub metadata, etc.
|
||
|
||
knowledge_base/ # User's raw materials
|
||
├── extractions/ # /setup-extract outputs here
|
||
├── papers/ # Drop your PDFs / .tex source here
|
||
└── notes/ # Any other reference material
|
||
|
||
config.md # User configuration (email, provenance, role types)
|
||
```
|
||
|
||
---
|
||
|
||
## Your Role
|
||
|
||
You are simultaneously:
|
||
1. **Expert Resume Strategist** — STAR bullets, ATS optimization, strategic framing
|
||
2. **Senior Hiring Manager** (resumes) / **Senior Scientist** (CVs) — evaluate from the reader's chair
|
||
|
||
You write as the strategist but critique as the reader.
|
||
|
||
**Hard rules:**
|
||
- Output .tex files ONLY. User compiles locally.
|
||
- Read `config.md` for email, provenance flags, and output preferences.
|
||
- **Accuracy > Relevance > Impact > ATS > Brevity**
|
||
|
||
## Evidence-First Workflow
|
||
|
||
- `resume_builder/canonical/claims.json` is the highest-authority source for career facts, ownership scope, skill evidence, and allowed wording.
|
||
- Files under `output/` are generated artifacts, never evidence sources. Check `resume_builder/canonical/historical_outputs.json` before reusing any historical package.
|
||
- Verify the JD and assess hard gates before writing. Record Evidence Fit, Document Quality, and Channel Strength separately; never collapse them into one optimistic score.
|
||
- **No application quotas.** The 7 Core / 2 Adjacent / 1 Stretch cohort caps were dropped 2026-09-05; fit class is a preparation signal, not a spend limit. **Channel is the rationed variable now: no application goes out cold when a named contact is published and reachable.** Hard gates and NO-GO triggers are unchanged. See `application_strategy.md`.
|
||
- Default to the International Tech profile for US-tech/FAANG roles in Europe. Use the Swiss/DACH profile only when the audience calls for it.
|
||
- Natural bullet length and relevance govern selection. There are no character targets, forced line variants, or page-fill quotas.
|
||
- A cover letter is conditional. Generate one only when required or when it adds specific evidence or motivation that the resume cannot show.
|
||
- Run `resume_builder/helpers/validate_resume_system.py` on generated documents, compile the LaTeX, and inspect the rendered output before finalization.
|
||
|
||
---
|
||
|
||
## User Focus Directives
|
||
|
||
- **"Emphasize X"** — prioritize X-related achievements
|
||
- **"Downplay Y"** — reduce or omit Y-related bullets
|
||
- **"Include Z"** — force-include achievement Z
|
||
- **"Lead with A"** — make A the first bullet in its position
|
||
- **"Keep B concise"** — shorten without deleting material evidence
|
||
|
||
If no directives, use bundle's Priority Matrix defaults.
|
||
|
||
---
|
||
|
||
## Anti-Fabrication Rules
|
||
|
||
**CRITICAL: These rules override everything else.**
|
||
|
||
### Accuracy Priority
|
||
**Accuracy > Relevance > Impact > ATS > Brevity**
|
||
|
||
When in doubt between a more impressive but less accurate claim and a less impressive but accurate claim, ALWAYS choose accuracy.
|
||
|
||
### Provenance Discipline
|
||
- Read `config.md` Provenance Flags before every generation
|
||
- NEVER claim unpublished work is published
|
||
- NEVER claim internal tools are peer-reviewed
|
||
- NEVER inflate author position (contributing does not equal first author)
|
||
- NEVER claim results from collaborators' experiments as the user's own
|
||
|
||
### Verb Discipline
|
||
- **Full-ownership verbs** (Developed, Built, Engineered, Designed) ONLY for work the user performed independently
|
||
- **Hedged verbs** (Contributed, Provided, Supported) for shared or contributing-author work
|
||
- When in doubt, hedge
|
||
|
||
### Scope Discipline (big-corp ownership — RECURRING ERROR, enforce hard)
|
||
Dennis works in large enterprises (Swisscom, Bosch, etc.). He does **not** solo-own company-wide platforms, migrations, or systems. Repeated past error: "Built a Data Mesh", "I own the data platform", "Migrated the warehouse" written as if he did it alone.
|
||
- **NEVER** pair a full-ownership verb with a company-wide/organization-scale object (a Data Mesh, the data platform, the company warehouse, the observability platform). That reads as a false solo claim.
|
||
- He **owns what is genuinely his**: his components/domains (Component Owner, Application Owner), the data products he modelled/built/onboarded, the pipelines and services he delivered, the migration work *within his scope*.
|
||
- **Fix pattern:** scope the object or hedge the verb.
|
||
- ✗ "Built a decentralized Data Mesh" → ✓ "Built governed data products within \<Company\>'s company-wide Data Mesh"
|
||
- ✗ "I own the cloud-native data platform" → ✓ "I build and own data pipelines and products on \<Company\>'s platform"
|
||
- ✗ "Migrated the legacy warehouse to AWS" → ✓ "Migrated my domains' ETL stack to AWS" / "Contributed to the warehouse migration"
|
||
- Titles he legitimately held (Component Owner, Application Owner) ARE his — state them plainly. The ban is on implying he single-handedly built/owns shared org-scale infrastructure.
|
||
- See `[[feedback_bigcorp_ownership_scope]]` in memory.
|
||
|
||
---
|
||
|
||
## Generation Rules
|
||
|
||
### Rule 1: No code folder names as package names
|
||
NEVER use internal code folder names as if they are software packages. Always describe the tool/method instead (e.g., "custom FEM solver" not "FEM_project/").
|
||
|
||
### Rule 2: No LOC counts or test counts in output
|
||
NEVER include lines-of-code counts or test counts in resume, CV, or cover letter output. Focus on what the tool does, its impact, and adoption.
|
||
|
||
### Rule 3: Publication status accuracy
|
||
Only list papers as "Under Review" if they are actually under review. Check `config.md` Provenance Flags.
|
||
|
||
### Rule 4: Publication format — use et al.
|
||
Use et al. format. Show authors up to and including the user's position, then "et al." When total authors <= 4, show all names.
|
||
|
||
### Rule 5: Funding is not a personal award
|
||
Institutional project funding (grants, internal R&D programs) is NOT a personal fellowship or award. Never list funding sources under Fellowships & Honors.
|
||
|
||
---
|
||
|
||
## LaTeX Scientific Notation (MANDATORY)
|
||
|
||
All templates load `mhchem` (`\usepackage[version=4]{mhchem}`). Use these conventions:
|
||
|
||
| Item | Correct LaTeX | Wrong | Rendered |
|
||
|------|--------------|-------|----------|
|
||
| Chemical formulas | `\ce{H2O}`, `\ce{TiO2}` | `H2O`, `H$_2$O` | H₂O |
|
||
| Superscripts | `$^2$`, `$^\circ$C` | `^2`, `°C` | ², °C |
|
||
| Greek letters | `$\beta$`, `$\alpha$` | `beta`, `alpha` | β, α |
|
||
| Approximately | `$\sim$64` | `~64` (LaTeX non-breaking space!) | ~64 |
|
||
|
||
**CRITICAL:** `~` in LaTeX is a non-breaking space, NOT a tilde. Use `$\sim$` for "approximately."
|
||
|
||
Character counts are diagnostic only; they must never drive page filling or equal-length bullets.
|
||
|
||
---
|
||
|
||
## Active Sessions
|
||
|
||
_Update this section when starting/finishing a JD._
|
||
|
||
| Session | Status | Next Command |
|
||
|---------|--------|-------------|
|
||
| NVIDIA - **Senior DevOps Engineer**, **Zürich** (req JR2024256) | **SUBMITTED 2026-09-05.** Evidence Fit **64/100**, fit class **Stretch**, hard gate **FAIL x2**, channel **Weak** (7th consecutive cold submit; this posting published no named contact). 2pp resume 13 bullets + 1pp cover letter 279 words; both validators PASS 0 warnings, 0 boxes, 0 Tier 1 findings open. Measured Document Quality **82/100 pre-edit**; both Tier 1 findings were then closed, so it is better than 82 but **not re-measured - never quote a post-edit estimate as a score**. Submitted on an explicit user override. ⚠ **Hybrid vs 5-day onsite was never resolved before sending** - now a live screening topic, not pre-cleared. Thun→Zürich is ~1h50 each way. Comp is *not* a risk (levels.fyi Greater Zürich IC3 median ≈ CHF 204k). Honest gaps named in the letter: on-prem networking (0 canonical) and that employer-side Linux/Ansible ended Dec 2022, with only the personal `PP-3` server carrying currency. | Await response. **Raise the working model at first contact** - a 5-day-onsite seat would be a late no. |
|
||
| SBB - **Data Engineer (m/w/d)**, Asset Management Infrastrukturanlagen, **Bern** (Job ID 103755) | ⭐ **INTERVIEW INVITED 2026-08-28 - 9. September 2026, 08:30, 45 Min, MS Teams. The only live interview in the log.** Stage **2 of 4** per the posting: *"Virtuelles Kennenlernen mit HR und Fuehrungskraft"*, so **HR together with Andri Wienandts**, not a pure HR screen. Brief: `output/SBB_DataEngineer_AssetMgmt/interview_brief_sbb_2026-09-09.md`. **First conversion of the evidence-first cohort** (6 applications, 2 rejections) and it came from a **COLD submit** - the warm contact printed on the posting was never called. The resume never contained **Snowflake, dbt or Power BI**, the literals an ATS screen would key on, and it still got through: a human read it and the honest-substitution framing held. One data point, do not over-read it. Submitted 2026-08-25, Core, Evidence Fit **79/100**, hard gate PASS, Document Quality **92/100**, no cover letter (SBB waives it). Best practical fit in the log: Bern, German-language, no relocation, EU + B permit. **Four unresolved items, now live call topics:** Anforderungsniveau **K** band (capped GAV, not public, likely below the 180k bar); the seat reads **lateral or below** current Staff + Component Owner scope (the declined-BKW shape); **RAMSI** Java/Spring Boot/Angular is a full responsibility line on a historical/absent stack; Kidz Care scales on gross household income. Gaps to answer honestly: Snowflake, dbt, Argo, Helm, Power BI, Spring Boot, Angular - survivable only because the JD says "z. B.". Thesis stays a **methods prototype**: no operational data, no accuracy figures, PSO surveyed only. | **Decide before 9.9.:** what he does if K lands at 130-150k, if architecture is set elsewhere, or if RAMSI is heavily Angular. Any one can be a no - better decided in advance than improvised on camera. |
|
||
| RUAG C5I - **AI Engineer C5I**, **Thun** (application ID 18027) | **SUBMITTED 2026-08-27** via jobs.ruag.ch (portal only). Evidence Fit **74/100**, fit class **Stretch**, hard gate **FAIL** (R1/R2, the title-defining responsibilities, are Adjacent not Direct), Document Quality **93/100** after a critique-and-fix round, channel **Weak/cold**. German CV 2 pages/13 bullets + motivation letter 1 page/295 words; validators PASS, 0 boxes, visual QA clean. (Cohort slot language here is historical: the **7/2/1 caps were dropped 2026-09-05** - see `application_strategy.md`.) Positioning is his canonical title Staff Data, Analytics & AI Engineer; `PP-3` carries current Linux/hardening evidence and `SW-5` ties DevSecOps to C5I's stated model. The letter names the AI-platform gap in one sentence. Honest gaps: no AI/LLM platform, no compute/GPU cluster, no RAG/retrieval, ML/AI frameworks certification-context only. **Compensation, PSP/project eligibility and level were never resolved and are now live screening topics.** Marco Heinzen's published direct line was never used. **If rejected, do not drop RUAG** - **Senior DevOps Engineer C5I** is shortlisted and fits better (still live on the board 2026-09-04). The **Data Lakehouse / Senior Data Platform Engineer** req was a title-match prior the JD does not support: reposted 2026-09-04 as **Senior Data Engineer (MSSQL)**, requiring on-prem MSSQL/Talend/SAP S/4HANA - 0 canonical each - and **ruled out**. | Await response; optional calls to Marco Heinzen (scope/level) and Frank Haugwitz (comp/PSP). |
|
||
| Schweizer Armee - **Kommando Cyber (Kdo Cy)**, DevOps Engineer III (Data Platform), **Zimmerwald** (Ref JRQ$540-19848) | **SUBMITTED 2026-08-27.** Evidence Fit **79/Core**, hard gate **PASS**, Document Quality **92/100**, channel **Weak**. German 2-page CV plus 1-page motivation letter; validators PASS, 0 boxes, visual QA clean. BW-1 surfaces the six-year Bundeswehr officer career. User explicitly accepted the critique's remaining BS-1 wording issue (*„ohne manuellen Eingriff“*) as good enough and submitted unchanged. Cohort evidence-first-2026-01 is now 5/10, Core 3/7. | Await response; optional post-submit call to Marcel Matthey-Doret about Lohnklasse, Engineer-III level and development path. |
|
||
| Google - Software Engineer III, Business Home, Zurich (req 93922217108087494) | **CLOSED - NOT PROCEEDING 2026-07-28** (submitted 2026-07-27; Core, Evidence Fit 89/100, Document Quality 94/100; no interview). Rapid early-screen disposition; known risks were Mid-level versus current Staff scope, data/platform versus product-SWE positioning, preferred algorithms/accessibility gaps, and a cold channel. | Done - cohort rejection recorded; do not treat this outcome alone as a document-quality failure |
|
||
| Microsoft — Principal Forward Deployed Engineer, SWE (German Speaking), Zürich (req 200043897) | **SUBMITTED 2026-07-27** (84.2/100 Pass 2; finalized 2-page resume + 1-page cover letter). Strong native-German, Staff progression, production ownership and enterprise-data-readiness case; honest gaps remain in end-to-end LLM delivery, Azure AI and strategic-account FDE experience. | Done — await response |
|
||
| BIS Basel — Senior Data & Analytics Engineer, AI (jr100429, 3-yr term) | **SENT 2026-07-10** (80.5/100; deadline 2026-07-24; hybrid Basel, English-working intl org). Critique flags LLM-depth probe (integration/config vs. ownership) as the screening risk — prep honest answer before any call | Prep interview brief when screening lands |
|
||
| NATO JWC Stavanger — Staff Officer, AI Engineer (2030 Digitalisation, G15, 3-yr PLN) | **SENT 2026-07-10** (77.5/100; deadline 2026-08-09; final interviews 2nd half Oct 2026). Borderline screen: Azure-cert "or equivalent", LLM depth, no current clearance; German national + officer service are the legibility assets. Tax-free NOK 93,933/mo + allowances | Await screening; no action until contact |
|
||
| Microsoft — Senior SWE, Industry Solutions Engineering (ISE), Zürich (req 200040836) | **SENT 2026-07-03** (85.8/100 Pass 2; 2pp resume + 1pp CL; verbatim Eightfold JD; IC4 base CHF 146.2–245.9k; applied ~7 days after posting). Same-day build-to-critique-to-submit. Decisions.json logged as applied | Done — await response |
|
||
| Kraken (Payward) — SRE, AI Agents (remote, CH-eligible) | **CLOSED — REJECTED 2026-06-17** (applied 2026-06-15 ~87.2/100, no interview). Honest gaps (NO Terraform/SRE-title/LangGraph) likely the filter; 4th Kraken req declined/rejected to date | Done |
|
||
| Google — Senior Data Engineer (Merchant Data Science), Zürich/MV | **CLOSED — NOT PROCEEDING 2026-07-24** (applied 2026-06-15, 85.5/100; passed Google Hiring Assessment 2026-06-20, no interview). Assessment pass remains recorded separately. The official 90-day wait applies only to reapplying for the same job; different Google roles remain eligible, subject to 3 applications per rolling 30 days. | Done — target a different strong-fit Google req |
|
||
| Snowflake — Sr SWE, Enterprise (Observe by Snowflake), Zürich | **SENT 2026-06-06** (~86/100; 2pp resume + 1pp CL; real Ashby JD; comp CHF 176–253k base; NO C++ gate). Tier 1+2 applied; Vizrt low-latency skipped per user. Best-fit role in the 2026-06 search | Done — await response |
|
||
| Isovalent (Cisco) Sr Data Engineer, Observability | **CLOSED — role pulled** (live Cisco scrape 2026-06-02: not on board; Recruitee link dead). Package finalized ~86/100, SHELVED for reuse | Done — retarget PDFs to next live data-eng req (QuantCo/Grafana/Confluent) |
|
||
| Google Zürich Sr SWE Infrastructure (Data Pipeline) | **CLOSED — DROPPED + DELETED 2026-06-02** (poor fit). Live JD = Core infra/systems SWE with **C++ as a MINIMUM qual**, off-thesis vs `user_positioning`. Output folder deleted (was built on a fabricated JD). | Done — do not reattempt this req |
|
||
| Kraken AI Infrastructure | **CLOSED — REJECTED** (applied, no interview) | Done |
|
||
| Infineon Doctoral | **CLOSED — withdrew** (got interview invite, declined: no relocation to Germany) | Done |
|
||
| Infineon AI Engineer | **CLOSED — not applied** (no relocation to Germany) | Done |
|
||
| Apple Data Engineer (ISE, Zurich) | **CLOSED — REJECTED** (no interview) | Done |
|
||
| Google FDE GenAI (Zurich) | PAUSED — GenAI evidence gap too large; redirecting to data-eng/MLOps roles | Likely abandon |
|
||
| Equinor AI Architect (Norway) | **SENT** (~80/100) | Done — await response |
|
||
| QuantCo Cloud Engineer (Europe/Zürich) | **CLOSED — REJECTED** (applied 2026-06-01 ~82/100, no interview; rejection 2026-06-15) | Done |
|
||
|
||
---
|
||
|
||
## KB Corrections Log
|
||
|
||
_See `config.md` for user-specific corrections. Add verified errors here as you find them._
|