From db396d0a456bc2d86c656cf503d1522c2d835dd0 Mon Sep 17 00:00:00 2001 From: rafapolo Date: Fri, 4 Sep 2026 13:09:19 +0200 Subject: [PATCH] fix: catch the gender-colon suffix (Entwickler:in), not just slash "Senior Full Stack Entwickler:in 80-100 %" (ZHAW, via job-room.ch) used the colon-gender notation instead of a slash, and Entwickler wasn't on the German-word list either, so it slipped through. Verified against jobs.csv history: catches 31 titles using ':in' (Berater:in, Manager:in, Analyst:in, etc.), zero false positives. --- fetch.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fetch.ts b/fetch.ts index 77f45e2..3e05458 100644 --- a/fetch.ts +++ b/fetch.ts @@ -75,8 +75,12 @@ export const NON_ENGLISH_RE = new RegExp( String.raw`\s\(a\)(\s*[\d%]|\s*$)`, // German/Swiss umlauts and ß String.raw`[äöüÄÖÜß]`, - // /in word-ending (e.g. Mitarbeiter/in) — excludes m/f, n/a, etc. - String.raw`[a-zäöü]\/in\b`, + // /in word-ending (e.g. Mitarbeiter/in) — excludes m/f, n/a, etc. Also + // catches the gender-colon variant (Entwickler:in) — ZHAW's "Senior Full + // Stack Entwickler:in 80-100 %" (via job-room.ch) used ":in" and slipped + // past both this rule (slash-only) and the word list ("Entwickler" wasn't + // on it either). + String.raw`[a-zäöü][\/:]in\b`, // German-only words (case-insensitive handled by flag) String.raw`\b(Deine|Mitarbeiter|Pflegehelfer|Köchin|Koch EFZ|Kellner|Sozialpädagog|Lehrperson|Produktionsmitarbeiter|Produktionsplaner|Geschäftsführer|Spontanbewerbung|Arztsekretär|Physiotherapeut|Empfangsmitarbeiter|Automobilmechatroniker|Verkäufer|Projektleiter|Crewmitarbeiter|Crewmember|Systemgastronomie|Studienteilnehmende|Teilnehmende|Bauingenieur|Tiefbau|Hochbau|Elektroingenieur|Maschinenbau|gesucht|EFZ|Schweiz|Filiale|Ingenieur|Spezialist|Perspektive|Stellvertretung|Leitung|Beratung|Entwicklung|Betreuung|Verwaltung)\b`, // German prepositions/articles in title context (must appear as whole words) —