> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dataforb2b.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Jobs

> Search job postings on LinkedIn and Indeed

## Credit Cost

| Mode         | Credits                                  |
| ------------ | ---------------------------------------- |
| All searches | 1.5 credits per 10 job postings returned |

***

## Request Body

<ParamField body="platform" type="string" default="linkedin">
  Job platform to search: `linkedin` or `indeed`.
</ParamField>

<ParamField body="keyword" type="string">
  Search keyword: job title, skill, or company (e.g., `"backend engineer"`).
</ParamField>

<ParamField body="location" type="string">
  Location to search in (e.g., `"Paris, France"`, `"United States"`).
</ParamField>

<ParamField body="country" type="string" default="usa">
  Country for Indeed (e.g., `usa`, `france`, `uk`, `germany`). Ignored by LinkedIn, which uses `location`.
</ParamField>

<ParamField body="distance" type="integer">
  Search radius in miles around the location (0–200).
</ParamField>

<ParamField body="job_type" type="string">
  Employment type: `fulltime`, `parttime`, `contract`, `temporary`, `internship`.
</ParamField>

<ParamField body="work_type" type="string">
  Work arrangement: `onsite`, `remote`, `hybrid`.
</ParamField>

<ParamField body="experience_level" type="string">
  Seniority (LinkedIn only): `internship`, `entry_level`, `associate`, `mid_senior`, `director`, `executive`.
</ParamField>

<ParamField body="date_posted" type="string">
  Freshness of the postings: `past_24h`, `past_week`, `past_month`.

  <Warning>
    On Indeed, `date_posted` cannot be combined with `job_type` or `work_type`.
  </Warning>
</ParamField>

<ParamField body="company_ids" type="string">
  Comma-separated company IDs to restrict the search (LinkedIn only). Accepts encoded IDs (`org_xxx`, as returned by [Typeahead](/api-reference/typeahead) and [Search Company](/api-reference/search-company)) and/or raw numeric LinkedIn IDs.
</ParamField>

<ParamField body="company_name" type="string">
  Company name to restrict the search. LinkedIn: resolved to the matching company (strict employer filter). Indeed: used as a search keyword (approximate). Ignored if `company_ids` is provided.
</ParamField>

<ParamField body="fetch_description" type="boolean" default="false">
  Include the full job description on each result. On LinkedIn this is slower (one extra request per job); on Indeed it adds no latency.
</ParamField>

<ParamField body="offset" type="integer" default="0">
  Number of results to skip for pagination.
</ParamField>

<ParamField body="count" type="integer" default="25">
  Number of job postings to return. Maximum: 100 per request.
</ParamField>

***

## Response

<ResponseField name="total" type="integer">
  Number of job postings found so far (lower bound when `has_next` is true — job platforms do not expose a global match count).
</ResponseField>

<ResponseField name="offset" type="integer">
  Offset used for pagination.
</ResponseField>

<ResponseField name="count" type="integer">
  Number of results returned in this response.
</ResponseField>

<ResponseField name="has_next" type="boolean">
  Whether more results are available. Use it with `offset` to paginate.
</ResponseField>

<ResponseField name="credits_used" type="number">
  Credits used for this search.
</ResponseField>

