# Lever Jobs Scraper (`straightforward_hydra/lever-jobs-scraper`) Actor

Scrape all open jobs from any company using the Lever ATS: title, location, team, commitment, workplace type and description. No API key needed.

- **URL**: https://apify.com/straightforward\_hydra/lever-jobs-scraper.md
- **Developed by:** [Dev D](https://apify.com/straightforward_hydra) (community)
- **Categories:** Jobs, Lead generation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Lever Jobs Scraper 💼

**Scrape every open job from any company on the Lever ATS — title, location, team, commitment, workplace type and description. No API key required.**

Many companies post their jobs through **Lever**. This Actor pulls every published role from one or more companies' Lever boards in a single fast request each, and returns clean, structured job records. Point it at a list of companies, filter by title / team / location, and go.

> Uses Lever's official public postings API — no key, no login, no browser. Public job postings, clean liability profile.

***

### What you can do with it

- 🧲 **Build a job board / aggregator** — pull roles from many companies at once.
- 🕵️ **Hiring intelligence** — track who's hiring, for what, and where.
- 📈 **Recruiting & sourcing** — monitor target companies for new openings.
- 📊 **Market research** — analyze roles, teams and locations across employers.
- 🔔 **New-job alerts** — run on a schedule and push new roles to Slack / email.

### Features

- ✅ **No API key** — works out of the box.
- ✅ **Multiple companies per run** — pass many company tokens.
- ✅ **Rich records** — title, location, team, department, commitment, workplace type, description, apply link.
- ✅ **Filtering** — by title keyword, team/department and location.
- ✅ **Low-maintenance** — official public API, one request per company.

***

### Finding a company's Lever token

The **company token** is the identifier in the Lever URL:
`jobs.lever.co/`**`leverdemo`** → token is `leverdemo`.

### Input

| Field | Description |
|---|---|
| **Lever company tokens** | Company identifiers, e.g. `leverdemo`. |
| **Title keyword** | Keep only jobs whose title contains this. |
| **Team / department** | Keep only jobs in a matching team/department. |
| **Location** | Keep only jobs whose location contains this. |
| **Include job description** | Attach the plain-text description. |
| **Max jobs per company** / **Max results** | Caps. |

#### Example — engineering roles at several companies

```json
{
  "companies": ["leverdemo", "somecompany"],
  "titleKeyword": "engineer",
  "includeContent": true,
  "maxResults": 500
}
```

### Output

Each row is one job:

```json
{
  "company": "leverdemo",
  "job_id": "33538a2f-d27d-4a96-8f05-fa4b0e4d940e",
  "title": "AbelsonTaylor Writer",
  "location": "Arlington, TX",
  "all_locations": ["Arlington, TX"],
  "team": "Professional Services",
  "department": "Customer Success",
  "commitment": "Regular Full Time (Salary)",
  "workplace_type": "hybrid",
  "country": "US",
  "created_at": "2019-03-21T16:33:55.299000+00:00",
  "apply_url": "https://jobs.lever.co/leverdemo/33538a2f-.../apply",
  "hosted_url": "https://jobs.lever.co/leverdemo/33538a2f-...",
  "description": "Welcome to the job listing…"
}
```

### Run it on a schedule

Schedule the Actor to re-pull your target companies' boards daily, and connect a **Slack / email / webhook / Google Sheets** integration to get new roles pushed to you.

### Notes & limitations

- Uses Lever's public postings API — no key needed.
- Only companies that host jobs on Lever are covered.
- `created_at` is derived from Lever's posting timestamp.
- This is **public job-posting data**.

***

#### Keywords

Lever scraper, Lever jobs, job scraper, job board API, ATS scraper, jobs data, hiring data, recruiting, job postings, careers scraper, tech jobs, job aggregator, hiring intelligence, sourcing, talent, open roles, company jobs, Lever ATS, job listings, employment data.

# Actor input Schema

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

Company identifiers — the name in the URL jobs.lever.co/<company>, e.g. leverdemo, netflix. Add as many as you like.

## `titleKeyword` (type: `string`):

Only keep jobs whose title contains this text, e.g. "engineer" or "sales". Leave empty for all jobs.

## `team` (type: `string`):

Only keep jobs in a matching team or department, e.g. "Engineering". Leave empty for all.

## `location` (type: `string`):

Only keep jobs whose location contains this text, e.g. "London" or "Remote". Leave empty for all.

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

Include the plain-text job description in each record.

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

Cap the number of jobs returned per company. Leave empty for all.

## `maxResults` (type: `integer`):

Stop after this many jobs in total. Leave empty for no limit.

## Actor input object example

```json
{
  "companies": [
    "leverdemo"
  ],
  "includeContent": true
}
```

# 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": [
        "leverdemo"
    ]
};

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

# Run the Actor and wait for it to finish
run = client.actor("straightforward_hydra/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 '{
  "companies": [
    "leverdemo"
  ]
}' |
apify call straightforward_hydra/lever-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/TgunREJ2Au1pVCQLz/builds/MDGmimef41e5Kvgj3/openapi.json
