Create Search Job
agent-data call f9a6ec16-0bfd-44d8-b3ee-073776745ee7 search-jobs --keywords <keywords> [--location New York] [--limit <limit>] [--fields <fields>] [--source <source>]curl -X POST "https://i2ovik0sjj.execute-api.us-east-2.amazonaws.com/prod/v1/search-jobs" -H "Authorization: Bearer <YOUR_API_KEY>" -H "Content-Type: application/json"Single-source job search. Every request targets exactly one source: linkedin, ashby, greenhouse, lever. If source is omitted the API defaults to linkedin. This route never fans out across multiple sources. LinkedIn searches live upstream; Ashby, Greenhouse, and Lever search the service-refreshed local postings store. Returns up to limit summary rows matching the keywords (+ optional location) query. Each row carries an id (format jp_<12-hex>) AND a source_url — keep BOTH; you’ll need them as a pair when calling get-posting. Use fields=id,title,company_name (comma-separated) to request a subset of fields and reduce response size. Allowed fields: [‘capture_method’, ‘company_name’, ‘department_name’, ‘detail_available’, ‘employment_type’, ‘id’, ‘is_remote’, ‘location_display’, ‘missing_fields’, ‘posted_at’, ‘published_at’, ‘salary_display’, ‘search_status’, ‘source’, ‘source_id’, ‘source_url’, ‘staleness_status’, ‘team_name’, ‘title’, ‘workplace_type’]. Errors: 422 validation_error (param fails type/range validation; details[].loc identifies the field); 400 validation_error (fields= or source= violates the request contract); 503 upstream_unavailable (the chosen upstream source failed, retryable:true — caller decides backoff).
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Search query terms. Required.
Search query terms. Required.
Optional location filter, e.g. New York. Accepts a city, state/region, or country (names, common aliases like NYC/SF, ISO codes like US/GBR, and native spellings like München all resolve via GeoNames). linkedin: forwarded to LinkedIn’s own location filter. ashby/greenhouse/lever: matched against each posting’s resolved location with hierarchical containment — a country matches every city in it. ‘Remote’ matches remote-flagged postings. Unrecognized strings fall back to substring match on the posting’s displayed location. Qualify ambiguous cities (‘London, UK’).
Maximum number of results to return (1-100).
Maximum number of results to return (1-100).
Optional comma-separated list of fields to include per row. Allowed: [‘capture_method’, ‘company_name’, ‘department_name’, ‘detail_available’, ‘employment_type’, ‘id’, ‘is_remote’, ‘location_display’, ‘missing_fields’, ‘posted_at’, ‘published_at’, ‘salary_display’, ‘search_status’, ‘source’, ‘source_id’, ‘source_url’, ‘staleness_status’, ‘team_name’, ‘title’, ‘workplace_type’].
Responses
Section titled “ Responses ”Search results.
object
object
One row in a search-jobs result. All fields optional because sparse
fieldsets (?fields=id,title) may omit any subset.
object
object
Example generated
{ "data": { "query": { "source": "example", "keywords": "example", "location": "example" }, "status": "example", "results": [ { "id": "example", "title": "example", "source": "example", "is_remote": true, "posted_at": "2026-04-15T12:00:00Z", "source_id": "example", "team_name": "example", "source_url": "example", "company_name": "example", "published_at": "2026-04-15T12:00:00Z", "search_status": "example", "capture_method": "example", "missing_fields": [ "example" ], "salary_display": "example", "workplace_type": "example", "department_name": "example", "employment_type": "example", "detail_available": true, "location_display": "example", "staleness_status": "example" } ], "warnings": [ "example" ], "started_at": "2026-04-15T12:00:00Z", "completed_at": "2026-04-15T12:00:00Z" }, "meta": { "request_id": "example" }}Service-side request contract error. error.param identifies the offending field when available.
object
object
object
Example
{ "error": { "source": "upstream" }}Client validation error. details[] identifies the offending field.
object
object
object
Example
{ "error": { "source": "upstream" }}Upstream dependency unavailable (retryable:true). The caller decides retry cadence.
object
object
object
Example
{ "error": { "source": "upstream" }}