# Lever job postings API: export jobs from Lever boards

**Use case:** 

Get live job postings from the public Lever postings API for the companies you name, here Spotify, Palantir and Zoox. Each row has the job title, team, function, seniority, location, country, remote flag, posted date and job link. No Lever API key needed. Add any company that posts jobs on a public Lever board by its Lever slug, a lever: prefix or its jobs.lever.co link.

## Input

```json
{
  "companies": [
    "lever:spotify",
    "lever:palantir",
    "lever:zoox"
  ],
  "preset": "none",
  "remote": "include",
  "postedAfter": "7d",
  "deltaMode": false,
  "includeDescription": false,
  "maxItems": 200,
  "keywordsInDescription": false,
  "includeJobsWithoutDate": false,
  "maxDescriptionChars": 20000,
  "maxJobsPerCompany": 0,
  "outputSignalsOnly": false,
  "newRoleWindowDays": 7,
  "maxConcurrency": 5,
  "perHostDelayMs": 1000,
  "requestTimeoutSecs": 45,
  "maxRetries": 2
}
```

## Output

```json
{
  "companyName": {
    "label": "Company name",
    "format": "string"
  },
  "title": {
    "label": "Title",
    "format": "string"
  },
  "function": {
    "label": "Function",
    "format": "string"
  },
  "seniority": {
    "label": "Seniority",
    "format": "string"
  },
  "locationText": {
    "label": "Location text",
    "format": "string"
  },
  "country": {
    "label": "Country",
    "format": "string"
  },
  "remote": {
    "label": "Remote",
    "format": "boolean"
  },
  "postedAt": {
    "label": "Posted at",
    "format": "string"
  },
  "compensation": {
    "label": "Compensation",
    "format": "object"
  },
  "changeType": {
    "label": "Change type",
    "format": "string"
  },
  "source": {
    "label": "Source",
    "format": "string"
  },
  "jobUrl": {
    "label": "Job url",
    "format": "string"
  }
}
```

## How it works

### 1. Sign up on Apify or log in

The Greenhouse & Lever Job Postings API: New & Closed Actor is ready to run with the inputs already set for "Lever job postings API: export jobs from Lever boards". [Sign up or log in](https://console.apify.com/create-task-from-example/14rgeXOr0m23TMegQ) and you'll land in Apify Console with a copy of this exact task.

### 2. Start the "Lever job postings API: export jobs from Lever boards" task

The Greenhouse & Lever Job Postings API: New & Closed Actor will start running based on the input automatically. You can also change all the input fields, like companies, preset company list, and more, to match your specific use case.

### 3. Receive the "Lever job postings API: export jobs from Lever boards" output

Monitor the progress in real time. You will be notified as soon as your dataset is complete and ready for review. Each result includes data such as company name, title, function, and more.

### 4. Integrate into your workflow

The final output is delivered in JSON, CSV, or Excel format, ready to be plugged into your workflow. You can also [run the "Lever job postings API: export jobs from Lever boards" task via API](https://apify.com/amyorkltd/ats-job-postings-api.md).

## FAQ

### What does the Lever job postings API task return?

The Lever job postings API task returns one row per open job: company, title, team, function, seniority, location, country, remote flag, posted date and a link to the job on the company's Lever board.

### Do I need a Lever API key?

No. The Lever job postings API task reads the public Lever postings API behind each company's jobs.lever.co page. It needs no API key, no login and no Lever account.

### How do I add my own companies?

Replace the companies list in the Lever job postings API task with Lever slugs such as spotify, prefixed slugs such as lever:spotify, or board links such as https://jobs.lever.co/spotify. EU boards on jobs.eu.lever.co work too.

### What if a company is not on Lever?

The Lever job postings API task writes a status row for every company you list, such as ok, empty, not_found or unsupported_ats, in the hiring_signals dataset, so a missing board never looks like a silent zero.

### Can I filter the Lever jobs?

The Lever job postings API task can keep only jobs that match title keywords, countries, locations, remote or on-site, seniority, job function, employment type or a posted-after date. Add those fields to the task input.

### Can I run it on a schedule or from the API?

The Lever job postings API task can run on an Apify schedule, for example daily, or start from the Apify API. Results export to JSON, CSV or Excel.

## About this Actor

This example demonstrates how to use [Greenhouse & Lever Job Postings API: New & Closed](https://apify.com/amyorkltd/ats-job-postings-api.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/amyorkltd/ats-job-postings-api.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

This Task's input is already configured above. Use it as-is rather than inventing a new one.

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 full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/amyorkltd/ats-job-postings-api.md

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`).