<ResponseField name="results" type="array">
  List of job postings, normalized across platforms.

  <Expandable title="job posting properties">
    <ResponseField name="job_id" type="string">
      Platform job ID
    </ResponseField>

    <ResponseField name="platform" type="string">
      Source platform (`linkedin`, `indeed`)
    </ResponseField>

    <ResponseField name="title" type="string">
      Job title
    </ResponseField>

    <ResponseField name="job_url" type="string">
      URL of the job posting
    </ResponseField>

    <ResponseField name="employment_type" type="string">
      Employment type (e.g., "Full-time")
    </ResponseField>

    <ResponseField name="seniority_level" type="string">
      Seniority level (e.g., "Mid-Senior level")
    </ResponseField>

    <ResponseField name="job_function" type="string">
      Job function (e.g., "Engineering")
    </ResponseField>

    <ResponseField name="is_remote" type="boolean">
      Whether the job is remote
    </ResponseField>

    <ResponseField name="company_name" type="string">
      Hiring company name
    </ResponseField>

    <ResponseField name="company_url" type="string">
      Hiring company page URL
    </ResponseField>

    <ResponseField name="company_logo_url" type="string">
      Hiring company logo URL
    </ResponseField>

    <ResponseField name="industry" type="string">
      Company industry
    </ResponseField>

    <ResponseField name="location" type="string">
      Job location
    </ResponseField>

    <ResponseField name="salary" type="string">
      Salary information when published
    </ResponseField>

    <ResponseField name="date_posted" type="string">
      Date the job was posted (e.g., "2026-07-06")
    </ResponseField>

    <ResponseField name="posted_days_ago" type="integer">
      Days since the job was posted
    </ResponseField>

    <ResponseField name="description" type="string">
      Full job description (only when `fetch_description` is true)
    </ResponseField>
  </Expandable>
</ResponseField>

***

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.dataforb2b.ai/search/jobs \
    -H "api_key: YOUR_api_key" \
    -H "Content-Type: application/json" \
    -d '{
      "platform": "linkedin",
      "keyword": "backend engineer",
      "location": "Paris, France",
      "job_type": "fulltime",
      "date_posted": "past_week",
      "count": 25
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.dataforb2b.ai/search/jobs",
      headers={
          "api_key": "YOUR_api_key",
          "Content-Type": "application/json"
      },
      json={
          "platform": "linkedin",
          "keyword": "backend engineer",
          "location": "Paris, France",
          "job_type": "fulltime",
          "date_posted": "past_week",
          "count": 25
      }
  )

  data = response.json()
  print(f"Got {data['count']} jobs")
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.dataforb2b.ai/search/jobs', {
    method: 'POST',
    headers: {
      'api_key': 'YOUR_api_key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      platform: 'linkedin',
      keyword: 'backend engineer',
      location: 'Paris, France',
      job_type: 'fulltime',
      date_posted: 'past_week',
      count: 25
    })
  });

  const data = await response.json();
  console.log(`Got ${data.count} jobs`);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "total": 25,
    "offset": 0,
    "count": 2,
    "has_next": true,
    "credits_used": 1.5,
    "results": [
      {
        "job_id": "4436084243",
        "platform": "linkedin",
        "title": "Backend Engineer - Node.js / Typescript",
        "job_url": "https://fr.linkedin.com/jobs/view/backend-engineer-node-js-typescript-at-cozycozy-com-4374111498",
        "employment_type": "Full-time",
        "seniority_level": "Mid-Senior level",
        "job_function": "Engineering",
        "is_remote": null,
        "company_name": "cozycozy.com",
        "company_url": "https://www.linkedin.com/company/cozycozy",
        "company_logo_url": "https://media.licdn.com/dms/image/...",
        "industry": null,
        "location": "Paris, Île-de-France, France",
        "salary": null,
        "date_posted": "2026-07-06",
        "posted_days_ago": 4,
        "description": null
      },
      {
        "job_id": "4430700343",
        "platform": "linkedin",
        "title": "Full-Stack Developer (junior)",
        "job_url": "https://fr.linkedin.com/jobs/view/full-stack-developer-junior-at-leonar-4436084243",
        "employment_type": "Full-time",
        "seniority_level": "Entry level",
        "job_function": "Engineering",
        "is_remote": null,
        "company_name": "Leonar",
        "company_url": "https://www.linkedin.com/company/leonar-app",
        "company_logo_url": "https://media.licdn.com/dms/image/...",
        "industry": null,
        "location": "Paris, Île-de-France, France",
        "salary": null,
        "date_posted": "2026-07-05",
        "posted_days_ago": 5,
        "description": null
      }
    ]
  }
  ```
</ResponseExample>
