# Advanced LinkedIn Job Search API

Access our real-time LinkedIn Jobs database with over 10 million new jobs per month. With detailed company data, recruiter data, and AI enrichments! Get exact results with our advanced filters on title, description, location, company description, no. of employees, industry, seniority, and easyapply.

## Actor Statistics

- Total users: 41
- Monthly users: 32
- Runs succeeded: 100.00%
- Categories: Jobs, Lead generation

## Pricing

from $2.00 / 1,000 jobs

## Input Schema

- **timeRange** (type: string): Select the time range for job listings. You can choose between hourly (1h), daily (24h), or weekly (7d). We strongly recommend running the Actor at the same time every hour/day/week to ensure that you get all jobs without duplicates
- **limit** (type: integer): Maximum number of jobs to return per run. The minimum is 10 and the maximum is 5,000. Please set the memory to 1GB for runs above 2,000 jobs.
- **titleSearch** (type: array): Array of job titles to search for. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)
- **titleExclusionSearch** (type: array): Array of job titles to exclude. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)
- **locationSearch** (type: array): Array of locations to search for. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.). Please do not use any abbreviations. NY should be New York, US should be United States
- **locationExclusionSearch** (type: array): Array of locations to exclude. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.) Please do not use any abbreviations. NY should be New York, US should be United States
- **descriptionSearch** (type: array): Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to search in job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)
- **descriptionExclusionSearch** (type: array): Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to exclude from job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)
- **organizationSearch** (type: array): Array of organization names to search for. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugFilter to filter by LinkedIn organization slugs.
- **organizationExclusionSearch** (type: array): Array of organization names to exclude. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugExclusionFilter to filter by LinkedIn organization slugs.
- **organizationDescriptionSearch** (type: array): Array of terms to search in organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)
- **organizationDescriptionExclusionSearch** (type: array): Array of terms to exclude from organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)
- **descriptionType** (type: string): Format of the job description. Leave empty to include no description.
- **remote** (type: boolean): Filter for remote jobs only. Set to false to include all jobs. This filter is very sensitive and will include jobs that have 'remote' in the title, description, or location.
- **seniorityFilter** (type: array): Filter by seniority level. This filter is case sensitive. You can select multiple seniority levels.
- **externalApplyUrl** (type: boolean): Filter for jobs that include an external apply URL (the opposited of Easy Apply)
- **directApply** (type: boolean): Filter for jobs that can be applied to directly through LinkedIn Easy Apply
- **organizationSlugFilter** (type: array): Filter by LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/
- **organizationSlugExclusionFilter** (type: array): Exclude jobs from specific LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/
- **industryFilter** (type: array): Filter by LinkedIn industries. Use exact industry names. Industries containing commas will be automatically wrapped in quotes. You can find a list of industries on our website: https://fantastic.jobs/article/linkedin-industries
- **organizationEmployeesLte** (type: integer): Maximum number of employees in the company
- **organizationEmployeesGte** (type: integer): Minimum number of employees in the company
- **EmploymentTypeFilter** (type: array): Filter by employment type
- **removeAgency** (type: boolean): Filter out recruitment agencies, job boards and other low quality sources
- **includeAi** (type: boolean): BETA Feature: Include AI enriched fields. We enrich jobs with AI to retrieve relevant data from the job description. Please note that this performed with a one-shot prompt, so there might be some errors. We enrich over 99.9% of all jobs.
- **aiWorkArrangementFilter** (type: array): BETA Feature: Filter by work arrangement. Remote OK = remote with an office available. Remote Solely = remote with no office available. Include both to include all remote jobs.
- **aiHasSalary** (type: boolean): BETA Feature: Filter for jobs with salary information only. Set to false to include all jobs. Results include jobs that have either an AI enriched salary or a raw salary (discovered in the job posting schema).
- **aiExperienceLevelFilter** (type: array): BETA Feature: Filter by years of experience
- **aiVisaSponsorshipFilter** (type: boolean): BETA Feature: Filter for jobs offering visa sponsorship only. Set to false to include all jobs.

## API example

## Advanced LinkedIn Job Search API

- **OpenAPI Version:** `3.1.1`
- **API Version:** `0.0`

Access our real-time LinkedIn Jobs database with over 10 million new jobs per month. With detailed company data, recruiter data, and AI enrichments! Get exact results with our advanced filters on title, description, location, company description, no. of employees, industry, seniority, and easyapply.

### Servers

- **URL:** `https://api.apify.com/v2`

### Operations

#### Executes an Actor, waits for its completion, and returns Actor's dataset items in response.

- **Method:** `POST`
- **Path:** `/acts/fantastic-jobs~advanced-linkedin-job-search-api/run-sync-get-dataset-items`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`aiExperienceLevelFilter`**

  `array` — BETA Feature: Filter by years of experience

  **Items:**

  `string`, possible values: `"0-2", "2-5", "5-10", "10+"`

- **`aiHasSalary`**

  `boolean` — BETA Feature: Filter for jobs with salary information only. Set to false to include all jobs. Results include jobs that have either an AI enriched salary or a raw salary (discovered in the job posting schema).

- **`aiVisaSponsorshipFilter`**

  `boolean` — BETA Feature: Filter for jobs offering visa sponsorship only. Set to false to include all jobs.

- **`aiWorkArrangementFilter`**

  `array` — BETA Feature: Filter by work arrangement. Remote OK = remote with an office available. Remote Solely = remote with no office available. Include both to include all remote jobs.

  **Items:**

  `string`, possible values: `"On-site", "Hybrid", "Remote OK", "Remote Solely"`

- **`descriptionExclusionSearch`**

  `array` — Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to exclude from job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)

  **Items:**

  `string`

- **`descriptionSearch`**

  `array` — Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to search in job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)

  **Items:**

  `string`

- **`descriptionType`**

  `string`, possible values: `"text"`, default: `"text"` — Format of the job description. Leave empty to include no description.

- **`directApply`**

  `boolean` — Filter for jobs that can be applied to directly through LinkedIn Easy Apply

