---
title: "Job Search"
method: POST
path: "/v3/jobs/search"
tags: ["Jobs Data"]
---

# Job Search

`POST /v3/jobs/search`

Search jobs with title, occupation taxonomy, company, location, tag, salary, seniority, and date filters. The endpoint resolves friendly values into normalized filter IDs before searching. Company objects do not include logo fields.

## Request body

- object
  - `titles` object
    - `include` string[]
    - `exclude` string[]
    - `vector` boolean
  - `occupationTaxonomy` object
    - `level1` union[]
      - union
        - string
        - integer
    - `level2` union[]
      - union
        - string
        - integer
    - `level3` union[]
      - union
        - string
        - integer
  - `companies` object
    - `include` string[]
    - `exclude` string[]
    - `ids` integer[]
  - `location` object
    - `countries` union[]
      - union
        - string
        - integer
    - `regions` union[]
      - union
        - string
        - integer
    - `states` union[]
      - union
        - string
        - integer
    - `cities` union[]
      - union
        - string
        - integer
  - `tags` object
    - `include` union[]
      - union
        - string
        - integer
    - `exclude` union[]
      - union
        - string
        - integer
  - `salary` object
    - `min_usd` integer
    - `max_usd` integer
  - `seniority` string[]
  - `postedAfter` string, date
  - `postedBefore` string, date
  - `postedWithin` integer — Include jobs posted within the last N days.
  - `languages` string[]
  - `hasRemote` boolean
  - `jobTypeIds` integer[]
  - `industryIds` integer[]
  - `companyTypeIds` integer[]
  - `companySizeCodes` integer[]
  - `limit` integer
  - `cursor` string — Opaque cursor from pagination.next_cursor. Send unchanged with the same filters and limit.
  - `includeDescription` boolean — Include job description text. Enabling descriptions may increase response time.
  - `includeFacets` boolean — Include facet metadata. Enabling facets may increase response time.
  - `totalMode` 'none' | 'capped' | 'exact'
  - `mode` 'fast' | 'deep' — fast returns paginated browsing results when descriptions and facets are omitted; deep enables broader text matching.
  - `autoResolve` boolean

## Response `200`

Job search results

- object
  - `signals` object[]
  - `total` integer
  - `totalMode` string
  - `pagination` object
    - `limit` integer
    - `returned` integer
    - `has_more` boolean
    - `next_cursor` string, nullable
  - `has_more` boolean
  - `next_cursor` string, nullable
  - `resolved` object
  - `credits_consumed` integer

## Other responses

- `400` — Bad Request - The request was malformed or contains invalid parameters. **Common causes:** - Missing required fields - Invalid field format (e.g., malformed email) - Invalid JSON syntax - Invalid parameter values
- `401` — Unauthorized - Authentication failed. **Common causes:** - Missing X-API-Key header - Invalid or expired API key - Malformed API key
- `402` — Payment Required - Insufficient credits for this request. **Action required:** Add credits to your account at https://app.leadmagic.io/settings/billing
- `429` — Too Many Requests - Rate limit exceeded. **Action required:** Check the `Retry-After` header for when to retry. **Headers returned:** - `Retry-After`: Seconds until you can retry - `RateLimit-Limit`: Your limit per minute - `RateLimit-Remaining`: Remaining requests this minute - `RateLimit-Reset`: Seconds until limit resets

---

[API](https://skmtc.net/leadmagic/apis/leadmagic-api.md) · [All operations](https://skmtc.net/leadmagic/apis/leadmagic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/leadmagic/leadmagic-api/revisions/aa19cf9bc46a/schema)
