fix(discovery): use textMatchesKeyword for single deal-breaker tokens
Some checks failed
CI / Linting (Biome) (push) Failing after 41s
CI / Tests (push) Successful in 5m23s
CI / Type Check (adzuna-extractor) (push) Successful in 1m8s
CI / Type Check (gradcracker-extractor) (push) Successful in 1m14s
CI / Type Check (hiringcafe-extractor) (push) Successful in 1m11s
CI / Type Check (orchestrator) (push) Successful in 1m26s
CI / Type Check (startupjobs-extractor) (push) Successful in 1m9s
CI / Type Check (ukvisajobs-extractor) (push) Successful in 1m11s
CI / Documentation (push) Successful in 1m59s

Passing a string into textMatchesAnyKeyword caused keywords.some is not a function when search profile deal-breakers were applied after extract.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
ilia 2026-05-16 17:57:20 -04:00
parent d28a6221e4
commit 71f34853fd

View File

@ -15,7 +15,10 @@ import {
isSourceAllowedForCountry, isSourceAllowedForCountry,
normalizeCountryKey, normalizeCountryKey,
} from "@shared/location-support.js"; } from "@shared/location-support.js";
import { textMatchesAnyKeyword } from "@shared/keyword-match.js"; import {
textMatchesAnyKeyword,
textMatchesKeyword,
} from "@shared/keyword-match.js";
import { resolveBlockedCompanyKeywordsFromStoredString } from "@shared/resolve-blocked-company-keywords.js"; import { resolveBlockedCompanyKeywordsFromStoredString } from "@shared/resolve-blocked-company-keywords.js";
import { import {
inferCountryKeyFromSearchGeography, inferCountryKeyFromSearchGeography,
@ -164,7 +167,7 @@ function filterJobsBySearchProfile(args: {
if ( if (
dealBreakers.length > 0 && dealBreakers.length > 0 &&
dealBreakers.some((breaker) => textMatchesAnyKeyword(haystack, breaker)) dealBreakers.some((breaker) => textMatchesKeyword(haystack, breaker))
) { ) {
return false; return false;
} }