- **`EmploymentTypeFilter`**

  `array` — Filter by employment type

  **Items:**

  `string`, possible values: `"FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "OTHER"`

- **`externalApplyUrl`**

  `boolean` — Filter for jobs that include an external apply URL (the opposited of Easy Apply)

- **`includeAi`**

  `boolean` — BETA Feature: Include AI enriched fields. We enrich jobs with AI to retrieve relevant data from the job description. Please note that this performed with a one-shot prompt, so there might be some errors. We enrich over 99.9% of all jobs.

- **`industryFilter`**

  `array` — Filter by LinkedIn industries. Use exact industry names. Industries containing commas will be automatically wrapped in quotes. You can find a list of industries on our website: https://fantastic.jobs/article/linkedin-industries

  **Items:**

  `string`

- **`limit`**

  `integer`, default: `10` — Maximum number of jobs to return per run. The minimum is 10 and the maximum is 5,000. Please set the memory to 1GB for runs above 2,000 jobs.

- **`locationExclusionSearch`**

  `array` — Array of locations to exclude. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.) Please do not use any abbreviations. NY should be New York, US should be United States

  **Items:**

  `string`

- **`locationSearch`**

  `array` — Array of locations to search for. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.). Please do not use any abbreviations. NY should be New York, US should be United States

  **Items:**

  `string`

- **`organizationDescriptionExclusionSearch`**

  `array` — Array of terms to exclude from organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)

  **Items:**

  `string`

- **`organizationDescriptionSearch`**

  `array` — Array of terms to search in organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)

  **Items:**

  `string`

- **`organizationEmployeesGte`**

  `integer` — Minimum number of employees in the company

- **`organizationEmployeesLte`**

  `integer` — Maximum number of employees in the company

- **`organizationExclusionSearch`**

  `array` — Array of organization names to exclude. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugExclusionFilter to filter by LinkedIn organization slugs.

  **Items:**

  `string`

- **`organizationSearch`**

  `array` — Array of organization names to search for. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugFilter to filter by LinkedIn organization slugs.

  **Items:**

  `string`

- **`organizationSlugExclusionFilter`**

  `array` — Exclude jobs from specific LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

  **Items:**

  `string`

- **`organizationSlugFilter`**

  `array` — Filter by LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

  **Items:**

  `string`

- **`remote`**

  `boolean` — Filter for remote jobs only. Set to false to include all jobs. This filter is very sensitive and will include jobs that have 'remote' in the title, description, or location.

- **`removeAgency`**

  `boolean` — Filter out recruitment agencies, job boards and other low quality sources

- **`seniorityFilter`**

  `array` — Filter by seniority level. This filter is case sensitive. You can select multiple seniority levels.

  **Items:**

  `string`, possible values: `"Associate", "Director", "Executive", "Mid-Senior level", "Entry level", "Not Applicable", "Internship"`

- **`timeRange`**

  `string`, possible values: `"1h", "24h", "7d"`, default: `"7d"` — Select the time range for job listings. You can choose between hourly (1h), daily (24h), or weekly (7d). We strongly recommend running the Actor at the same time every hour/day/week to ensure that you get all jobs without duplicates

- **`titleExclusionSearch`**

  `array` — Array of job titles to exclude. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)

  **Items:**

  `string`

- **`titleSearch`**

  `array` — Array of job titles to search for. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)

  **Items:**

  `string`

**Example:**

```
{
  "timeRange": "7d",
  "limit": 10,
  "titleSearch": [
    ""
  ],
  "titleExclusionSearch": [
    ""
  ],
  "locationSearch": [
    ""
  ],
  "locationExclusionSearch": [
    ""
  ],
  "descriptionSearch": [
    ""
  ],
  "descriptionExclusionSearch": [
    ""
  ],
  "organizationSearch": [
    ""
  ],
  "organizationExclusionSearch": [
    ""
  ],
  "organizationDescriptionSearch": [
    ""
  ],
  "organizationDescriptionExclusionSearch": [
    ""
  ],
  "descriptionType": "text",
  "remote": true,
  "seniorityFilter": [
    "Associate"
  ],
  "externalApplyUrl": true,
  "directApply": true,
  "organizationSlugFilter": [
    ""
  ],
  "organizationSlugExclusionFilter": [
    ""
  ],
  "industryFilter": [
    ""
  ],
  "organizationEmployeesLte": 1,
  "organizationEmployeesGte": 1,
  "EmploymentTypeFilter": [
    "FULL_TIME"
  ],
  "removeAgency": true,
  "includeAi": true,
  "aiWorkArrangementFilter": [
    "On-site"
  ],
  "aiHasSalary": true,
  "aiExperienceLevelFilter": [
    "0-2"
  ],
  "aiVisaSponsorshipFilter": true
}
```

##### Responses

###### Status: 200 OK

#### Executes an Actor and returns information about the initiated run in response.

- **Method:** `POST`
- **Path:** `/acts/fantastic-jobs~advanced-linkedin-job-search-api/runs`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`aiExperienceLevelFilter`**

  `array` — BETA Feature: Filter by years of experience

  **Items:**

  `string`, possible values: `"0-2", "2-5", "5-10", "10+"`

- **`aiHasSalary`**

  `boolean` — BETA Feature: Filter for jobs with salary information only. Set to false to include all jobs. Results include jobs that have either an AI enriched salary or a raw salary (discovered in the job posting schema).

- **`aiVisaSponsorshipFilter`**

  `boolean` — BETA Feature: Filter for jobs offering visa sponsorship only. Set to false to include all jobs.

- **`aiWorkArrangementFilter`**

  `array` — BETA Feature: Filter by work arrangement. Remote OK = remote with an office available. Remote Solely = remote with no office available. Include both to include all remote jobs.

  **Items:**

  `string`, possible values: `"On-site", "Hybrid", "Remote OK", "Remote Solely"`

- **`descriptionExclusionSearch`**

  `array` — Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to exclude from job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)

  **Items:**

  `string`

- **`descriptionSearch`**

  `array` — Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to search in job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)

  **Items:**

  `string`

