fix(jobnet-search): keep canonical portal url and emit destination in applyUrl (closes #701) (#706)

* fix(jobnet-search): keep canonical portal url and emit destination in applyUrl (closes #701)

* docs(jobnet-search): document canonical url and applyUrl split (#701)

* changelog: place the #706 entry under [Unreleased]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mads Lorentzen <madslorentzen_17@hotmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
authored and GitHub committed 2026-10-21 07:09:02 +02:00
1 parent c71c270765
commit 183c8fda20
4 files changed
+41 -16

No files matched your search

+13
View File
@@ -328,6 +328,19 @@ per-file diff commands.
no total deadline. `size=` in the status line is now the saved file's size on both paths, and step 3
of `09-web-research.md` says an exit 1 can come from a redirect target's policy.
- **`jobnet-search` keeps canonical portal URLs for external ads and emits destination in `applyUrl`**
(#706, fixes #701, `.agents/skills/jobnet-search/cli/src/commands/search.ts`,
`tests/search-normalization.test.ts`) - external job ads in search results emitted the
external employer ATS link directly in `url` (#557), which tripped `/scrape`'s Step 4.75 degraded
scan ("URLs that do not point at the portal") and caused `/apply` and `/rank`'s host-based routing
(#562) to send the posting to `WebFetch` on an ATS application form rather than `jobnet detail`.
`createSearchOutput` now keeps `url` canonical as `https://jobnet.dk/find-job/<id>` across all
ads (preserving identity, deduplication, and portal routing to `detail`), while emitting the
external employer ATS destination in `applyUrl` (matching the `applyUrl` field name on `detail`
in `jobindex` and `jobdanmark`) alongside `jobAdUrl`. For external ads, `url` is Jobnet's
canonical identity link, which 404s in a browser, and the employer page is `applyUrl` (search) or
the `Apply:` line of `detail`.
### Security
- **CI no longer leaves the job token in `.git/config` or expands a PR-controlled name into a