Job Search
GET /v1/jobs/search searches the Ashby snapshot in source order and returns at most 10 normalized job records. The response includes 26 public fields; the stored raw provider payload is omitted. This is an authenticated read and uses the gateway's existing organization, rate-limit, and credit authority.
Filters
The operation accepts query, location, company, ats, remote, salary_min, salary_max, experience_max, and limit. Omit ats or set it to ashby; other ATS values are rejected. query matches a literal, case-insensitive substring of the title. location and company match literal, case-insensitive substrings in their respective fields. Empty text filters do not filter. remote=true matches explicitly remote jobs plus null remote values whose location contains remote; explicit false values never match. remote=false matches only rows explicitly marked false. Salary bounds use the job's opposite salary bound. experience_max is explicitly unsupported because the Ashby snapshot has no experience field, and its presence returns 400 invalid_request.
limit defaults to 10 and accepts integers from 1 through 10. Results retain the source order; the endpoint has no sort or offset option. A valid search with no matches returns 200 and an empty data array.
Billing and retries
Each fresh successful logical search costs 10 credits, including an empty result. Errors cost no credits. The gateway uses a durable hold and idempotency identity. When X-Idempotency-Key is omitted, the identity is derived from the canonical endpoint and query, so repeating an identical request replays its original response while the terminal snapshot is available. To run the same query as a fresh logical search, send a new X-Idempotency-Key. Replaying a settled identity does not charge again; if its snapshot is unavailable, the gateway returns 409 idempotency_replay_unavailable without running the search again. A failed call releases its hold but leaves that identity terminal; use a new idempotency key when retrying after a failure.
Make a request
Store REPLYNODES_API_KEY in a secret store, then send it as a bearer credential:
curl -sS \
-H "Authorization: Bearer $REPLYNODES_API_KEY" \
"https://api.replynodes.com/v1/jobs/search?query=engineer&location=remote&remote=false&limit=10"The same operation is exposed by the canonical MCP job_search tool and forwards to this REST route. MCP clients can send X-Idempotency-Key on the MCP request to select a logical identity; without it, repeated identical tool inputs use the same endpoint-plus-query identity. Send a new key after a failed call because a released identity is not executed again. The API Reference contains the complete field and error schemas.