- **`descriptionType`**

  `string`, possible values: `"text"`, default: `"text"` — Format of the job description. Leave empty to include no description.

- **`directApply`**

  `boolean` — Filter for jobs that can be applied to directly through LinkedIn Easy Apply

- **`EmploymentTypeFilter`**

  `array` — Filter by employment type

  **Items:**

  `string`, possible values: `"FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "OTHER"`

- **`externalApplyUrl`**

  `boolean` — Filter for jobs that include an external apply URL (the opposited of Easy Apply)

- **`includeAi`**

  `boolean` — BETA Feature: Include AI enriched fields. We enrich jobs with AI to retrieve relevant data from the job description. Please note that this performed with a one-shot prompt, so there might be some errors. We enrich over 99.9% of all jobs.

- **`industryFilter`**

  `array` — Filter by LinkedIn industries. Use exact industry names. Industries containing commas will be automatically wrapped in quotes. You can find a list of industries on our website: https://fantastic.jobs/article/linkedin-industries

  **Items:**

  `string`

- **`limit`**

  `integer`, default: `10` — Maximum number of jobs to return per run. The minimum is 10 and the maximum is 5,000. Please set the memory to 1GB for runs above 2,000 jobs.

- **`locationExclusionSearch`**

  `array` — Array of locations to exclude. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.) Please do not use any abbreviations. NY should be New York, US should be United States

  **Items:**

  `string`

- **`locationSearch`**

  `array` — Array of locations to search for. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.). Please do not use any abbreviations. NY should be New York, US should be United States

  **Items:**

  `string`

- **`organizationDescriptionExclusionSearch`**

  `array` — Array of terms to exclude from organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)

  **Items:**

  `string`

- **`organizationDescriptionSearch`**

  `array` — Array of terms to search in organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)

  **Items:**

  `string`

- **`organizationEmployeesGte`**

  `integer` — Minimum number of employees in the company

- **`organizationEmployeesLte`**

  `integer` — Maximum number of employees in the company

- **`organizationExclusionSearch`**

  `array` — Array of organization names to exclude. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugExclusionFilter to filter by LinkedIn organization slugs.

  **Items:**

  `string`

- **`organizationSearch`**

  `array` — Array of organization names to search for. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugFilter to filter by LinkedIn organization slugs.

  **Items:**

  `string`

- **`organizationSlugExclusionFilter`**

  `array` — Exclude jobs from specific LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

  **Items:**

  `string`

- **`organizationSlugFilter`**

  `array` — Filter by LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

  **Items:**

  `string`

- **`remote`**

  `boolean` — Filter for remote jobs only. Set to false to include all jobs. This filter is very sensitive and will include jobs that have 'remote' in the title, description, or location.

- **`removeAgency`**

  `boolean` — Filter out recruitment agencies, job boards and other low quality sources

- **`seniorityFilter`**

  `array` — Filter by seniority level. This filter is case sensitive. You can select multiple seniority levels.

  **Items:**

  `string`, possible values: `"Associate", "Director", "Executive", "Mid-Senior level", "Entry level", "Not Applicable", "Internship"`

- **`timeRange`**

  `string`, possible values: `"1h", "24h", "7d"`, default: `"7d"` — Select the time range for job listings. You can choose between hourly (1h), daily (24h), or weekly (7d). We strongly recommend running the Actor at the same time every hour/day/week to ensure that you get all jobs without duplicates

- **`titleExclusionSearch`**

  `array` — Array of job titles to exclude. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)

  **Items:**

  `string`

- **`titleSearch`**

  `array` — Array of job titles to search for. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)

  **Items:**

  `string`

**Example:**

```
{
  "timeRange": "7d",
  "limit": 10,
  "titleSearch": [
    ""
  ],
  "titleExclusionSearch": [
    ""
  ],
  "locationSearch": [
    ""
  ],
  "locationExclusionSearch": [
    ""
  ],
  "descriptionSearch": [
    ""
  ],
  "descriptionExclusionSearch": [
    ""
  ],
  "organizationSearch": [
    ""
  ],
  "organizationExclusionSearch": [
    ""
  ],
  "organizationDescriptionSearch": [
    ""
  ],
  "organizationDescriptionExclusionSearch": [
    ""
  ],
  "descriptionType": "text",
  "remote": true,
  "seniorityFilter": [
    "Associate"
  ],
  "externalApplyUrl": true,
  "directApply": true,
  "organizationSlugFilter": [
    ""
  ],
  "organizationSlugExclusionFilter": [
    ""
  ],
  "industryFilter": [
    ""
  ],
  "organizationEmployeesLte": 1,
  "organizationEmployeesGte": 1,
  "EmploymentTypeFilter": [
    "FULL_TIME"
  ],
  "removeAgency": true,
  "includeAi": true,
  "aiWorkArrangementFilter": [
    "On-site"
  ],
  "aiHasSalary": true,
  "aiExperienceLevelFilter": [
    "0-2"
  ],
  "aiVisaSponsorshipFilter": true
}
```

##### Responses

###### Status: 200 OK

\####### Content-Type: application/json

- **`data`**

  `object`

  - **`actId`**

    `string`

  - **`buildId`**

    `string`

  - **`buildNumber`**

    `string`

  - **`containerUrl`**

    `string`

  - **`defaultDatasetId`**

    `string`

  - **`defaultKeyValueStoreId`**

    `string`

  - **`defaultRequestQueueId`**

    `string`

  - **`finishedAt`**

    `string`, format: `date-time`

  - **`id`**

    `string`

  - **`meta`**

    `object`

    - **`origin`**

      `string`

    - **`userAgent`**

      `string`

  - **`options`**

    `object`

    - **`build`**

      `string`

    - **`diskMbytes`**

      `integer`

    - **`memoryMbytes`**

      `integer`

    - **`timeoutSecs`**

      `integer`

  - **`startedAt`**

    `string`, format: `date-time`

  - **`stats`**

    `object`

    - **`computeUnits`**

      `integer`

    - **`inputBodyLen`**

      `integer`

    - **`rebootCount`**

      `integer`

    - **`restartCount`**

      `integer`

    - **`resurrectCount`**

      `integer`

  - **`status`**

    `string`

  - **`usage`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `integer`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`usageTotalUsd`**

    `number`

  - **`usageUsd`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `number`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`userId`**

    `string`

