# Lever Job Board Scraper — All Company Jobs (`hipersoft/lever-scraper`) Actor

Scrape all open jobs from any company's Lever board: title, team, department, location, commitment, workplace type, description and apply link. Bulk companies.

- **URL**: https://apify.com/hipersoft/lever-scraper.md
- **Developed by:** [Hipersoft](https://apify.com/hipersoft) (community)
- **Categories:** Jobs
- **Features:** Limited permissions
- **Stats:** 4 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00085 / job scraped

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Lever Job Board Scraper — Jobs, Teams & Apply Links

Scrape **every open job** from any company that hosts its careers page on **Lever** — title, team, department, location, commitment, workplace type, full description and apply link — into clean JSON, CSV, Excel or XML. Pass one or many companies and get a complete, deduplicated feed. Fast and reliable.

![Lever Job Board Scraper input — companies, includeContent and maxJobsPerCompany in the Apify Console](https://api.apify.com/v2/key-value-stores/SUfvnaFLd9z9eBCtV/records/lever-scraper-input.png)

### What does Lever Job Board Scraper do?

The Lever Job Board Scraper collects all open roles from the companies you list and exports each job as a structured record. Pass one or many Lever tokens or board URLs, choose whether to include full descriptions, and it returns a clean, deduplicated feed of jobs with titles, teams, departments, locations, commitment, workplace type and apply links.

### What data can you scrape from Lever?

| Data | Fields |
| --- | --- |
| 🏢 Company | company token |
| 📋 Job | job ID, title, department, team, level |
| 📍 Location | location, all locations, country, workplace type |
| 🕒 Terms | commitment, created date |
| 🔗 Apply | apply URL, hosted posting URL |
| 📝 Content | full description (plain text) and original HTML |

### Use cases

- **Job aggregators** — feed thousands of live roles from company career pages into your board.
- **Recruiting intelligence** — track who's hiring, for which teams, and where.
- **Hiring-trend analysis** — monitor headcount growth by department, team and location over time.
- **Sales & lead lists** — spot companies expanding into a function you sell to.
- **ATS / market monitoring** — watch competitor and target-account hiring in near real time.
- **Talent sourcing** — build role-specific feeds for candidates and recruiters.

### How to scrape Lever data

1. Add the **Lever Job Board Scraper** to your Apify account.
2. Add one or many **companies** — a Lever token (the slug in `jobs.lever.co/<token>`) or a full board URL.
3. Toggle **includeContent** and set **maxJobsPerCompany** to control depth.
4. Click **Run** and watch jobs stream into the dataset.
5. Export to JSON, CSV, Excel or XML, or pull them through the Apify API.

### Input

List the companies you want, choose whether to include full descriptions, and cap jobs per company if needed.

#### Example input

```json
{
  "companies": ["spotify", "https://jobs.lever.co/plaid"],
  "includeContent": true,
  "maxJobsPerCompany": 0
}
```

`companies` accepts a Lever **token** (the slug in `jobs.lever.co/<token>`) or a full board URL.

| Field | Description |
| --- | --- |
| `companies` | Lever company tokens or board URLs to scrape. |
| `includeContent` | Include each job's full description (text + HTML). Default true. |
| `maxJobsPerCompany` | Cap jobs per company. 0 = all. |

### Output

Each job is one clean record:

```json
{
  "company": "spotify",
  "jobId": "890b2c0f-f46f-4a4b-…",
  "title": "Advertiser Solutions Vendor Lead",
  "department": "Advertising",
  "team": "Advertising Sales",
  "location": "London",
  "allLocations": ["London", "Stockholm"],
  "commitment": "Permanent",
  "level": "Senior",
  "workplaceType": "hybrid",
  "country": "GB",
  "createdAt": "2026-07-20T10:00:00.000Z",
  "applyUrl": "https://jobs.lever.co/spotify/890b2c0f…/apply",
  "hostedUrl": "https://jobs.lever.co/spotify/890b2c0f…",
  "description": "About the role…",
  "descriptionHtml": "<div>About the role…</div>"
}
```

![Lever Job Board Scraper output example — job title, team and apply link as structured JSON](https://api.apify.com/v2/key-value-stores/SUfvnaFLd9z9eBCtV/records/lever-scraper-output.png?v=1)

#### Output schema

| Field | Type | Description |
| --- | --- | --- |
| `company` | string | Lever company token the job came from. |
| `jobId` | string | Unique Lever job posting ID. |
| `title` | string | Job title. |
| `department` | string | Department the role belongs to. |
| `team` | string | Team within the department. |
| `location` | string | Primary job location. |
| `allLocations` | array | All locations the role is open in. |
| `commitment` | string | Employment commitment, e.g. Permanent, Contract. |
| `level` | string | Seniority level of the role. |
| `workplaceType` | string | Workplace type, e.g. remote, hybrid, on-site. |
| `country` | string | Country code for the primary location. |
| `createdAt` | string (ISO date) | When the posting was created. |
| `applyUrl` | string (URL) | Direct link to apply for the role. |
| `hostedUrl` | string (URL) | Lever-hosted posting page URL. |
| `description` | string | Full job description as plain text. |
| `descriptionHtml` | string | Original job description HTML. |

### Need more job data?

- [Greenhouse Job Board Scraper](https://apify.com/hipersoft/greenhouse-scraper) — jobs from Greenhouse boards.
- [Ashby Job Board Scraper](https://apify.com/hipersoft/ashby-scraper) — jobs from Ashby boards.
- [RemoteOK Scraper](https://apify.com/hipersoft/remoteok-scraper) — remote job listings.
- [Indeed Scraper](https://apify.com/hipersoft/indeed-scraper) — jobs across employers.

### FAQ

**Where do I find a company's Lever token?**
It's the slug in the careers URL — `jobs.lever.co/spotify` → `spotify`. A full URL works too.

**How many companies can I scrape?**
As many as you like — add them all to `companies` and each is fetched in turn.

**How does billing work?**
You pay only per job you get — no subscription. Our per-item price floors 20% below the cheapest comparable scraper.

**What export formats are supported?**
JSON, CSV, Excel and XML, plus the Apify API for programmatic access.

**Can I skip the long descriptions?**
Yes — set `includeContent` to false for a lighter, faster run that omits the description text and HTML.

**How fresh is the data?**
Each run fetches live postings, so results reflect each board at the moment you run the actor. The `createdAt` field timestamps every job.

**Is it legal?**
The actor returns only publicly available job postings. You are responsible for how you use the data.

**Can I connect it to my other tools?**
The Lever Job Board Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JavaScript/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

### Related Actors

- [Greenhouse Job Board Scraper](https://apify.com/hipersoft/greenhouse-scraper) — jobs from Greenhouse boards.
- [RemoteOK Scraper](https://apify.com/hipersoft/remoteok-scraper) — remote-first job listings.
- [Indeed Scraper](https://apify.com/hipersoft/indeed-scraper) — jobs across many employers.

### Notes

Original clean-room implementation. Returns only public job-posting data; you are responsible for how you use it. Not affiliated with or endorsed by Lever.

# Actor input Schema

## `companies` (type: `array`):

Lever company tokens or board URLs — e.g. "spotify" or https://jobs.lever.co/spotify.

## `includeContent` (type: `boolean`):

Include each job's full description (plain text + HTML).

## `maxJobsPerCompany` (type: `integer`):

Limit jobs per company. 0 = all.

## Actor input object example

```json
{
  "companies": [
    "spotify",
    "plaid"
  ],
  "includeContent": true,
  "maxJobsPerCompany": 0
}
```

# 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 = {
    "companies": [
        "spotify"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/lever-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 = { "companies": ["spotify"] }

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

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

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

```

## CLI example

```bash
echo '{
  "companies": [
    "spotify"
  ]
}' |
apify call hipersoft/lever-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/lever-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ZqM6yDO3BMX5YHc7Z/builds/k7syMoFSob2T2XyI4/openapi.json
