Files
claude-resume-kit/CLAUDE.md
T
dennisthiessenandClaude Opus 5 239129b37e feat(sdu): add SDU PhD enquiry, verify thesis claims from source
Explore SDU Center for Energy Informatics PhD, Theme 2 (Predictive
Maintenance and Asset Management of Smart Energy Networks), Odense DK,
deadline 2026-08-20. JD scraped live via Playwright.

Verified the master's thesis against the source PDF rather than the
stored title alone:
- Vibration-based condition monitoring of CNC machine tools; features
  are the dimensionless waveform, peak, pulse, margin and kurtosis
  indices.
- Implemented a hybrid of rule-based reasoning and a 7-10-3 ANN.
- Evaluation measured throughput and latency, not model accuracy:
  ~500 SPS pipeline against 72.9 kSPS sensors.
- Corrects an earlier note in the same session: PSO was surveyed only
  and never implemented. Recorded under thesis_limits alongside the
  absence of real operational data and accuracy figures.

Also records the ECTS relative grade (B, top 35%), the existence of
English-language transcripts, and the concrete Bosch sensor-data types
(defect management records, wafer inspection images, PCM electrical
parameters) under BS-2.

Adds the enquiry email sent to Prof. Bo Norregaard Jorgensen, which
asks whether an industry candidate is viable and whether non-academic
letters of recommendation are accepted.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 23:09:30 +02:00

194 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# claude-resume-kit — Project Instructions
> This file is auto-loaded by Claude Code. It provides project-wide rules for all skills.
---
## File Map
```
.claude/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.
- 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 |
|---------|--------|-------------|
| SDU Center for Energy Informatics, Odense DK — PhD, Theme 2 Predictive Maintenance & Asset Management of Smart Energy Networks (job 4159) | **EXPLORATORY 2026-08-02** (deadline 2026-08-20). Real JD scraped via Playwright. Strong genuine fit: thesis = vibration condition monitoring, RBR+ANN hybrid, throughput-vs-sensor-rate finding; Bosch fab sensor data; Swisscom data products as AI foundation. **Hard constraint: DKK 37,075/mo ≈ CHF 56k — far below the 180k bar; user accepts this knowingly as a PhD.** Real blocker is 2 letters of recommendation (13 yrs out of academia). Top-30% doc does NOT apply (numeric grading) — do NOT submit the ECTS-B/top-35% certificate against it. No publications. **Enquiry email to Prof. Bo Nørregaard Jørgensen SENT 2026-08-02** (draft in `output/sdu_phd_energy_informatics/enquiry_email_joergensen.md`); asked two questions — industry-candidate viability, and whether non-academic letters of recommendation are acceptable. | Await reply. Critical path is the 2 LORs, not the documents — chase referees regardless of reply. Build an **academic-style CV** (education-first, not the 2pp industry resume) when the user gives the go-ahead |
| Aker BP ASA — Data Product Architect, AI-ready Data Products (FINN 469067315) | **SUBMITTED 2026-07-30** (ahead of the 2026-08-02 deadline; Adjacent, **Evidence Fit 79/100**, Document Quality 93/100, hard gate PASS, Channel Weak; Stavanger/Oslo/Trondheim, English working language, no Norwegian and no clearance required, EEA work rights). 2pp resume + 1pp CL, both validator PASS. Honest practitioner framing: builds governed data products *inside* Swisscom's Data Mesh; role *authors* an enterprise framework — real level stretch, never fabricate authorship. **Atlassian Compass closed the catalogue-tool gap** (74→79). Remaining gaps: framework authorship, no energy domain, AWS vs their Microsoft/Cognite stack, **zero verified metrics**. | Done — await response; optional follow-up email to Per Olav Marthinsen |
| 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.2245.9k; applied ~7 days after posting). Same-day build→critique→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 176253k 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._
| Date | Correction | Files fixed |
|------|-----------|-------------|
| 2026-07-27 | **SW-1 was not solo.** Swisscom AWS migration was written as "sole technical lead" / "Led migration of legacy stack." Dennis was primary engineer for **his own domains'** pipelines and a contributor to the wider programme. | `experience_swisscom.md` (role line + all 3 bullet variants + overclaiming warning), `config.md` |
| 2026-07-27 | **Security Champion is 2025/2026 only, and is a team role — not an award.** Source files claimed "3 consecutive years (2023/242025/26)." User has now corrected this twice. **Default is OMIT** unless the JD explicitly requires security/DevSecOps. | `experience_swisscom.md` SW-5, `achievement_reframing_guide.md`, `skills_taxonomy.md` (3 rows) |
| 2026-07-29 | **Atlassian Compass is the metadata/lineage platform for Swisscom data products** (user-supplied). Previously the KB named no catalogue/lineage product at all, which read as a hard gap against data-governance JDs. Practitioner use only — never claim admin, rollout or ownership. Does NOT license claiming Purview/Collibra/Alation. | `claims.json` (SW-7 scope + skills entry), `experience_swisscom.md` SW-7 |
| 2026-08-02 | **Master's thesis verified against the PDF.** Vibration-based condition monitoring of CNC machine tools; hybrid **rule-based reasoning + 7-10-3 ANN**; throughput/latency evaluation (~500 SPS pipeline vs 72.9 kSPS sensors). **PSO was surveyed but NOT implemented** — an earlier note in this session wrongly listed it as an applied method. No real operational data and no accuracy figures: it is a methods prototype, not a validated system. Also recorded: ECTS relative grade **B (top 35%)**, English-language transcripts exist. | `claims.json` EDU-MENG |
| 2026-08-02 | **Bosch data types named.** Fab sensor/process data: defect-management records, wafer inspection images, PCM electrical parameters (user-confirmed). Previously the KB named no concrete sensor-data types for Bosch. | `claims.json` BS-2 |
| 2026-07-27 | **Bullet density.** Fixed 1L/2L/3L and character-band rules made bullets uniform and encouraged page filling. | Replaced globally with natural-length, evidence-led bullets; character counts are diagnostic only. |