**Example:**

```
{
  "data": {
    "id": "",
    "actId": "",
    "userId": "",
    "startedAt": "2025-01-08T00:00:00.000Z",
    "finishedAt": "2025-01-08T00:00:00.000Z",
    "status": "READY",
    "meta": {
      "origin": "API",
      "userAgent": ""
    },
    "stats": {
      "inputBodyLen": 2000,
      "rebootCount": 0,
      "restartCount": 0,
      "resurrectCount": 0,
      "computeUnits": 0
    },
    "options": {
      "build": "latest",
      "timeoutSecs": 300,
      "memoryMbytes": 1024,
      "diskMbytes": 2048
    },
    "buildId": "",
    "defaultKeyValueStoreId": "",
    "defaultDatasetId": "",
    "defaultRequestQueueId": "",
    "buildNumber": "1.0.0",
    "containerUrl": "",
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 1,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    },
    "usageTotalUsd": 0.00005,
    "usageUsd": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 0.00005,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    }
  }
}
```

#### Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.

- **Method:** `POST`
- **Path:** `/acts/fantastic-jobs~advanced-linkedin-job-search-api/run-sync`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`aiExperienceLevelFilter`**

  `array` — BETA Feature: Filter by years of experience

  **Items:**

  `string`, possible values: `"0-2", "2-5", "5-10", "10+"`

- **`aiHasSalary`**

  `boolean` — BETA Feature: Filter for jobs with salary information only. Set to false to include all jobs. Results include jobs that have either an AI enriched salary or a raw salary (discovered in the job posting schema).

- **`aiVisaSponsorshipFilter`**

  `boolean` — BETA Feature: Filter for jobs offering visa sponsorship only. Set to false to include all jobs.

- **`aiWorkArrangementFilter`**

  `array` — BETA Feature: Filter by work arrangement. Remote OK = remote with an office available. Remote Solely = remote with no office available. Include both to include all remote jobs.

  **Items:**

  `string`, possible values: `"On-site", "Hybrid", "Remote OK", "Remote Solely"`

- **`descriptionExclusionSearch`**

  `array` — Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to exclude from job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)

  **Items:**

  `string`

- **`descriptionSearch`**

  `array` — Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to search in job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)

  **Items:**

  `string`

- **`descriptionType`**

  `string`, possible values: `"text"`, default: `"text"` — Format of the job description. Leave empty to include no description.

- **`directApply`**

  `boolean` — Filter for jobs that can be applied to directly through LinkedIn Easy Apply

- **`EmploymentTypeFilter`**

  `array` — Filter by employment type

  **Items:**

  `string`, possible values: `"FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "OTHER"`

- **`externalApplyUrl`**

  `boolean` — Filter for jobs that include an external apply URL (the opposited of Easy Apply)

- **`includeAi`**

  `boolean` — BETA Feature: Include AI enriched fields. We enrich jobs with AI to retrieve relevant data from the job description. Please note that this performed with a one-shot prompt, so there might be some errors. We enrich over 99.9% of all jobs.

- **`industryFilter`**

  `array` — Filter by LinkedIn industries. Use exact industry names. Industries containing commas will be automatically wrapped in quotes. You can find a list of industries on our website: https://fantastic.jobs/article/linkedin-industries

  **Items:**

  `string`

- **`limit`**

  `integer`, default: `10` — Maximum number of jobs to return per run. The minimum is 10 and the maximum is 5,000. Please set the memory to 1GB for runs above 2,000 jobs.

- **`locationExclusionSearch`**

  `array` — Array of locations to exclude. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.) Please do not use any abbreviations. NY should be New York, US should be United States

  **Items:**

  `string`

- **`locationSearch`**

  `array` — Array of locations to search for. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.). Please do not use any abbreviations. NY should be New York, US should be United States

  **Items:**

  `string`

- **`organizationDescriptionExclusionSearch`**

  `array` — Array of terms to exclude from organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)

  **Items:**

  `string`

- **`organizationDescriptionSearch`**

  `array` — Array of terms to search in organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)

  **Items:**

  `string`

- **`organizationEmployeesGte`**

  `integer` — Minimum number of employees in the company

- **`organizationEmployeesLte`**

  `integer` — Maximum number of employees in the company

- **`organizationExclusionSearch`**

  `array` — Array of organization names to exclude. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugExclusionFilter to filter by LinkedIn organization slugs.

  **Items:**

  `string`

- **`organizationSearch`**

  `array` — Array of organization names to search for. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugFilter to filter by LinkedIn organization slugs.

  **Items:**

  `string`

- **`organizationSlugExclusionFilter`**

  `array` — Exclude jobs from specific LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

  **Items:**

  `string`

- **`organizationSlugFilter`**

  `array` — Filter by LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

  **Items:**

  `string`

- **`remote`**

  `boolean` — Filter for remote jobs only. Set to false to include all jobs. This filter is very sensitive and will include jobs that have 'remote' in the title, description, or location.

- **`removeAgency`**

  `boolean` — Filter out recruitment agencies, job boards and other low quality sources

- **`seniorityFilter`**

  `array` — Filter by seniority level. This filter is case sensitive. You can select multiple seniority levels.

  **Items:**

  `string`, possible values: `"Associate", "Director", "Executive", "Mid-Senior level", "Entry level", "Not Applicable", "Internship"`

- **`timeRange`**

  `string`, possible values: `"1h", "24h", "7d"`, default: `"7d"` — Select the time range for job listings. You can choose between hourly (1h), daily (24h), or weekly (7d). We strongly recommend running the Actor at the same time every hour/day/week to ensure that you get all jobs without duplicates

- **`titleExclusionSearch`**

  `array` — Array of job titles to exclude. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)

  **Items:**

  `string`

- **`titleSearch`**

  `array` — Array of job titles to search for. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)

  **Items:**

  `string`

**Example:**

