eee608a2136626366a0fb01ffac5212060f47f73
7
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
0d999ab21b |
feat(scout): automate Kdo Cy via Prospective API; close SBB and Kdo Cy
Scout - New `prospective` adapter for ohws.prospective.ch, wired up as `kdocy` (jobs.admin.ch, filtered to Kommando Cyber). jobs.admin.ch is an S3-hosted SPA that returns AccessDenied to any direct fetch, headless included, so the site cannot be scraped -- but the SPA reads a public, unauthenticated API. All 463 federal roles in ~2.4s, against RUAG's 35s Playwright scrape. - This board is richer than any other source: Lohnklasse, application deadline, a named contact per posting, and the full Aufgaben/Anforderungen body, so scoring runs against the JD text rather than the title. - Thread `deadline` through normalization, the markdown report and the JSON dump. A board with hard deadlines needs them on the row. - Match `verwaltungseinheit_*` by prefix: the sub-unit key is department specific (VBS 1083398, EFD 1083364) and hardcoding one breaks reuse. - MANUAL_CHECK entry for the Bundeswehr Reserve portal. The data is reachable (SAP E-Recruiting OData, SearchCategory 0022) but the portal actively blocks automation, and getting through needs UA spoofing plus masking navigator.webdriver. Not wired up by choice -- the operator-sanctioned Suchauftrag/job alert is the better channel. Reasoning is in the comment. Applications - SBB Data Engineer 103755: interviewed 2026-09-09, WITHDRAWN by the candidate 2026-09-11. Net downgrade on four axes (41h vs 40h, 25+Brueckentage vs 28+5, 3 vs 2 office days, and Anforderungsniveau K tops out ~145k against ~135k inside a band running to ~160k -- he would enter K at its ceiling merely to break even). The cohort's only interview, and it ended as his no, not theirs. - Kdo Cy DevOps Engineer III: REJECTED 2026-09-10, 14 days, no interview. Form letter with no diagnostic content. Identical on every recorded dimension to SBB (core / 79 / gate pass / DQ 92 / weak channel) and the two went opposite ways -- recorded as worth watching, not as evidence for the channel thesis. - Citadel row cleaned up: it claimed the cohort and decision-log entries were deliberately unwritten while its own status line read SUBMITTED. Both exist. The next-step cell still said "ask BEFORE building the package" two weeks after submission. Decision log - 69 RUAG rows -> 3 undecided. 63 title/family rule-outs, each noting that it is not a JD read, plus three that are: Test Manager C5I, System Engineer C5I, ICT Solution Architect. Guarded against the shared F/A-18 slug so one write could not silently swallow the other. Note: the K->L/Kader rule is SBB-specific and was deliberately narrowed -- Anforderungsniveau is SBB's own system and does not map onto jobs.admin.ch (Lohnklassen), RUAG or PostFinance. Thun-area employers sit outside the Bern salary logic entirely. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qej5SBvhcbGXHwLqNWiskM |
||
|
|
89af779bf3 |
docs(sbb): add total-comp break-even worksheet
The deciding question on 2026-09-09 is a number nobody has, so the worksheet is a frame to complete before the call rather than a filled-in answer: Anforderungsniveau K is not public, which is why Q1 exists. Records the three things that make a Swiss base-to-base comparison lie: the free GA, Regionalzulage and employer pension share are real money invisible in a base figure, while a Swisscom bonus is real money SBB will not match; the GA is a taxable Lohnausweis benefit so its net value sits below list price; and the GA and the "commute saving" are the same franken, so counting both flatters SBB by four figures. K is a capped GAV band with no negotiation lever at the top, so this is a yes/no against a fixed number, not an opening position. User's read is that it will not clear. Taking the call regardless: the questions are worth asking, it is interview practice while NATO JWC, BIS and Microsoft Principal are still live, and the K figure is the first real data point on what the entire Bern/Thun local tier pays - RUAG, Swissgrid, BKW and BFH sit in comparable band structures. Worth recording whatever the outcome. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JMcHCsTKWvVzqyLChF5ckk |
||
|
|
9a188cafef |
feat(sbb): interview invitation 2026-09-09, write interview brief
SBB Data Engineer (Job ID 103755): invited 2026-08-28 for Wednesday 9 September 2026, 08:30, 45 min on Teams. Per the posting's own process this is stage 2 of 4 - "Virtuelles Kennenlernen mit HR und Fuehrungskraft" - so HR together with Andri Wienandts, not a pure HR screen. 45 minutes shared between two people, which is the practical constraint the brief is built around. Two facts worth recording: - This is the FIRST conversion of the evidence-first cohort (6 applications, 2 rejections), and it came from a COLD submit. The channel plan called for phoning Wienandts before applying; that never happened, so the published warm contact went unused. - The resume never contained Snowflake, dbt or Power BI - the three literals an ATS keyword screen would have keyed on, and a risk the session had explicitly recorded as "accepted, not solvable". It did not filter him out, so a human read the dossier and the honest substitution framing survived first contact. One data point; not enough to revise strategy on, but it is evidence against assuming honest omissions are fatal at the screen. Brief covers the four questions that must not go unasked (Anforderungs- niveau K band, design/architecture scope vs current Staff + Component Owner level, RAMSI's Java/Spring Boot/Angular share, Kidz Care rate), the substitution answers for each named-but-non-canonical tool, the swissTAMP/RIS/MUD context, and the thesis boundary - methods prototype, no operational data, no accuracy figures, PSO surveyed only. It also asks him to decide three things before the call rather than on camera: what he does if K lands at 130-150k, if architecture is set elsewhere, or if RAMSI turns out to be heavily Angular. Any one can be a no, and the level question is the same shape as the declined BKW. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JMcHCsTKWvVzqyLChF5ckk |
||
|
|
e53abd4ff6 |
chore(log): submit SBB, close Snowflake, correct Norway lane framing
Application log updates from the 2026-08-24 scout run and the days after. SBB Data Engineer (Asset Management, Bern, job 103755): SUBMITTED 2026-08-25. Consumes Core slot 2/7 in evidence-first-2026-01. Submitted with the Anforderungsniveau K comp question still unresolved, against the channel plan and the critique's closing advice, so the K band, the design-vs-build-and-run scope question and the Kidz Care rate are now screening-call topics rather than pre-cleared facts. Next action changed from "call then submit" to "prep an interview brief". The stale pointer to an /edit-resume Tier 1 fix is removed - that fix landed 2026-08-21. Snowflake Sr SWE Enterprise (Observe): CLOSED - NO RESPONSE at 80 days silent, past the longest real disposition in the log (Equinor, 79). Recorded as closed_no_response, deliberately NOT as a rejection: none was ever received, so it must not enter rejection statistics or read as a document-quality signal. Pre-dates the cohort, so no slot is freed. An ~86/100 package - the highest in the log - drawing no reply at all is the strongest evidence yet that the constraint is channel, not documents. Unblocks the Observe Metrics Platform req, which was paused only to avoid stacking a second cold application on the same org. Norway lane: corrected a false "closed" framing that had propagated into the Equinor row and was used to dismiss Norwegian rows in the scout readout. The lane is OPEN but selective. The gates are norsk working language and NO security clearance - NOT compensation: the 180k bar is CH-only and explicitly does not apply to Norway. Equinor, Telenor and NATO JWC stay in the scout. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MHtzyTKBcg6BWhD5qFegtK |
||
|
|
73336cc4f9 |
feat(sbb): critique the package and apply its Tier 1 fix
Critique per critique_framework.md: hard gate PASS, Evidence Fit 79/100
(Core, unchanged — a document cannot move candidate-role fit), Document
Quality 90/100, Channel Weak but uniquely upgradeable. Claim audit clean
across all 13 bullets; no Tier 1 truth findings.
The skill's own spec asks for a single 8-dimension score including a
Publications weight, which contradicts critique_framework.md and CLAUDE.md
("never collapse them into one optimistic score"). Followed CLAUDE.md and
recorded the conflict — the skill definition looks stale relative to the
July rewrite.
Tier 1 finding and fix: the JD names Abfrageleistungsoptimierung in a
required line and the document had zero occurrences of "query", despite
canonical support sitting in BS-2's 3L variant. BS-2 now reads "tuning
query performance for analysis teams working with…" and the Pipelines
skills line gains "query performance tuning". Also surfaced "agile" in
SW-3, whose canonical 2L variant records "in an agile DevOps team" and
whose absence left the JD's second required line unaddressed.
Deliberately NOT applied: the API term. claims.json SW-7 records only
"onboard source systems" and SW-2's ingestion is Oracle to Kafka, so
adding it would be vocabulary substitution rather than evidence. Left
open pending user confirmation.
Re-verified after the edit: validator PASS, forbidden-token scan PASS,
compile PASS at 2 pages, both pages re-rendered and inspected. Longest
bullet 34 words, still under the flag threshold. Document Quality 90 to
92 on relevance/terminology.
Still not submitted — held pending the Anforderungsniveau K comp answer.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpMtWFtYkGkjSMShuTgXiB
|
||
|
|
a64661e42a |
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 |
||
|
|
787a1d937e |
feat(sbb): Phase 0 for SBB Data Engineer, Asset Management, Bern
Job ID 103755, posted 2026-08-20, surfaced by the 2026-08-21 scout run. Evidence Fit 79/100 (Core, lower end), hard gate PASS. The title-defining capability — build and operate cloud data pipelines and governed data products — is Direct and current, unlike the AWS FDE NO-GO. Best practical fit in the log: Bern-based, German-language, no relocation, EU citizen plus B permit. Real strength cluster for the role's vorausschauende Wartung purpose: Bosch fab sensor/process data, ELK/Kafka anomaly detection, containerized ML inference, plus the condition-monitoring thesis. Two open risks, both level and comp rather than fit: Anforderungsniveau K is a capped GAV band whose figures are not public and must be asked, and the seat reads lateral or below current Staff plus Component Owner scope — the same shape declined at BKW. Level and ownership scored 9/15 for that reason. Seven named tools are non-canonical (Snowflake, dbt, Argo Workflows, Helm, Power BI, Spring Boot, Angular); survivable only because the JD prefixes the stack list with "z. B.". Recorded as an accepted ATS risk, with a Phase 2 gate to keep all seven out of the generated document. Cover letter: NO — SBB explicitly waives it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WpMtWFtYkGkjSMShuTgXiB |