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
5.7 KiB
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.