```
{
  "timeRange": "7d",
  "limit": 10,
  "titleSearch": [
    ""
  ],
  "titleExclusionSearch": [
    ""
  ],
  "locationSearch": [
    ""
  ],
  "locationExclusionSearch": [
    ""
  ],
  "descriptionSearch": [
    ""
  ],
  "descriptionExclusionSearch": [
    ""
  ],
  "organizationSearch": [
    ""
  ],
  "organizationExclusionSearch": [
    ""
  ],
  "organizationDescriptionSearch": [
    ""
  ],
  "organizationDescriptionExclusionSearch": [
    ""
  ],
  "descriptionType": "text",
  "remote": true,
  "seniorityFilter": [
    "Associate"
  ],
  "externalApplyUrl": true,
  "directApply": true,
  "organizationSlugFilter": [
    ""
  ],
  "organizationSlugExclusionFilter": [
    ""
  ],
  "industryFilter": [
    ""
  ],
  "organizationEmployeesLte": 1,
  "organizationEmployeesGte": 1,
  "EmploymentTypeFilter": [
    "FULL_TIME"
  ],
  "removeAgency": true,
  "includeAi": true,
  "aiWorkArrangementFilter": [
    "On-site"
  ],
  "aiHasSalary": true,
  "aiExperienceLevelFilter": [
    "0-2"
  ],
  "aiVisaSponsorshipFilter": true
}
```

##### Responses

###### Status: 200 OK

### Schemas

#### inputSchema

- **Type:**`object`

* **`aiExperienceLevelFilter`**

  `array` — BETA Feature: Filter by years of experience

  **Items:**

  `string`, possible values: `"0-2", "2-5", "5-10", "10+"`

* **`aiHasSalary`**

  `boolean` — BETA Feature: Filter for jobs with salary information only. Set to false to include all jobs. Results include jobs that have either an AI enriched salary or a raw salary (discovered in the job posting schema).

* **`aiVisaSponsorshipFilter`**

  `boolean` — BETA Feature: Filter for jobs offering visa sponsorship only. Set to false to include all jobs.

* **`aiWorkArrangementFilter`**

  `array` — BETA Feature: Filter by work arrangement. Remote OK = remote with an office available. Remote Solely = remote with no office available. Include both to include all remote jobs.

  **Items:**

  `string`, possible values: `"On-site", "Hybrid", "Remote OK", "Remote Solely"`

* **`descriptionExclusionSearch`**

  `array` — Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to exclude from job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)

  **Items:**

  `string`

* **`descriptionSearch`**

  `array` — Warning, this search might be too intenstive for the 7d API. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. Array of terms to search in job title & description. Use :\* for prefix matching (e.g., 'Python:\*' will match 'Python', 'Pythonic', etc.)

  **Items:**

  `string`

* **`descriptionType`**

  `string`, possible values: `"text"`, default: `"text"` — Format of the job description. Leave empty to include no description.

* **`directApply`**

  `boolean` — Filter for jobs that can be applied to directly through LinkedIn Easy Apply

* **`EmploymentTypeFilter`**

  `array` — Filter by employment type

  **Items:**

  `string`, possible values: `"FULL_TIME", "PART_TIME", "CONTRACTOR", "TEMPORARY", "INTERN", "VOLUNTEER", "PER_DIEM", "OTHER"`

* **`externalApplyUrl`**

  `boolean` — Filter for jobs that include an external apply URL (the opposited of Easy Apply)

* **`includeAi`**

  `boolean` — BETA Feature: Include AI enriched fields. We enrich jobs with AI to retrieve relevant data from the job description. Please note that this performed with a one-shot prompt, so there might be some errors. We enrich over 99.9% of all jobs.

* **`industryFilter`**

  `array` — Filter by LinkedIn industries. Use exact industry names. Industries containing commas will be automatically wrapped in quotes. You can find a list of industries on our website: https://fantastic.jobs/article/linkedin-industries

  **Items:**

  `string`

* **`limit`**

  `integer`, default: `10` — Maximum number of jobs to return per run. The minimum is 10 and the maximum is 5,000. Please set the memory to 1GB for runs above 2,000 jobs.

* **`locationExclusionSearch`**

  `array` — Array of locations to exclude. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.) Please do not use any abbreviations. NY should be New York, US should be United States

  **Items:**

  `string`

* **`locationSearch`**

  `array` — Array of locations to search for. Use :\* for prefix matching (e.g., 'New:\*' will match 'New York', 'New Jersey', etc.). Please do not use any abbreviations. NY should be New York, US should be United States

  **Items:**

  `string`

* **`organizationDescriptionExclusionSearch`**

  `array` — Array of terms to exclude from organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)

  **Items:**

  `string`

* **`organizationDescriptionSearch`**

  `array` — Array of terms to search in organization description. Use :\* for prefix matching (e.g., 'Tech:\*' will match 'Technology', 'Technical', etc.)

  **Items:**

  `string`

* **`organizationEmployeesGte`**

  `integer` — Minimum number of employees in the company

* **`organizationEmployeesLte`**

  `integer` — Maximum number of employees in the company

* **`organizationExclusionSearch`**

  `array` — Array of organization names to exclude. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugExclusionFilter to filter by LinkedIn organization slugs.

  **Items:**

  `string`

* **`organizationSearch`**

  `array` — Array of organization names to search for. Use :\* for prefix matching (e.g., 'Google:\*' will match 'Google', 'Google Cloud', etc.) Getting several companies with the same name? Use the organizationSlugFilter to filter by LinkedIn organization slugs.

  **Items:**

  `string`

* **`organizationSlugExclusionFilter`**

  `array` — Exclude jobs from specific LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

  **Items:**

  `string`

* **`organizationSlugFilter`**

  `array` — Filter by LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

  **Items:**

  `string`

* **`remote`**

  `boolean` — Filter for remote jobs only. Set to false to include all jobs. This filter is very sensitive and will include jobs that have 'remote' in the title, description, or location.

* **`removeAgency`**

  `boolean` — Filter out recruitment agencies, job boards and other low quality sources

