From ae66b83b5e8ea4dad6457a6d52e78bfe62e5cc00 Mon Sep 17 00:00:00 2001 From: rafapolo Date: Tue, 5 May 2026 13:45:30 +0200 Subject: [PATCH] Broaden software filter and add junior/intern filter - Add lead, technical, consultant, solutions, product manager, IT manager to the software-role allowlist so relevant non-"software" titles pass - Add JUNIOR_TITLE_RE to drop junior, intern, trainee, apprentice titles --- fetch.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fetch.ts b/fetch.ts index 31b15e9..6962c61 100644 --- a/fetch.ts +++ b/fetch.ts @@ -87,7 +87,9 @@ const HEADERS = { "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", }; -const SOFTWARE_TITLE_RE = /\b(software|developer|architect|devops|platform|data|backend|frontend|fullstack|full.stack|tech\s*lead|typescript|python|rails|node\.?js|ai\b|machine\s*learning|cloud|security|analytics|sre|reliability|engineering\s*lead|solutions\s*engineer|staff\s*engineer|principal\s*engineer)\b/i; +const JUNIOR_TITLE_RE = /\b(junior|jr\.?|entry.?level|graduate|intern(?:ship)?|trainee|apprentice|werkstudent)\b/i; + +const SOFTWARE_TITLE_RE = /\b(software|developer|architect|devops|platform|data|backend|frontend|fullstack|full.stack|tech\s*lead|technical|typescript|python|rails|node\.?js|ai\b|machine\s*learning|cloud|security|analytics|sre|reliability|solutions|consultant|product\s*manager|engineering\s*manager|it\s*manager|it\s*project|staff\s*engineer|principal\s*engineer|cto|vp\s*eng)\b/i; const PAGE_SIZE = 25; const MAX_PAGES = 6; @@ -173,6 +175,7 @@ export async function fetchJobs(config: SearchConfig): Promise { const html = await res.text(); const jobs = parseJobs(html, config.label) .filter((j) => !NON_ENGLISH_RE.test(j.title)) + .filter((j) => !JUNIOR_TITLE_RE.test(j.title)) .filter((j) => SOFTWARE_TITLE_RE.test(j.title)); let newOnPage = 0;