2 Commits
Author SHA1 Message Date
dennisthiessenandClaude Opus 5 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
2026-09-11 17:30:46 +02:00
dennisthiessenandClaude Opus 5 a0f844c143 feat(ruag): submit AI Engineer C5I, and record the Kdo Cy package
RUAG C5I - AI Engineer C5I (Thun, app ID 18027): SUBMITTED 2026-08-27.
Evidence Fit 74/100, fit class Stretch, title-capability hard gate FAIL
(R1 build/operate the AI-LLM platform and R2 in-house LLM/retrieval are
Adjacent, not Direct) - all knowingly accepted under the user's explicit
Phase 0 override. Consumes the cohort's sole Stretch slot: cohort is now
6/10, Stretch 1/1.

Critique ran twice. Round 1 scored the documents 85/100 and raised three
Tier 1 items; Round 2, after the fixes, scores 93/100 with truth and
provenance 24/25 and zero Tier 1 findings. Evidence Fit did not move and
was not allowed to: PP-3 is a personal project and cannot convert an
Adjacent title-capability into a Direct one.

Documents (.tex is the deliverable; PDFs are gitignored):
- resume 2pp/13 bullets, letter 1pp/295 words, both validators PASS
- headline is now the canonical title "Staff Data, Analytics & AI
  Engineer", which puts the req's own word above the fold
- PP-3 added as a Projekte section - the only current Linux/hardening
  evidence, since BS-6 ended Dec 2022
- the letter names the AI-platform gap in one sentence, then connects
  SW-5 to C5I's stated DevSecOps model
- "governte" -> "governance-konforme"; JD term coverage 18/22 -> 22/22
  claimable, with all six gap terms still correctly absent

Two defects found and fixed that the first critique missed:
- the resume never loaded babel, so a German document was hyphenated
  with English patterns (Hal-bleiterfertigung, Tran-skription). Fixed
  with babel[ngerman] plus a Transkription exception; this also cleared
  an overfull box. Check this on every future German package -
  resume_template.tex likely has the same omission.
- IBM AI Engineering had no primary-source record. Certificate read
  directly (IBM via Coursera, 4 Jun 2020, verify 3ZBZFVAL6A34), recorded
  as entry #8; it also proves PyTorch, now evidence: certification.

Also included: the submitted Kdo Cy DevOps Engineer III package, the
Capgemini omit rule promoted into config.md, BW-1 canonicalized in
experience_bundeswehr.md, and a scout.py comment correcting the
telenorgroup slug from "near-empty" to a claimed board serving stale
phantom listings that DEMO_TITLES would not catch.

Compensation, PSP/project eligibility and role level were never resolved
before sending and are now live screening topics.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JMcHCsTKWvVzqyLChF5ckk
2026-08-27 23:20:17 +02:00