diff --git a/.agents/skills/jobdanmark-search/cli/src/commands/detail.ts b/.agents/skills/jobdanmark-search/cli/src/commands/detail.ts index 5a437eb..222889b 100644 --- a/.agents/skills/jobdanmark-search/cli/src/commands/detail.ts +++ b/.agents/skills/jobdanmark-search/cli/src/commands/detail.ts @@ -134,7 +134,14 @@ function overviewValue(root: ReturnType, label: string): string | function fromRenderedHtml(root: ReturnType, slug: string, url: string): DetailResult { const pageTitle = cleanText(root.querySelector("title")?.text ?? "") - if (pageTitle.toLowerCase().includes("404") || root.text.toLowerCase().includes("siden blev ikke fundet")) { + const titleLower = pageTitle.toLowerCase() + const bodyText = root.text.toLowerCase() + if ( + bodyText.includes("siden blev ikke fundet") || + titleLower.startsWith("404") || + titleLower.includes("page not found") || + titleLower.includes("siden blev ikke fundet") + ) { throw new Error("NOT_FOUND") } diff --git a/.agents/skills/jobdanmark-search/cli/tests/detail-parsing.test.ts b/.agents/skills/jobdanmark-search/cli/tests/detail-parsing.test.ts index e54bacb..ed8f453 100644 --- a/.agents/skills/jobdanmark-search/cli/tests/detail-parsing.test.ts +++ b/.agents/skills/jobdanmark-search/cli/tests/detail-parsing.test.ts @@ -49,4 +49,23 @@ describe("parseJobPostingFromHtml", () => { expect(parsed.description).toContain("identificere relevante datasæt"); expect(parsed.applyUrl).toBe("https://jfm.career.emply.com/da/apply/example"); }); + + test("does not reject titles containing '404' mid-phrase", () => { + const htmlWith404InTitle = HTML_WITHOUT_JSON_LD.replace( + "Journalistisk udvikler søges | jobdanmark", + "HTTP 404 Page Designer | jobdanmark", + ).replace( + '

Journalistisk udvikler søges

', + '

HTTP 404 Page Designer

', + ); + + const parsed = parseJobPostingFromHtml( + htmlWith404InTitle, + "http-404-designer", + "https://jobdanmark.dk/job/http-404-designer", + ); + + expect(parsed.title).toBe("HTTP 404 Page Designer"); + expect(parsed.hiringOrganization.name).toBe("JFM"); + }); });