* **`seniorityFilter`**

  `array` — Filter by seniority level. This filter is case sensitive. You can select multiple seniority levels.

  **Items:**

  `string`, possible values: `"Associate", "Director", "Executive", "Mid-Senior level", "Entry level", "Not Applicable", "Internship"`

* **`timeRange`**

  `string`, possible values: `"1h", "24h", "7d"`, default: `"7d"` — Select the time range for job listings. You can choose between hourly (1h), daily (24h), or weekly (7d). We strongly recommend running the Actor at the same time every hour/day/week to ensure that you get all jobs without duplicates

* **`titleExclusionSearch`**

  `array` — Array of job titles to exclude. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)

  **Items:**

  `string`

* **`titleSearch`**

  `array` — Array of job titles to search for. Use :\* for prefix matching (e.g., 'Soft:\*' will match 'Software', 'Softball', etc.)

  **Items:**

  `string`

**Example:**

```
{
  "timeRange": "7d",
  "limit": 10,
  "titleSearch": [
    ""
  ],
  "titleExclusionSearch": [
    ""
  ],
  "locationSearch": [
    ""
  ],
  "locationExclusionSearch": [
    ""
  ],
  "descriptionSearch": [
    ""
  ],
  "descriptionExclusionSearch": [
    ""
  ],
  "organizationSearch": [
    ""
  ],
  "organizationExclusionSearch": [
    ""
  ],
  "organizationDescriptionSearch": [
    ""
  ],
  "organizationDescriptionExclusionSearch": [
    ""
  ],
  "descriptionType": "text",
  "remote": true,
  "seniorityFilter": [
    "Associate"
  ],
  "externalApplyUrl": true,
  "directApply": true,
  "organizationSlugFilter": [
    ""
  ],
  "organizationSlugExclusionFilter": [
    ""
  ],
  "industryFilter": [
    ""
  ],
  "organizationEmployeesLte": 1,
  "organizationEmployeesGte": 1,
  "EmploymentTypeFilter": [
    "FULL_TIME"
  ],
  "removeAgency": true,
  "includeAi": true,
  "aiWorkArrangementFilter": [
    "On-site"
  ],
  "aiHasSalary": true,
  "aiExperienceLevelFilter": [
    "0-2"
  ],
  "aiVisaSponsorshipFilter": true
}
```

#### runsResponseSchema

- **Type:**`object`

* **`data`**

  `object`

  - **`actId`**

    `string`

  - **`buildId`**

    `string`

  - **`buildNumber`**

    `string`

  - **`containerUrl`**

    `string`

  - **`defaultDatasetId`**

    `string`

  - **`defaultKeyValueStoreId`**

    `string`

  - **`defaultRequestQueueId`**

    `string`

  - **`finishedAt`**

    `string`, format: `date-time`

  - **`id`**

    `string`

  - **`meta`**

    `object`

    - **`origin`**

      `string`

    - **`userAgent`**

      `string`

  - **`options`**

    `object`

    - **`build`**

      `string`

    - **`diskMbytes`**

      `integer`

    - **`memoryMbytes`**

      `integer`

    - **`timeoutSecs`**

      `integer`

  - **`startedAt`**

    `string`, format: `date-time`

  - **`stats`**

    `object`

    - **`computeUnits`**

      `integer`

    - **`inputBodyLen`**

      `integer`

    - **`rebootCount`**

      `integer`

    - **`restartCount`**

      `integer`

    - **`resurrectCount`**

      `integer`

  - **`status`**

    `string`

  - **`usage`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `integer`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`usageTotalUsd`**

    `number`

  - **`usageUsd`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `number`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`userId`**

    `string`

**Example:**

```
{
  "data": {
    "id": "",
    "actId": "",
    "userId": "",
    "startedAt": "2025-01-08T00:00:00.000Z",
    "finishedAt": "2025-01-08T00:00:00.000Z",
    "status": "READY",
    "meta": {
      "origin": "API",
      "userAgent": ""
    },
    "stats": {
      "inputBodyLen": 2000,
      "rebootCount": 0,
      "restartCount": 0,
      "resurrectCount": 0,
      "computeUnits": 0
    },
    "options": {
      "build": "latest",
      "timeoutSecs": 300,
      "memoryMbytes": 1024,
      "diskMbytes": 2048
    },
    "buildId": "",
    "defaultKeyValueStoreId": "",
    "defaultDatasetId": "",
    "defaultRequestQueueId": "",
    "buildNumber": "1.0.0",
    "containerUrl": "",
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 1,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    },
    "usageTotalUsd": 0.00005,
    "usageUsd": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 0.00005,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    }
  }
}
```

The perfect actor for applications requiring high quality LinkedIn jobs, every week, day, or hour!
We aim to index all LinkedIn jobs worldwide, over 10 million roles per month!

The maximum number of jobs per run is 5,000. If you wish to go over this number, please reach out to us!

### Technical Details

- This Actor calls a database that includes LinkedIn jobs posted during the last hour, day, or week. Our scrapers are continiously indexed new roles, several hundreds of thousands every day!

- You may choose a time range using the 'Time Range' parameter. Please note that there are slight differences between the ranges:

**1h:** Includes jobs that have been indexed by our systems during the last hour

**24h:** Includes jobs that have been indexed by our systems during the last 24 hours

**7d:** Includes jobs that have been posted during the last 7 days

- The job data is returned in our APIs with a one hour delay. For example, if a job is posted at 06:00 UTC, it will appear between 07:00 and 08:00 UTC

- All jobs in the database are unique based on their URL. However, organizations occasionally create duplicates themselves. More commonly, organizations sometimes create the same job listing for multiple cities or states. If you wish to create a rich and unique dataset, we recommend further deduplication on title + organization, or title + organization + locations

- BETA Feature. We extract useful job details from the description with an LLM. We are currently enriching over 99.9% of all **Technology** jobs. Please note that our enrichment is a simple one-shot prompt on each job description, so there might be some errors.

- There are a number of jobs on LinkedIn without jobposting schema. We also index these but they have slightly less features. These are marked with the field no\_jb\_schema=true:

