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
113 lines
5.7 KiB
Markdown
113 lines
5.7 KiB
Markdown
# Application Strategy
|
|
|
|
## Positioning
|
|
|
|
Default professional identity:
|
|
|
|
> Staff/Senior Data Engineer with production platform ownership, AWS data products, Kubernetes delivery and direct production-ML integration experience.
|
|
|
|
Core targets:
|
|
|
|
- Senior/Staff Data Engineer.
|
|
- AWS-oriented Data Platform Engineer when Terraform/SRE background is not mandatory.
|
|
- ML Platform/MLOps roles centered on deployment, infrastructure and operation.
|
|
- Semiconductor data, analytics and production-ML infrastructure roles.
|
|
- Swiss/DACH enterprise data-engineering roles.
|
|
|
|
Stretch targets include LLM/agent engineer, AI Manager, pure SRE, strategic-account FDE, and Principal roles requiring company-wide architecture or external-customer authority.
|
|
|
|
## Application Gate
|
|
|
|
Before generating a resume, complete Evidence Fit from `critique_framework.md`.
|
|
|
|
- **Core:** 75+ and no hard-gate failure.
|
|
- **Adjacent:** 60--74, no required Gap, normally at most one serious preferred gap.
|
|
- **Stretch:** below 60 or a defining responsibility is only Adjacent.
|
|
- **No-go:** required/title-defining Gap or unresolved practical constraint.
|
|
|
|
Do not spend a full resume/cover-letter cycle on a no-go role. Record the decision and move on.
|
|
|
|
## Application Record (no quotas)
|
|
|
|
**Policy change, 2026-09-05, user decision: the 7 Core / 2 Adjacent / 1 Stretch caps are DROPPED.**
|
|
|
|
The caps were arbitrary -- no derivation existed for those numbers -- and they were routed around
|
|
whenever they bound (RUAG AI Engineer went in at Evidence Fit 74 with a hard-gate FAIL; Citadel was
|
|
recorded Adjacent when the strict reading said Stretch). A rule that is overridden whenever it binds
|
|
governs nothing and only adds friction.
|
|
|
|
The cohort was also a confounded experiment. It was designed to test **fit class**, but the variable
|
|
it silently held constant was **channel**: all six applications were Weak/cold. It therefore could not
|
|
distinguish "Stretch does not convert" from "cold does not convert", and the results point away from
|
|
fit class anyway -- the highest-scoring package in the log (Snowflake, ~86) drew no reply in 80 days,
|
|
while the one interview (SBB) came from a cold Core submit whose resume was *missing* the three ATS
|
|
literals the session had flagged as risky.
|
|
|
|
**What is kept: the recording, not the rationing.** Every application still records fit class, hard
|
|
gate, channel, date, stage and outcome. That record is what makes patterns visible instead of
|
|
re-derived, and it produced every useful finding to date. `application_cohort.json` continues as a
|
|
durable log; `cohort_tracker.py summary` remains a read-only view. There is no slot to consume and no
|
|
application is blocked for lack of one.
|
|
|
|
**Fit class is now a preparation signal, not a spend limit.** An Evidence Fit of 64 does not mean
|
|
"do not apply" -- it means know which two questions you will be asked and have honest answers ready.
|
|
Hard gates and NO-GO triggers are unchanged: a required Gap or an unresolved practical constraint is
|
|
still a real finding that must be surfaced before the user decides.
|
|
|
|
### Real constraints that survive independently of any quota
|
|
|
|
These are not cohort discipline and must not be dropped with it:
|
|
|
|
- **Google: 3 applications per rolling 30 days**, and a 90-day wait before reapplying to the *same*
|
|
role. An external, enforced limit.
|
|
- **Do not stack a second cold application on one organisation while the first is pending** -- a
|
|
judgment call, made deliberately before (Snowflake Metrics was paused for exactly this).
|
|
- **Each package costs real hours.** Volume is limited by effort, not by policy.
|
|
|
|
## Channel Strategy
|
|
|
|
**Channel is the rationed variable, replacing the old slot budget** (2026-09-05). It is the constraint
|
|
with a plausible effect and an untested one: the record stands at **six consecutive cold submits, one
|
|
interview**, with zero Strong or Moderate channels ever attempted.
|
|
|
|
**Rule: no application goes out cold when a named contact is published and reachable.**
|
|
|
|
This has been available and unused repeatedly -- Marco Heinzen at RUAG (published direct line), Andri
|
|
Wienandts at SBB (published number, and it still converted), Per Olav Marthinsen at Aker BP. Making
|
|
contact costs one phone call or one short email and is the cheapest experiment left.
|
|
|
|
For every application, attempt at least one warm action before or immediately after applying:
|
|
|
|
- credible internal referral;
|
|
- targeted note to a relevant recruiter;
|
|
- concise outreach to the hiring manager or team member;
|
|
- former colleague/customer/vendor connection who can establish work quality.
|
|
|
|
Record the channel as Strong, Moderate or Weak. Tailoring alone does not upgrade a cold channel.
|
|
When no contact is published anywhere, a cold submit is fine -- record it as Weak and move on.
|
|
|
|
## Resume Strategy
|
|
|
|
- Use International Tech format by default.
|
|
- Keep the first half page focused on identity, compact skills and current evidence.
|
|
- Preserve conventional employer/title/date hierarchy.
|
|
- Favor 11--14 strong bullets over padding.
|
|
- Capture verified impact rather than inventing metrics.
|
|
- Generate the Swiss/DACH variant only when local conventions fit the employer.
|
|
|
|
## Cover-Letter Strategy
|
|
|
|
Apply the decision gate in `cl_reference.md`. A letter is not a default package component. Put effort into portal questions, referral context and outreach when those have higher information value.
|
|
|
|
## Feedback Loop
|
|
|
|
Review the record whenever a meaningful screen or interview result lands, and compare:
|
|
|
|
- Warm vs cold progression -- **the primary question now, and still unanswered.**
|
|
- Core vs Adjacent/Stretch progression.
|
|
- Recruiter rejection vs hiring-manager rejection.
|
|
- Tool/domain patterns among successful and unsuccessful roles.
|
|
- Whether resume changes affected outcomes.
|
|
|
|
Change one major variable at a time. Do not react to a single rejection by adding unsupported skills or broader positioning.
|