mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-11-08 16:07:40 +00:00
freehire-search: lean search uses the web endpoint; drop unread params (#631)
semantic_ratio and include_description are both reported in meta.ignored_params. With include_description ignored, the agent endpoint hydrates every full body from the database, and --no-description threw that payload away client-side. Send --no-description to /api/v1/jobs/search, which serves only the preview, and stop sending the two unread params.
This commit is contained in:
1 parent
ce9b656829
commit
0f6480d32e
6 files changed
+31
-27
No files matched your search
@@ -15,7 +15,7 @@ Verified against the live API:
|
||||
| Endpoint | Status |
|
||||
|----------|--------|
|
||||
| `GET /api/v1/agent/jobs/search` | 200 |
|
||||
| `GET /api/v1/jobs/search` | 200 (the web variant; not used by this skill) |
|
||||
| `GET /api/v1/jobs/search` | 200 (the web variant; used by `--no-description`) |
|
||||
| `GET /api/v1/jobs/facets` | 200 |
|
||||
| `GET /api/v1/jobs/{slug}` | 200 |
|
||||
| `GET /api/v1/auth/me` | 401 (auth required — not used here) |
|
||||
@@ -34,15 +34,16 @@ jobs, returning `data: [job, …]` with `meta.total` = the estimated match count
|
||||
|
||||
It runs the **same query** as the web-facing `/api/v1/jobs/search` — same `q`, same
|
||||
facets, same ranking, same pagination guard (`offset + limit ≤ 10000`) — and differs
|
||||
in one respect: asked to, it replaces the search index's truncated `description`
|
||||
in one respect: it replaces the search index's truncated `description`
|
||||
preview with the posting's **full** description read from the database. That is what
|
||||
lets a search of N roles stay one request instead of N + 1.
|
||||
|
||||
Two extra parameters control it:
|
||||
It always does so - there is no parameter to turn hydration off - so the skill's
|
||||
`--no-description` mode calls `/api/v1/jobs/search` instead. One extra parameter
|
||||
controls the rendering:
|
||||
|
||||
| Param | Maps to CLI flag | Notes |
|
||||
|-------|------------------|-------|
|
||||
| `include_description` | (always `true`) | Without it the endpoint serves the index preview, same as the web search. |
|
||||
| `description_format` | `--description-format` | `markdown` (the skill's default), `text`, or `html`. **An unrecognized value is not an error** — the API falls back to `html`, so the CLI validates the flag itself. |
|
||||
|
||||
Hydration is best-effort per hit: a result whose row has vanished from the database
|
||||
@@ -56,8 +57,8 @@ error naming the path rather than as an empty result set.
|
||||
## `GET /api/v1/jobs/search`
|
||||
|
||||
The web variant of the same search — identical query surface, but `description` is
|
||||
always the index's truncated preview. The skill does not call it; it is listed here
|
||||
because the shared parameters below are documented against both.
|
||||
always the index's truncated preview. The skill calls it for `--no-description`,
|
||||
where reading every full body from the database would be wasted work.
|
||||
|
||||
Query parameters used by the skill:
|
||||
|
||||
@@ -66,7 +67,6 @@ Query parameters used by the skill:
|
||||
| `q` | `--query` / `-q` | Keyword full-text query. |
|
||||
| `limit` | `--limit` / `-n` | Page size. Default 25 in the CLI. |
|
||||
| `offset` | (derived) | `offset = (page - 1) * limit`. |
|
||||
| `semantic_ratio` | (fixed `0`) | Keyword search; the semantic index is opt-in. |
|
||||
| `posted_within_days` | `--jobage` | Restrict to postings from the last N days. |
|
||||
| `regions` | `--region` | Repeatable; OR within the facet. Values like `global`, `eu`, `us`, `apac`, `latam`, `cis`. |
|
||||
| `countries` | `--country` | Repeatable; ISO-3166 alpha-2 (lowercased). |
|
||||
|
||||
Reference in new issue
Block a user