- Where included we provide the external apply url.

### FAQ

**Wait, this isn't a scraper?**\
Technically, no, or yes?
We scrape all jobs in the backend, and you're accessing our database with scraped jobs with a small delay. This is a much more reliable system then scraping LinkedIn directly. This also allows us to enrich and derive data before sharing it with you, adding more value per job!

**Can I see how many jobs will be returned for my query**

Not at the moment, please test with the free plan or create an issue and we'll have a look for you! Make sure to include all parameters.

**How can I retrieve a XML with the jobs from my latest run?**

- Follow the documentation to create a saved task: https://docs.apify.com/platform/actors/running/tasks
- Create a schedule for the task: https://docs.apify.com/platform/schedules
- Copy the following endpoint to access the latest succesfull run from your scheduled task:
  - Replace *task-id* with the the id of your task, which is the last string of characters in the task's url:
    ![Screenshot showing task ID location](https://mhiqwtehsmorqwewxvqx.supabase.co/storage/v1/object/public/Fantastic-Jobs//Screenshot%202025-06-20%20110947.png)

  - Replace *apiKey* with your api key. You can find your API key at 'Settings' --> 'API & Integrations'

`https://api.apify.com/v2/actor-tasks/*task-id*/runs/last/dataset/items?token=*apiKey*&format=xml&status=SUCCEEDED`

You can export in several formats, not just XML. Please see the documentation for more information:

https://docs.apify.com/api/v2/actor-task-runs-last-get

https://docs.apify.com/api/v2/dataset-items-get

### Input Parameters

#### Maximum Jobs

The maximum number of jobs that can be retrieved in a single run. Must be between 10 and 5,000.

Please set the memory to 512 for runs above 2,000 jobs!

#### Search Parameters

Our search parameters allow you to include or exclude jobs based on keywords. You may include :\_ for prefix matching (e.g., 'Soft:\_' will match 'Software', 'Softball', etc.)

Don't use abbreviations for location searches. NY should be New York, US should be United States

WARNING. The description searches are VERY intensive and at risk of time-out. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. If you receive errors while using descriptionSearch or descriptionExclusionSearch, please reach out to us.

- `titleSearch`: Terms to search in job titles
- `titleExclusionSearch`: Terms to exclude from job titles
- `locationSearch`: Terms to search in job locations
- `locationExclusionSearch`: Terms to exclude from job locations
- `descriptionSearch`: Terms to search in job descriptions
- `descriptionExclusionSearch`: Terms to exclude from job descriptions
- `organizationSearch`: Terms to search in organization names
- `organizationExclusionSearch`: Terms to exclude from organization names
- `organizationDescriptionSearch`: Terms to search in organization descriptions
- `organizationDescriptionExclusionSearch`: Terms to exclude from organization descriptions

#### Description Type

Type of description to fetch. Options:

- `text`: Plain text description

#### Remote

Filter for remote jobs only. Set to false to include all jobs. This filter is very sensitive and will include jobs that have 'remote' in the title, description, or location.

#### LinkedIn Filters

- `seniorityFilter`: Filter by seniority level. Available options: "Associate", "Director", "Executive", "Mid-Senior level", "Entry level", "Not Applicable", "Internship"

- `external_apply_url`: Filter for jobs that include an external apply URL (the opposited of Easy Apply)

- `directApply`: Filter for jobs that can be applied to directly through LinkedIn Easy Apply

- `organizationSlugFilter`: Filter by LinkedIn organization slugs (exact match). The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/

- `organizationSlugExclusionFilter`: Exclude jobs from specific LinkedIn organization slugs (exact match)

- `industryFilter`: Filter by LinkedIn industries. Use exact industry names. Industries containing commas will be automatically wrapped in quotes. You can find a list of industries on our website: https://fantastic.jobs/article/linkedin-industries

- `organizationEmployeesLte`: Maximum number of employees in the company

- `organizationEmployeesGte`: Minimum number of employees in the company

- `removeAgency`: Filter out recruitment agencies, job boards and other low quality sources

- `EmploymentTypeFilter`: Filter by employment type. Available options: `FULL_TIME`, `PART_TIME`, `CONTRACTOR`, `TEMPORARY`, `INTERN`, `VOLUNTEER`, `PER_DIEM`, `OTHER`

#### AI Filters

- `includeAi`: BETA Feature: Include AI enriched fields. We enrich jobs with AI to retrieve relevant data from the job description. Please note that this performed with a one-shot prompt, so there might be some errors. **We are currently only enriching technology roles**

- `aiWorkArrangementFilter`: BETA Feature: Filter by work arrangement. Remote OK = remote with an office available. Remote Solely = remote with no office available. Include both to include all remote jobs. Available options: `On-site`, `Hybrid`, `Remote OK`, `Remote Solely`

- `aiHasSalary`: BETA Feature: Filter for jobs with salary information only. Set to false to include all jobs. Results include jobs that have either an AI enriched salary or a raw salary (discovered in the job posting schema).

- `aiExperienceLevelFilter`: BETA Feature: Filter by years of experience. Available options: `0-2`, `2-5`, `5-10`, `10+`

- `aiVisaSponsorshipFilter`: BETA Feature: Filter for jobs offering visa sponsorship only. Set to false to include all jobs.

### Output Schema

#### **Output Fields**

| Name | Description|Type|
| -------- | ------- | ------- |
|id| The job's internal ID. Used for expiration | text |
|title| Job Title| text |
|organization| Name of the hiring organization | text
|organization\_url| URL to the organization's page | text
|organization\_logo| URL to the organization's logo | text
|date\_posted| Date & Time of posting | timestamp
|date\_created| Date & Time of indexing in our systems | timestamp
|date\_validthrough|Date & Time of expiration, is null in most cases | timestamp
|locations\_raw| Raw location data, per the [Google for Jobs requirements](https://developers.google.com/search/docs/appearance/structured-data/job-posting#job-posting-definition) | json\[]
|locations\_alt\_raw| Complimentary raw location field for ATS with limited location data, currently only in use for Workday | text\[]
|locations\_derived| Derived location data, which is the raw data (locations\_raw or location\_requirements\_raw) matched with a database. This is the field where you search locations on. | text\[] \[{city, admin (state), country}]
|location\_type| To identify remote jobs: 'TELECOMMUTE' per the [Google for Jobs requirements](https://developers.google.com/search/docs/appearance/structured-data/job-posting#job-posting-definition) | text
|location\_requirements\_raw| Location requirement to accompany remote (TELECOMMUTE) jobs per the [Google for Jobs requirements](https://developers.google.com/search/docs/appearance/structured-data/job-posting#job-posting-definition).  | json\[]
|salary\_raw| raw Salary data per the [Google for Jobs requirements](https://developers.google.com/search/docs/appearance/structured-data/job-posting#job-posting-definition)| json
|employment\_type| Types like 'Full Time", "Contract", "Internship" etc. Is an array but most commonly just a single value. | text\[]
|url| The URL of the job, can be used to direct traffic to apply for the job | text
|source| the source ATS or career site | text
|source\_type| either 'ats' or 'career-site' | text
|source\_domain| the domain of the career site| text
|description\_text| plain text job description - if included | text
|description\_html| raw HTML job description - if included | text
|cities\_derived| All cities from locations\_derived |json\[]
|regions\_derived| All regions/states/provinces from locations\_derived| json\[]
|countries\_derived| All countries from locations\_derived | json\[]
|timezones\_derived| Timezones derived from locations\_derived | json\[]
|lats\_derived| lats derived from locations\_derived | json\[]
|lngs\_derived| lngs derived from locations\_derived | json\[]
remote\_derived | jobs flagged as remote by inclusion of the word 'remote' in title, description, raw location, and the offical google jobs 'TELECOMMUTE' schema | bool
seniority | Seniority level: Associate, Director, Executive, Mid-Senior level, Entry level, Not Applicable, Internship | text
directapply | 'true' if the end user can apply directly on the job page, in this case LinkedIn "easyapply". False if the job contains a link to a 3rd party | bool
external\_apply\_url | The external application url, where included. We don't clean this url so there might be trackers (src, utm\_, etc) |	text
no\_jb\_schema |Set to true if the job was indexed from LinkedIn without JobPosting schema. These jobs have slightly different data from jobs with a schema: - locations\_raw has all location data under 'addressLocality' instead of being split up by region/country/locality. (locations\_derived still has the split) - orglogo and jobimage both use the same company logo as seen on the page - The following fields are not included: locationtype, locationrequirements, salary\_raw, datevalidthrough |	bool
recruiter\_name | name of the recruiter (if present) | text
recruiter\_title | title of the recruiter (if present) | text
recruiter\_url | url to the LI profile of the recruiter (if present) | text
linkedin\_org\_employees | the number of employees within the job's company according to LI | int
linkedin\_org\_url | url to the company page | text
linkedin\_org\_size | the number of employees within the job's company according to the company | text
linkedin\_org\_slogan | the company's slogan | text
linkedin\_org\_industry | the company's industry. This is a fixed list that the company can choose from, so could be useful for classification. Keep in mind that this is in the language of the company's HQ | text
linkedin\_org\_followers | the company's followers on LI | int
linkedin\_org\_headquarters | the company's HQ location | text
linkedin\_org\_type | the company's type, like 'privately held', 'public', etc | text
linkedin\_org\_foundeddate | the company's founded date | text
linkedin\_org\_specialties | a comma delimited list of the company's specialties | text\[]
linkedin\_org\_locations | the full address of the company's locations|text\[]
linkedin\_org\_description | the description of the company's linkedin page | text
linkedin\_org\_recruitment\_agency\_derived | If the company is a recruitment agency, true or false. We identify this for each company using an LLM. The accuracy may vary and job boards might be flagged as false. | bool
linkedin\_org\_slug | The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/ | text

#### **AI Output Fields**

BETA Feature **We are currently only enriching technology roles**

Set include\_ai to true to include the fields in this table
These fields are derived from the text with an LLM and might contain mistakes.

| Name | Description|Type|
| -------- | ------- | ------- |
ai\_salary\_currency | The salary currency |text
ai\_salary\_value | The salary value, if there's a single salary with no salary range | numeric
ai\_salary\_minvalue | The salary minimum salary in a range | numeric
ai\_salary\_maxvalue | The salary maximum salary in a range| numeric
ai\_salary\_unittext | If the salary is per HOUR/DAY/WEEK/MONTH/YEAR | text
ai\_benefits | An array with other non-salary benefits mentioned in the job listing | text\[]
ai\_experience\_level | years of experience required, one of: 0-2, 2-5, 5-10, or 10+ | text
ai\_work\_arrangement | Remote Solely/Remote OK/Hybrid/On-site. Remote solely is remote without an office available, Remote OK is remote with an optional office. |text
ai\_work\_arrangement\_office\_days | when work\_arrangement is Hybrid, returns the number of days per week in office | bigint
ai\_remote\_location | When remote but only in a certain location, returns the location | text\[]
ai\_remote\_location\_derived | Derived remote location data, which is the raw data (ai\_remote\_location) matched with a database of locations. This is the same database as the locations\_derived field. | text\[]
ai\_key\_skills | An array of key skills mentioned in the job listing | text\[]
ai\_hiring\_manager\_name | If present, the hiring manager name | text
ai\_hiring\_manager\_email\_address | If present, the hiring manager's email address | text
ai\_core\_responsibilities | A 2-sentence summary of the job's core responsibilities | text
ai\_requirements\_summary | A 2-sentence summary of the job's requirements | text
ai\_working\_hours | The number of required working hours. Defaults to 40 if not mentioned | bigint
ai\_employment\_type | One or more employment types as derived from the job description: FULL\_TIME/PART\_TIME/CONTRACTOR/TEMPORARY/INTERN/VOLUNTEER/PER\_DIEM/OTHER | text\[]
ai\_job\_language | The language of the job description | text
ai\_visa\_sponsorship  | Returns true if the job description mentions Visa sponsorship opportunities | boolean
