From 2fadfdb8eb43782816f8cb1946f14b87bf4b31fc Mon Sep 17 00:00:00 2001 From: Dennis Thiessen Date: Tue, 18 Aug 2026 18:28:45 +0200 Subject: [PATCH] =?UTF-8?q?feat(scout):=20probe=20four=20unverified=20boar?= =?UTF-8?q?ds=20=E2=80=94=20add=20CERN,=20NCIA=20to=20manual=20check?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Probed CERN, Swiss Post, NATO NCIA and SIX Group. Two actionable results: - CERN: SmartRecruiters board "CERN", 66 live Geneva postings with real engineering (Deep Learning Developer, ML Engineer NGT, Full-stack SWE, Data Storage R&D Engineer). Added — the adapter already existed. Two standing caveats recorded in the entry: Geneva is ~1h50 from Bern so a 2-3 day hybrid is not viable without relocation, and CERN grades sit below the 180k bar. - NATO NCIA: nato.int is Cloudflare-blocked to headless browsers. Moved to MANUAL_CHECK beside Oracle, with a note that NCIA is a separate pipeline from the JWC Stavanger reqs the `nato` adapter returns. Not added, documented instead: - Swiss Post: real board is job.post.ch (SuccessFactors CSB), scrapable via a[href*='/job/']. The only tech role on page 1 was served from the PostFinance sub-board, which is already covered. Paginated, so this is page-1 evidence only, not a whole-board verdict. - SIX Group: SAPUI5 SPA backed by a legacy DWR RPC endpoint (careerJobSearchControllerProxy.getInitialJobSearchData.dwr). Scrapable in principle, brittle in practice; job rows did not render into readable text. Co-Authored-By: Claude Opus 5 --- job_scout/scout.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/job_scout/scout.py b/job_scout/scout.py index d85c6b6..db4b5e2 100644 --- a/job_scout/scout.py +++ b/job_scout/scout.py @@ -253,6 +253,20 @@ COMPANIES = [ "default_location": "Switzerland", "_title_exclude": NOISE_TITLE_EXCLUDE, }), + # CERN (Geneva) — probed 2026-08-18: SmartRecruiters board "CERN", 66 live postings, all + # Geneva. Real engineering exists (Deep Learning Developer, ML Engineer for Next Generation + # Triggers, Full-stack SWE, Data Storage R&D Engineer, Software Engineer) and it is an + # English-working international organisation in CH — the BIS Basel lane. + # TWO STANDING CAVEATS, do not forget them when scoring a CERN role: + # 1. Geneva is ~1h50 each way from Bern — not viable for a 2-3 day hybrid without + # relocation, which the user has ruled out. Practical constraints will score low. + # 2. CERN pay grades sit below the CHF 180k bar. + # Added anyway because the adapter is free (already implemented) and a fully-remote or + # exceptional CERN req would otherwise never surface. + ("cern", "CERN (Geneva)", "smartrecruiters", { + "company": "CERN", + "_title_exclude": NOISE_TITLE_EXCLUDE, + }), ("metgroup", "MET Group", "smartrecruiters", {"company": "METGroup", "_title_exclude": NOISE_TITLE_EXCLUDE}), # Dropped: Louis Dreyfus — 2026-08-18. 300 roles, every one Brazil/India/Bulgaria/Asia # operations (its Data Modeler reqs are in Bangalore). Geneva HQ but zero Swiss @@ -525,6 +539,12 @@ MANUAL_CHECK = [ # (then client-filter requisitionList[].PrimaryLocation for Switzerland/Zürich) ("Oracle", "ORC SPA resists scraping; REST endpoint known but needs CH geographyId (see code comment). Check Switzerland tech roles manually.", "https://careers.oracle.com/en/sites/jobsearch/jobs?location=Switzerland"), + # NATO NCIA (Brussels/The Hague/Mons) — probed 2026-08-18. NCIA is NATO's technology arm and + # a SEPARATE pipeline from the `nato` adapter above, which only returns JWC Stavanger reqs + # (Taleo). nato.int sits behind Cloudflare and returns "Sorry, you have been blocked" to a + # headless browser, so there is no automated path. Manual only. + ("NATO NCIA", "Cloudflare-blocked to headless browsers. NCIA is the tech arm and is separate from the JWC Stavanger reqs the `nato` adapter returns — check it manually for AI/data roles.", + "https://www.ncia.nato.int/careers.html"), ] @@ -2057,7 +2077,7 @@ def main(): # ashby kraken, openai, confluent, snowflake # greenhouse anthropic, gitlab, grafana, databricks, datadog, elastic, fivetran # pcsx microsoft -# smartrecruiters metgroup +# smartrecruiters metgroup, cern # rss bis # amazon amazon (Amazon + AWS share one board) # phenom roche (Cisco still uses the playwright path)