> ## 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.

# PredictLeads: Company Job Openings

> List a company's current and past job openings by domain, with titles, locations, and first/last seen dates, as a hiring signal.

List a company's current and past job openings by domain, with titles, locations, and first/last seen dates, as a hiring signal.

> [!NOTE]
>
> Tool ID: `predictleads_company_job_openings`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'predictleads_company_job_openings',
  {
    "company_id_or_domain": "example.com"
  },
);

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

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute predictleads_company_job_openings --input '{
  "company_id_or_domain": "example.com"
}' --json
```

## Example response

The static output schema lacks the details for a reliable example. Use `deepline describe predictleads_company_job_openings --json` for the complete live contract.

## Input reference

Returns a list of company's Job Openings.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.company_id_or_domain` | `string` | Yes | — | Company's ID or domain. |
| `payload.active_only` | `boolean` | No | — | Set to true if you'd like to receive JobOpenings that are not closed, have last\_seen\_at more recent than 5 days and were found in the last year. |
| `payload.not_closed` | `boolean` | No | — | Similar to `active_only`, but without considering `last_seen_at` timestamp. |
| `payload.first_seen_at_from` | `string` | No | — | Only return `JobOpenings` first seen after given date (ISO 8601). Format: `date`. |
| `payload.first_seen_at_until` | `string` | No | — | Only return `JobOpenings` first seen before given date (ISO 8601). Format: `date`. |
| `payload.last_seen_at_from` | `string` | No | — | Only return `JobOpenings` last seen after given date (ISO 8601). Format: `date`. |
| `payload.last_seen_at_until` | `string` | No | — | Only return `JobOpenings` last seen before given date (ISO 8601). Format: `date`. |
| `payload.with_description_only` | `boolean` | No | — | Only return JobOpenings that have description. |
| `payload.with_location_only` | `boolean` | No | — | Only return JobOpenings that have location. |
| `payload.categories` | `array` | No | — | Comma-separated (,) `JobOpening` categories. |
| `payload.page` | `integer` | No | `1` | Page number of shown items. **NOTE**: If the parameter is not provided, the meta property `count` will be omitted from response for performance reasons. Minimum: 1. |
| `payload.limit` | `integer` | No | `100` | Limit the number of shown items per page. Maximum: 1000. |

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

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Returns a list of company's Job Openings.",
    "properties": {
      "company_id_or_domain": {
        "type": "string",
        "description": "Company's ID or domain."
      },
      "active_only": {
        "type": "boolean",
        "description": "Set to true if you'd like to receive JobOpenings that are not closed, have last_seen_at more recent than 5 days and were found in the last year."
      },
      "not_closed": {
        "type": "boolean",
        "description": "Similar to `active_only`, but without considering `last_seen_at` timestamp."
      },
      "first_seen_at_from": {
        "type": "string",
        "description": "Only return `JobOpenings` first seen after given date (ISO 8601).",
        "format": "date"
      },
      "first_seen_at_until": {
        "type": "string",
        "description": "Only return `JobOpenings` first seen before given date (ISO 8601).",
        "format": "date"
      },
      "last_seen_at_from": {
        "type": "string",
        "description": "Only return `JobOpenings` last seen after given date (ISO 8601).",
        "format": "date"
      },
      "last_seen_at_until": {
        "type": "string",
        "description": "Only return `JobOpenings` last seen before given date (ISO 8601).",
        "format": "date"
      },
      "with_description_only": {
        "type": "boolean",
        "description": "Only return JobOpenings that have description."
      },
      "with_location_only": {
        "type": "boolean",
        "description": "Only return JobOpenings that have location."
      },
      "categories": {
        "type": "array",
        "description": "Comma-separated (,) `JobOpening` categories.",
        "items": {
          "enum": [
            "administration",
            "consulting",
            "data_analysis",
            "design",
            "directors",
            "education",
            "engineering",
            "finance",
            "healthcare_services",
            "human_resources",
            "information_technology",
            "internship",
            "legal",
            "management",
            "marketing",
            "military_and_protective_services",
            "operations",
            "purchasing",
            "product_management",
            "quality_assurance",
            "real_estate",
            "research",
            "sales",
            "software_development",
            "support",
            "manual_work",
            "food"
          ]
        }
      },
      "page": {
        "type": "integer",
        "description": "Page number of shown items. **NOTE**: If the parameter is not provided, the meta property `count` will be omitted from response for performance reasons.",
        "default": 1,
        "minimum": 1
      },
      "limit": {
        "type": "integer",
        "description": "Limit the number of shown items per page.",
        "default": 100,
        "maximum": 1000
      }
    },
    "required": [
      "company_id_or_domain"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | PredictLeads has historical jobs data since 2018 that includes over 220 million records, and is available for 2 million companies, which includes an average of 8.5 million active jobs at any given time. Job Openings are sourced directly from company websites which includes their career subpages, and ATS integrations. All Jobs are categorized using industry-standard O\*NET codes . The Job Openings Dataset includes fields such as Job Opening Title, Job Opening URL, First Seen At, Last Seen At, See the live schema for the complete constraint. |
| `result.data.data` | `array` | Yes | — | — |
| `result.data.data[].id` | `string` | Yes | — | ID of the `JobOpening` object. Format: `uuid`. |
| `result.data.data[].type` | `"job_opening"` | Yes | — | Type of the `JobOpening` object. |
| `result.data.data[].attributes` | `object` | Yes | — | Attributes of the `JobOpening` object. |
| `result.data.data[].attributes.title` | `string` | Yes | — | Job title. |
| `result.data.data[].attributes.translated_title` | `string \| null` | Yes | — | Job title translated to English when a non-English language is detected. |
| `result.data.data[].attributes.normalized_title` | `string \| null` | Yes | — | Normalized job title with various noise (location, noise, team, gender, contract type etc.) information stripped. |
| `result.data.data[].attributes.description` | `string \| null` | Yes | — | `JobOpening` description. |
| `result.data.data[].attributes.url` | `string` | Yes | — | URL of the web page where the data was found. Format: `uri`. |
| `result.data.data[].attributes.first_seen_at` | `string` | Yes | — | Date & time (ISO 8601) of when the `JobOpening` was first seen. Format: `date-time`. |
| `result.data.data[].attributes.last_seen_at` | `string` | Yes | — | Date & time (ISO 8601) of when the `JobOpening` was last seen. Format: `date-time`. |
| `result.data.data[].attributes.last_processed_at` | `string` | Yes | — | Date & time (ISO 8601) of when the `JobOpening` was last sent to processing. Format: `date-time`. |
| `result.data.data[].attributes.contract_types` | `array` | Yes | — | Zero or more types describing the `JobOpening`. |
| `result.data.data[].attributes.categories` | `array` | Yes | — | Zero or more organizational categories of the `JobOpening`. |
| `result.data.data[].attributes.onet_data` | `object` | Yes | — | Inferred O\*NET data for this `JobOpening`. O\*NET is a source and standardization of occupational information. More info on the O\*NET data: onetonline.org. |
| `result.data.data[].attributes.onet_data.code` | `string \| null` | Yes | — | O\*NET category code representing this `JobOpening`. For full list of possible codes see: [https://www.onetonline.org/find/all](https://www.onetonline.org/find/all) |
| `result.data.data[].attributes.onet_data.family` | `string \| null` | Yes | — | O\*NET family name matching the code for this `JobOpening`. |
| `result.data.data[].attributes.onet_data.occupation_name` | `string \| null` | Yes | — | O\*NET occupation name matching the code for this `JobOpening`. |
| `result.data.data[].attributes.posted_at` | `string \| null` | Yes | — | Date & time (ISO 8601) of when the `JobOpening` was posted. Format: `date-time`. |
| `result.data.data[].attributes.recruiter_data` | `object` | Yes | — | Info about the contact responsible for hiring for this `JobOpening`. |
| `result.data.data[].attributes.recruiter_data.name` | `string \| null` | Yes | — | Name of the contact responsible for hiring for this `JobOpening`. |
| `result.data.data[].attributes.recruiter_data.title` | `string \| null` | Yes | — | Title of the contact responsible for hiring for this `JobOpening`. |
| `result.data.data[].attributes.recruiter_data.contact` | `string \| null` | Yes | — | Contact info for this `JobOpening`, such as email address or Linkedin profile URL. |
| `result.data.data[].attributes.salary` | `string \| null` | Yes | — | Raw salary string. |
| `result.data.data[].attributes.salary_data` | `object` | Yes | — | Parsed raw salary data. |
| `result.data.data[].attributes.salary_data.salary_low` | `number \| null` | Yes | — | Salary range lower bound. If salary is not a range both low and high values will be the same. |
| `result.data.data[].attributes.salary_data.salary_high` | `number \| null` | Yes | — | Salary range upper bound. |
| `result.data.data[].attributes.salary_data.salary_currency` | `string \| null` | Yes | — | Salary currency. |
| `result.data.data[].attributes.salary_data.salary_low_usd` | `number \| null` | Yes | — | Salary range lower bound, converted to USD. |
| `result.data.data[].attributes.salary_data.salary_high_usd` | `number \| null` | Yes | — | Salary range upper bound, converted to USD. |
| `result.data.data[].attributes.salary_data.salary_time_unit` | `"hour" \| "day" \| "week" \| "month" \| "year" \| null` | Yes | — | Salary time unit. Allowed: `hour`, `day`, `week`, `month`, `year`, `null`. |
| `result.data.data[].attributes.seniority` | `"not_set" \| "founder" \| "c_level" \| "partner" \| "president" \| "vice_president" \| "head" \| "director" \| "manager" \| "mid_senior" \| "junior"` | Yes | — | Seniority inferred from the `JobOpening` title. Allowed: `not_set`, `founder`, `c_level`, `partner`, `president`, `vice_president`, `head`, `director`, `manager`, `mid_senior`, `junior`. |
| `result.data.data[].attributes.status` | `"closed" \| null` | Yes | — | null or "closed" if keyword "job no longer available", "vacancy listing expired", "position filled", etc. is found on `JobOpening` site. Allowed: `closed`, `null`. |
| `result.data.data[].attributes.language` | `string \| null` | Yes | — | Language in which a `JobOpening` description is written. |
| `result.data.data[].attributes.location` | `string \| null` | Yes | — | `JobOpening` location. **NOTE**: It is built from the `location_data` attributes if present. Otherwise, it falls back to the original unnormalized detected location string. |
| `result.data.data[].attributes.location_data` | `array` | Yes | — | **NOTE**: Currently contains at most one object. |
| `result.data.data[].attributes.location_data[].city` | `string \| null` | Yes | — | City of the location. |
| `result.data.data[].attributes.location_data[].state` | `string \| null` | Yes | — | State of the location. |
| `result.data.data[].attributes.location_data[].zip_code` | `string \| null` | Yes | — | ZIP code of the location. |
| `result.data.data[].attributes.location_data[].country` | `string \| null` | Yes | — | Country of the location. |
| `result.data.data[].attributes.location_data[].region` | `string \| null` | Yes | — | Region of the location. |
| `result.data.data[].attributes.location_data[].continent` | `string \| null` | Yes | — | Continent of the location. |
| `result.data.data[].attributes.location_data[].fuzzy_match` | `boolean \| null` | Yes | — | `true` indicates that location data may not have been extracted accurately. `false` indicates that location data has been extracted correctly. |
| `result.data.data[].attributes.tags` | `array` | Yes | — | Includes keywords found under `JobOpening` description. |
| `result.data.data[].relationships` | `object` | Yes | — | The data contains references to related objects listed in the `included` property. |
| `result.data.data[].relationships.company` | `object` | Yes | — | The data contains a reference to related `CompanyLite` object listed in the `included` property. |
| `result.data.data[].relationships.company.data` | `object` | Yes | — | — |
| `result.data.data[].relationships.company.data.id` | `string` | Yes | — | ID of the included `CompanyLite` object. Format: `uuid`. |
| `result.data.data[].relationships.company.data.type` | `"company"` | Yes | — | Type of the included `CompanyLite` object. |

The table shows the first 50 fields. Expand the raw schema below for every field.

> [!NOTE]
>
> This output schema is too large for an inline display. Read the complete live contract with `deepline describe predictleads_company_job_openings --json`.

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0.56` per pricing unit.

## Related documentation

* [PredictLeads provider guide](https://deepline.com/docs/providers/predictleads/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.