fix: stop title filters from truncating a LinkedIn search early

fetchJobs ended pagination on `newOnPage === 0`, but newOnPage counts
jobs that survived the title filters. A page whose 25 cards all happened
to be German/Java/junior/non-software read as end-of-results and killed
the whole search, discarding every later page. The end condition is now
new raw data-entity-urn card ids, pre-filter, so what gets filtered can
no longer decide where the crawl stops.

Also add a name-only "Basel (broad)" search alongside the three geoId
ones. LinkedIn's guest search serves a different slice per query shape:
the Basel-city geoId query exhausts at 76 unique cards and never returns
some genuinely Basel-Stadt postings a name-resolved query does. PAS01's
"Full-Stack Software Engineer (60-80%)" in Basel (4461764782) was
invisible to all six Basel searches and reached the digest only because
the Bern query — also name-only — happened to return it. Union across
the Basel searches: 126 unique.
This commit is contained in:
2026-09-05 18:04:36 +02:00
parent a596281dae
commit e3368ce161
2 changed files with 32 additions and 2 deletions
+16
View File
@@ -121,6 +121,22 @@ export const searches: SearchConfig[] = [
workType: ["onsite", "hybrid"],
timePosted: "month",
},
{
// Name-only, no geoId — deliberately alongside the three geoId searches
// above, not instead of them. LinkedIn's guest search serves a *different*
// slice per query shape: measured 2026-09-05, the Basel-city geoId query
// exhausts at 76 unique cards and never returns some genuinely Basel-Stadt
// postings that a name-resolved query does. The PAS01 "Full-Stack Software
// Engineer (60-80%)" in Basel (4461764782) was invisible to all six Basel
// searches and reached the digest only because the *Bern* query — also
// name-only — happened to return it. Overlap with the geoId slice is high
// but not total, so this is cheap insurance against exactly that miss.
label: "Basel (broad)",
keywords: KEYWORDS,
location: "Basel, Switzerland",
workType: ["onsite", "hybrid"],
timePosted: "month",
},
{
label: "Bern",
keywords: KEYWORDS,