# Lever Job Postings & Careers Scraper (`scrapers_lat/lever-jobs-scraper`) Actor

Scrape public job postings from any company using the Lever ATS. Extract title, department, team, location, workplace type, description, requirements, apply URL and more. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/lever-jobs-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

<!-- actor-banner -->
[![Lever Job Postings & Careers Scraper](https://scrapers.lat/banners/lever-jobs-scraper.png)](https://console.apify.com/actors/yXhtbR03kPnFaTcNC/input)
<!-- /actor-banner -->

## Lever Job Postings & Careers Scraper

> Extract every open job posting from any company that runs its careers page on the Lever ATS, across all departments, teams and locations worldwide.

**📥 [Input](https://apify.com/scrapers_lat/lever-jobs-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/lever-jobs-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/lever-jobs-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/lever-jobs-scraper/examples)**

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-Global-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>18 fields</strong><br>per posting</td>
<td align="center"><strong>Global</strong><br>coverage</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
</tr></table>

<br>

### Who is it for

| Use case | Who benefits |
|---|---|
| Track a target company's open roles and hiring pace | Recruiters and talent teams |
| Build hiring-signal lists to time sales outreach | B2B sales and lead generation teams |
| Aggregate postings from many companies into one job board | Job board and aggregator operators |
| Monitor competitor headcount growth by department | Market and competitive analysts |
| Feed a candidate matching or alerting product | HR tech and recruiting product teams |

### Frequently Asked Questions

**Which companies can this scraper cover?**
Any company that hosts its careers page on the Lever ATS at jobs.lever.co. That includes thousands of startups and scaleups worldwide. You supply the company slug, which is the part after jobs.lever.co in the careers URL, for example palantir for jobs.lever.co/palantir.

**How many postings can I get per company?**
Every open posting the company currently has on Lever. Large employers can have several hundred live roles at once, while smaller teams may have only a handful. Use the Max Items input to cap the total collected across all companies.

**Can I search across several companies at once?**
Yes. Add as many company slugs as you want to the Company Slugs list and the actor fetches all of them in one run, tagging each posting with its company slug.

**How do I filter the results?**
You can filter after fetching by keyword, location, department or employment commitment. The keyword filter matches the job title and description, and the location filter matches any of a posting's locations, so a search for Remote or London returns only matching roles.

**What happens if a company is not on Lever?**
If a slug does not resolve to a Lever careers page, that company is skipped with an error note in the dataset and the run continues with the remaining companies, so one bad slug never stops the job.

<!-- example-tasks -->
<!-- /example-tasks -->

<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [Dice Tech Jobs, Salary & Skills Scraper](https://apify.com/scrapers_lat/dice-jobs-scraper): tech job postings from Dice.com with salary and skills
- [Computrabajo Jobs Scraper](https://apify.com/scrapers_lat/computrabajo-scraper): job listings across Latin America from Computrabajo
- [Elempleo Jobs Scraper](https://apify.com/scrapers_lat/elempleo-scraper): Colombian job postings from Elempleo
- [Freelancer Projects Scraper](https://apify.com/scrapers_lat/freelancer-scraper): open freelance projects and bids from Freelancer
- [Crunchbase Company Scraper](https://apify.com/scrapers_lat/crunchbase-scraper): company profiles, funding and people from Crunchbase
- [BizQuest Businesses for Sale Scraper](https://apify.com/scrapers_lat/bizquest-scraper): businesses and franchises for sale from BizQuest

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with Lever. It only accesses data that is publicly available on the platform. Use it in accordance with Lever's terms of service.

# Actor input Schema

## `maxJobs` (type: `integer`):

Maximum number of job postings to collect across all companies. Optional.
## `companies` (type: `array`):

One or more Lever company slugs. The slug is the part after jobs.lever.co in a careers URL, for example "palantir" for jobs.lever.co/palantir. Add as many as you want.
## `searchQuery` (type: `string`):

Optional keyword filter applied to the job title and description, for example "engineer", "sales" or "product manager". Leave empty to collect every posting.
## `location` (type: `string`):

Optional location filter, for example "London", "New York" or "Remote". Matches any of the posting locations.
## `department` (type: `string`):

Optional department filter, for example "Engineering", "Sales" or "Marketing".
## `commitment` (type: `string`):

Optional employment commitment filter, for example "Full-time", "Permanent", "Contract" or "Intern".
## `enrichContacts` (type: `boolean`):

Optional paid add-on, off by default. For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found.
## `enrichContactsMax` (type: `integer`):

Cap how many results the add-on tries to enrich, to control add-on cost. Leave empty to attempt all. Free Apify accounts are capped at 3.

## Actor input object example

```json
{
  "maxJobs": 10,
  "companies": [
    "palantir",
    "spotify",
    "ro"
  ],
  "enrichContacts": false,
  "enrichContactsMax": 50
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxJobs": 10,
    "companies": [
        "palantir",
        "spotify",
        "ro"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/lever-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxJobs": 10,
    "companies": [
        "palantir",
        "spotify",
        "ro",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/lever-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxJobs": 10,
  "companies": [
    "palantir",
    "spotify",
    "ro"
  ]
}' |
apify call scrapers_lat/lever-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/lever-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Lever Job Postings & Careers Scraper",
        "description": "Scrape public job postings from any company using the Lever ATS. Extract title, department, team, location, workplace type, description, requirements, apply URL and more. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "B1tvoRFPTLVOAduww"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~lever-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-lever-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~lever-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-lever-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~lever-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-lever-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "companies"
                ],
                "properties": {
                    "maxJobs": {
                        "title": "Max jobs",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of job postings to collect across all companies. Optional."
                    },
                    "companies": {
                        "title": "Company Slugs",
                        "type": "array",
                        "description": "One or more Lever company slugs. The slug is the part after jobs.lever.co in a careers URL, for example \"palantir\" for jobs.lever.co/palantir. Add as many as you want.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQuery": {
                        "title": "Keyword Filter",
                        "type": "string",
                        "description": "Optional keyword filter applied to the job title and description, for example \"engineer\", \"sales\" or \"product manager\". Leave empty to collect every posting."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Optional location filter, for example \"London\", \"New York\" or \"Remote\". Matches any of the posting locations."
                    },
                    "department": {
                        "title": "Department",
                        "type": "string",
                        "description": "Optional department filter, for example \"Engineering\", \"Sales\" or \"Marketing\"."
                    },
                    "commitment": {
                        "title": "Commitment",
                        "type": "string",
                        "description": "Optional employment commitment filter, for example \"Full-time\", \"Permanent\", \"Contract\" or \"Intern\"."
                    },
                    "enrichContacts": {
                        "title": "Find contact email & name (paid add-on)",
                        "type": "boolean",
                        "description": "Optional paid add-on, off by default. For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found.",
                        "default": false
                    },
                    "enrichContactsMax": {
                        "title": "Max results to enrich",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Cap how many results the add-on tries to enrich, to control add-on cost. Leave empty to attempt all. Free Apify accounts are capped at 3.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
