From 274f946bd2292d93e0ca8470fdd5250aa29c8af3 Mon Sep 17 00:00:00 2001 From: rafapolo Date: Fri, 4 Sep 2026 11:23:08 +0200 Subject: [PATCH] fix: catch German prepositions missing from NON_ENGLISH_RE title filter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Software Engineer auf dem Weg zum Data / AI Engineer" (ti&m, via job-room.ch) sailed through: none of the German-word list matched 'auf dem Weg zum', and the job-room description was too short to clear the separate description-level DE/FR word-count threshold. auf/zum/zur/vom/für/beim don't exist as English words, so they're safe unambiguous markers — verified against the full 2858-row jobs.csv history: only this one title now flags. --- fetch.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fetch.ts b/fetch.ts index 5b426bf..77f45e2 100644 --- a/fetch.ts +++ b/fetch.ts @@ -79,8 +79,13 @@ export const NON_ENGLISH_RE = new RegExp( 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) - String.raw`\bmit\b`, + // German prepositions/articles in title context (must appear as whole words) — + // none of these exist as English words, so they're safe unambiguous markers. + // Added after "Software Engineer auf dem Weg zum Data / AI Engineer" (ti&m, + // via job-room.ch) sailed through: none of the German-word list above + // matched, and the job-room description was too short (~1 hit) to clear the + // separate ≥6 DE/FR word-count threshold either. + String.raw`\bmit\b|\bauf\b|\bzum\b|\bzur\b|\bvom\b|\bfür\b|\bbeim\b`, // French gender markers String.raw`\(H\/F\)|\(F\/H\)|\(h\/f\)|\(f\/h\)`, // French-only accented characters