Commit Graph
2 Commits
Author SHA1 Message Date
dennisthiessenandClaude Opus 5.5 ff12f16545 fix(scout): Apple blind to CH for 2 months, BIS behind Cloudflare, NAV rate limit, EMEA leak; reputation for every board
Apple (the big one)
- The location=switzerland-CHE slug stopped resolving; Apple silently applied
  a US location, so every run from at least 2026-08-31 returned the same 21
  US/intern cards and 0 Swiss roles. Now location code CHEC (from
  /api/v1/refData/postlocation), result list item as the card (location
  readable), pagination, settle delay, longer wait and per-element timeout.
  Verified twice: 24 Swiss roles each run.

BIS
- bis.org went behind a Cloudflare challenge (403 even headless). Moved to the
  Workday tenant bis.wd3.myworkdayjobs.com/External, which also carries the
  office. Host alias + lower-cased jr-id keep all 9 bis.org#jr decisions
  linked (applied jr100498 included).

NAV
- Search API 429s after ~9 requests and stays blocked for hours: discovery
  capped at 8 searches (4s pacing). Posting text now comes from NAV's official
  third-party feed (pam-stilling-feed, public rotating token), with a small,
  slow website-page fallback for ads the feed lacks (~2/3). Verified live on
  15 real ads; fallback path tested on fixtures.

Location filter
- EMEA leak fixed: a country allowlist without CH/DK plus a trailing region
  tag is no longer Europe-remote (27 rows). Swiss/Danish segments in
  multi-location strings are evaluated per segment. Regression over all
  2026-10-22 rows: only the fenced rows changed.

Reputation
- Every board now has a dated verdict; kununu added as a primary source next
  to Glassdoor (the one with more reviews decides; user tip). Second-source
  scores now count (a low one means avoid). AVOID: BIS (Glassdoor 2.9),
  BFH (kununu 3.3), Kdo Cy (federal administration kununu 3.4).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:44:45 +02:00
dennisthiessenandClaude Opus 5.5 92c3c005b4 feat(scout): Norway outside Oslo via NAV + dedicated boards, language check, reputation, region split
Norway search (user request 2026-10-21/22: Trondheim, Bergen or similar, not Oslo)
- New location policy norway_no_oslo: keeps a role if any Norwegian location
  is outside the Oslo area. Equinor and Telenor move to it.
- New `nav` adapter for the NAV national register (arbeidsplassen.nav.no):
  keyword queries on a fixed request budget, paced; on HTTP 429 it stops and
  returns a PARTIAL run with a warning instead of failing. Full-ad text checks
  are cached in state/nav_detail_cache.json (ignored). Tested against
  fixtures only: the live API was rate-limiting during the build.
- Dedicated boards where NAV was measured thin (2026-10-22: Nordic 0, DNV 2,
  Equinor 2 vs ~10, NATO 0): Nordic Semiconductor (teamtailor custom domain),
  DNV (new `algolia_jobs` adapter; app id/key/index read from the page each
  run), Arm Trondheim (new `radancy` adapter), Microsoft Norway (pcsx).
  Verified live: 7 / 6 / 7 / 6 roles outside Oslo.
- NAV rows that duplicate a dedicated board's posting are dropped
  (employer alias + normalized title).

Language / citizenship check
- classify_language_requirement reads the requirement SENTENCE, not the
  posting language: "norsk og/eller engelsk" is English OK, "kommunisere
  godt ... på norsk og engelsk" is Norwegian required. Only an explicit
  Norwegian requirement or Norwegian-citizenship requirement filters a role;
  clearance is noted, never a gate. Runs on full ad text (NAV detail page,
  untruncated Teamtailor/PCSX descriptions). Telenor Lead Platform Engineer
  now reads NORWEGIAN REQUIRED (it read UNCLEAR on truncated text).
- Norwegian title keywords added (they all scored 0 and were never checked).

Employer reputation (user requirement 2026-10-22)
- state/employer_reputation.json (now tracked): dated Glassdoor lookups with
  sources and the approved thresholds (good >= 3.8 on >= 50 reviews; ok
  3.5-3.79 or thin-but-backed; avoid < 3.5; Vizrt excluded). Every report
  row shows the verdict; unlooked-up employers show UNCHECKED.

Report
- Sections per region: Switzerland, Norway, Europe-remote / Denmark (user
  preference); `--region=ch|no` runs one region only.

Fixes
- Microsoft links: apply.careers.microsoft.com<positionUrl>?jobId=<id>
  with a host alias so all 7 logged Microsoft decisions still resolve; the
  old jobs.careers.microsoft.com form redirected to a generic search page.
  PCSX calls retry on 429.

CLAUDE.md corrections log: design/architecture gap (2026-10-21) and the
Microsoft link fix; the EMEA-suffix location leak stays OPEN.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 09:19:05 +02:00