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

# HarvestAPI: Search Jobs

> Search LinkedIn jobs by title, company, location, and job filters. Includes SDK V2 guidance, input constraints, response fields, and Deepline credit cost.

Search LinkedIn jobs by title, company, location, and job filters.

<Info>
  Tool ID: `harvestapi_search_jobs`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'harvestapi_search_jobs',
  {
    "search": "software companies hiring engineers",
    "companyId": "company_123",
    "location": "example"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute harvestapi_search_jobs --input '{
  "search": "software companies hiring engineers",
  "companyId": "company_123",
  "location": "example"
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "data": {
    "elements": [
      {
        "id": "id_123"
      }
    ],
    "pagination": {
      "totalPages": 123,
      "totalElements": 123,
      "pageNumber": 123
    },
    "status": 1
  }
}
```

Use `deepline tools get harvestapi_search_jobs --json` for the latest machine-readable contract.

## Input reference

Search LinkedIn jobs by title, company, location, and more.

| Name                        | Type                                                                                           | Required | Default | Details                                                                                                                                                                                                                                                                                                                |
| --------------------------- | ---------------------------------------------------------------------------------------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.search`            | `string`                                                                                       | No       | —       | Search jobs by title                                                                                                                                                                                                                                                                                                   |
| `payload.companyId`         | `string`                                                                                       | No       | —       | Filter by company ID. One value or multiple comma-separated.                                                                                                                                                                                                                                                           |
| `payload.location`          | `string`                                                                                       | No       | —       | Filter by location text                                                                                                                                                                                                                                                                                                |
| `payload.geoId`             | `string`                                                                                       | No       | —       | Filter by location as LinkedIn Geo ID. Overrides the location query param. Use the /linkedin/geo-id-search endpoint to find the Geo ID                                                                                                                                                                                 |
| `payload.sortBy`            | `"relevance" \| "date"`                                                                        | No       | —       | Sort by field. Supported values: 'relevance', 'date' Allowed: `relevance`, `date`.                                                                                                                                                                                                                                     |
| `payload.workplaceType`     | `string`                                                                                       | No       | —       | Filter by workplace type. One or multiple values comma-separated. Supported values: 'office', 'hybrid', 'remote' Pattern: `^(office\|hybrid\|remote)(,(office\|hybrid\|remote))*$`.                                                                                                                                    |
| `payload.employmentType`    | `string`                                                                                       | No       | —       | Filter by employment type. One or multiple values comma-separated. Supported values: 'full-time', 'part-time', 'contract', 'temporary', 'internship' Pattern: `^(full-time\|part-time\|contract\|temporary\|internship)(,(full-time\|part-time\|contract\|temporary\|internship))*$`.                                  |
| `payload.salary`            | `"40k+" \| "60k+" \| "80k+" \| "100k+" \| "120k+" \| "140k+" \| "160k+" \| "180k+" \| "200k+"` | No       | —       | Filter by salary range. Supported values: '40k+', '60k+', '80k+', '100k+', '120k+', '140k+', '160k+', '180k+', '200k+' Allowed: `40k+`, `60k+`, `80k+`, `100k+`, `120k+`, `140k+`, `160k+`, `180k+`, `200k+`.                                                                                                          |
| `payload.postedLimit`       | `"24h" \| "week" \| "month"`                                                                   | No       | —       | Filter posts by maximum posted date. Supported values: '24h', 'week', 'month' Allowed: `24h`, `week`, `month`.                                                                                                                                                                                                         |
| `payload.experienceLevel`   | `string`                                                                                       | No       | —       | Filter by experience level. One or multiple values comma-separated. Supported values: 'internship', 'entry', 'associate', 'mid-senior', 'director', 'executive' Pattern: `^(internship\|entry\|associate\|mid-senior\|director\|executive)(,(internship\|entry\|associate\|mid-senior\|director\|executive))*$`.       |
| `payload.industryId`        | `string`                                                                                       | No       | —       | Filter by industry ID. One value or multiple comma-separated industry IDs. Full list of IDs: [https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin\_industry\_code\_v2\_all\_eng.csv](https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin_industry_code_v2_all_eng.csv) |
| `payload.functionId`        | `string`                                                                                       | No       | —       | Filter by job function ID. One value or multiple comma-separated function IDs. Full list of IDs: [https://github.com/HarvestAPI/apify-linkedin-profile-search/blob/main/.actor/input\_schema.json#L142](https://github.com/HarvestAPI/apify-linkedin-profile-search/blob/main/.actor/input_schema.json#L142)           |
| `payload.under10Applicants` | `string`                                                                                       | No       | —       | Include this parameter to filter jobs with under 10 applicants                                                                                                                                                                                                                                                         |
| `payload.easyApply`         | `"true" \| "false"`                                                                            | No       | —       | Set this parameter to 'true' filter jobs with Easy Apply option or 'false' to exclude. Values can be 'true' or 'false' Allowed: `true`, `false`.                                                                                                                                                                       |
| `payload.page`              | `integer`                                                                                      | No       | `1`     | Page number for pagination                                                                                                                                                                                                                                                                                             |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Search LinkedIn jobs by title, company, location, and more.",
    "properties": {
      "search": {
        "type": "string",
        "description": "Search jobs by title"
      },
      "companyId": {
        "type": "string",
        "description": "Filter by company ID. One value or multiple comma-separated."
      },
      "location": {
        "type": "string",
        "description": "Filter by location text"
      },
      "geoId": {
        "type": "string",
        "description": "Filter by location as LinkedIn Geo ID. Overrides the location query param. Use the /linkedin/geo-id-search endpoint to find the Geo ID"
      },
      "sortBy": {
        "type": "string",
        "description": "Sort by field. Supported values: 'relevance', 'date'",
        "enum": [
          "relevance",
          "date"
        ]
      },
      "workplaceType": {
        "type": "string",
        "description": "Filter by workplace type. One or multiple values comma-separated. Supported values: 'office', 'hybrid', 'remote'",
        "pattern": "^(office|hybrid|remote)(,(office|hybrid|remote))*$"
      },
      "employmentType": {
        "type": "string",
        "description": "Filter by employment type. One or multiple values comma-separated. Supported values: 'full-time', 'part-time', 'contract', 'temporary', 'internship'",
        "pattern": "^(full-time|part-time|contract|temporary|internship)(,(full-time|part-time|contract|temporary|internship))*$"
      },
      "salary": {
        "type": "string",
        "description": "Filter by salary range. Supported values: '40k+', '60k+', '80k+', '100k+', '120k+', '140k+', '160k+', '180k+', '200k+'",
        "enum": [
          "40k+",
          "60k+",
          "80k+",
          "100k+",
          "120k+",
          "140k+",
          "160k+",
          "180k+",
          "200k+"
        ]
      },
      "postedLimit": {
        "type": "string",
        "description": "Filter posts by maximum posted date. Supported values: '24h', 'week', 'month'",
        "enum": [
          "24h",
          "week",
          "month"
        ]
      },
      "experienceLevel": {
        "type": "string",
        "description": "Filter by experience level. One or multiple values comma-separated. Supported values: 'internship', 'entry', 'associate', 'mid-senior', 'director', 'executive'",
        "pattern": "^(internship|entry|associate|mid-senior|director|executive)(,(internship|entry|associate|mid-senior|director|executive))*$"
      },
      "industryId": {
        "type": "string",
        "description": "Filter by industry ID. One value or multiple comma-separated industry IDs. Full list of IDs: https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin_industry_code_v2_all_eng.csv"
      },
      "functionId": {
        "type": "string",
        "description": "Filter by job function ID. One value or multiple comma-separated function IDs. Full list of IDs: https://github.com/HarvestAPI/apify-linkedin-profile-search/blob/main/.actor/input_schema.json#L142"
      },
      "under10Applicants": {
        "type": "string",
        "description": "Include this parameter to filter jobs with under 10 applicants"
      },
      "easyApply": {
        "type": "string",
        "description": "Set this parameter to 'true' filter jobs with Easy Apply option or 'false' to exclude. Values can be 'true' or 'false'",
        "enum": [
          "true",
          "false"
        ]
      },
      "page": {
        "type": "integer",
        "description": "Page number for pagination",
        "default": 1
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name                                           | Type                | Required | Default | Details                                        |
| ---------------------------------------------- | ------------------- | -------- | ------- | ---------------------------------------------- |
| `result.data`                                  | `object`            | Yes      | —       | Provider response payload.                     |
| `result.data.elements`                         | `array`             | No       | —       | —                                              |
| `result.data.elements[].id`                    | `string`            | Yes      | —       | —                                              |
| `result.data.elements[].url`                   | `string`            | No       | —       | —                                              |
| `result.data.elements[].title`                 | `string`            | No       | —       | —                                              |
| `result.data.elements[].postedDate`            | `string`            | No       | —       | Format: `date-time`.                           |
| `result.data.elements[].company`               | `object`            | No       | —       | —                                              |
| `result.data.elements[].company.name`          | `string`            | No       | —       | —                                              |
| `result.data.elements[].company.universalName` | `string`            | No       | —       | —                                              |
| `result.data.elements[].company.linkedinUrl`   | `string`            | No       | —       | —                                              |
| `result.data.elements[].location`              | `object`            | No       | —       | —                                              |
| `result.data.elements[].location.linkedinText` | `string`            | No       | —       | —                                              |
| `result.data.elements[].easyApply`             | `boolean`           | No       | —       | —                                              |
| `result.data.pagination`                       | `object`            | No       | —       | —                                              |
| `result.data.pagination.totalPages`            | `integer`           | No       | —       | Format: `int32`.                               |
| `result.data.pagination.totalElements`         | `integer`           | No       | —       | Format: `int32`.                               |
| `result.data.pagination.pageNumber`            | `integer`           | No       | —       | Format: `int32`.                               |
| `result.data.pagination.previousElements`      | `integer`           | No       | —       | Format: `int32`.                               |
| `result.data.pagination.pageSize`              | `integer`           | No       | —       | Format: `int32`.                               |
| `result.data.pagination.paginationToken`       | `string`            | No       | —       | Format: `nullable`.                            |
| `result.data.status`                           | `string \| integer` | No       | —       | —                                              |
| `result.data.error`                            | `string \| null`    | No       | —       | —                                              |
| `result.meta`                                  | `object`            | No       | —       | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "properties": {
          "elements": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "postedDate": {
                  "type": "string",
                  "format": "date-time"
                },
                "company": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "universalName": {
                      "type": "string"
                    },
                    "linkedinUrl": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "location": {
                  "type": "object",
                  "properties": {
                    "linkedinText": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "easyApply": {
                  "type": "boolean"
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "totalPages": {
                "type": "integer",
                "format": "int32"
              },
              "totalElements": {
                "type": "integer",
                "format": "int32"
              },
              "pageNumber": {
                "type": "integer",
                "format": "int32"
              },
              "previousElements": {
                "type": "integer",
                "format": "int32"
              },
              "pageSize": {
                "type": "integer",
                "format": "int32"
              },
              "paginationToken": {
                "type": "string",
                "format": "nullable"
              }
            },
            "additionalProperties": false
          },
          "status": {
            "type": [
              "string",
              "integer"
            ]
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `provider_usage` (provider usage).
* Estimated Deepline credits: `0.01` per pricing unit.

## Related documentation

* [HarvestAPI provider guide](/docs/providers/harvestapi/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)
