BYTETOOLS

Lever Postings API

Free ATS job feed with no key: every open role on a company's Lever board as JSON, with full descriptions, categories and apply links. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Lever Postings API?

Lever's postings API serves any company's public job board as JSON with no API key. Passing a company's Lever handle returns each open role with its full description, team and location categories, workplace type and a direct apply URL.

Job aggregators resell what they scrape; going straight to the applicant tracking system gets you the same roles first-hand, complete and unmangled. Lever powers the careers pages of a large number of technology companies, and every one of those boards is readable at `api.lever.co/v0/postings/{handle}` with nothing but the handle — which you can read off the company's own careers URL.

The `mode=json` parameter is not optional in practice: without it the endpoint returns rendered HTML meant for embedding in a careers page. With it you get structured postings, each carrying both `description` as HTML and `descriptionPlain` as text, which saves you stripping tags for a search index. A word of warning about content volume: the boilerplate `additionalPlain` block, describing life at the company, is often longer than the role itself, so truncate before displaying. An empty array is a perfectly normal answer — it means the company currently has nothing open.

Quick facts

Base URL
https://api.lever.co/v0/postings
Authentication
No API key for public postings. Lever's full Data API, which covers candidates and pipelines, is a separate authenticated product.
Rate limit
No published limit for the public postings feed. Cache per company and refresh hourly at most.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Lever Postings API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Fetch a company's open roles

GET https://api.lever.co/v0/postings/palantir?mode=json&limit=1

curl
curl 'https://api.lever.co/v0/postings/palantir?mode=json&limit=1'
JavaScript (fetch)
const res = await fetch("https://api.lever.co/v0/postings/palantir?mode=json&limit=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.lever.co/v0/postings/palantir?mode=json&limit=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
[
  {
    "additionalPlain": "Life at Palantir\n \nWe want every Palantirian to achieve their best outcomes, that’s why we celebrate individuals’ strengths, skills, and interests, from your first interview to your longterm growth, rather than rely on traditional career ladders. Paying attention to the needs of our community enables us to optimize our opportunities to grow and helps ensure many pathways to success at Palantir. Promoting health and well-being across all areas of Palantirians’ lives is just one of the ways we’re investing in our community. Learn more at Life at Palantir and note that our offerings may vary by region.\n \nIn keeping consistent with Palantir’s values and culture, we believe employees are “better together” and in-person work affords the opportunity for more creative outcomes. Therefore, we encourage employees to work from our offices to foster connectivity and innovation. Many teams do offer hybrid options (WFH a day or two a week), allowing our employees to strike the right trade-off for their personal productivity. Based on business need, there are a few roles that allow for “Remote” work on an exceptional basis. If you are applying for one of these roles, you must work from the city and or country in which you are employed. If the posting is specified as Onsite, you are required to work from an office.\n \nIf you want to empower the world's most important institutions, you belong here. Palantir values excellence regardless of background. We are committed to making the application and hiring process accessible to everyone and will provide a rea

Parameters

ParameterTypeRequiredDescription
(handle)pathRequiredThe company's Lever account handle, taken from its careers page URL. palantir
modequeryRequiredSet to `json`. Without it the endpoint returns HTML for page embedding. json
limitqueryOptionalCap the number of postings returned. 1
team / location / commitmentqueryOptionalFilter by the corresponding category value. Engineering
groupqueryOptionalGroup results by `team`, `location` or `commitment` instead of returning a flat list. team

Response fields

(root)array
Postings. An empty array means the board currently has no open roles.
idstring
Posting UUID, stable while the role is live.
textstring
Job title as displayed.
descriptionPlain / descriptionstring
Role description as plain text and as HTML. Use the plain version for indexing and search.
additionalPlain / additionalstring
Company boilerplate appended to every posting — culture, benefits, equal opportunity statements. Frequently longer than the role itself.
categoriesobject
Team, department, location, commitment and workplace type, which is what the filter parameters match against.
listsarray
Structured sub-sections of the description such as responsibilities and requirements, each with a heading and HTML content.
hostedUrl / applyUrlstring
The public posting page and the direct application form.
createdAtinteger
Posting creation time in Unix milliseconds, not seconds.
workplaceTypestring
`onsite`, `remote` or `hybrid`, where the company has set it.
countrystring
ISO country code for the primary location, when available.

What you can build with the Lever Postings API

  • Embed a live careers list on a company's own marketing site
  • Build a niche job board tracking a curated set of employers
  • Alert when a specific company posts a role matching your criteria
  • Analyse hiring patterns by team and location over time

Common errors and how to fix them

404 Document not found

The handle is wrong or the company does not use Lever.

Fix: Read the handle from the company's careers page URL. There is no directory of valid handles to search.

HTML instead of JSON

`mode=json` was omitted.

Fix: It is required. The default output is markup intended for embedding in a page.

Empty array

The company has no open roles right now.

Fix: This is a valid response, not a failure. Distinguish it from a 404, which means the board does not exist.

Descriptions dominated by boilerplate

`additionalPlain` repeats company-wide text on every posting.

Fix: Index and display `descriptionPlain` instead, and treat `additional` as optional detail.

Lever Postings API — frequently asked questions

Do I need an API key for Lever job postings?

No. Public postings are open with no key. Lever's Data API, which handles candidates and hiring pipelines, is a separate authenticated product.

How do I find a company's Lever handle?

It is in their careers page URL — `jobs.lever.co/{handle}`. If a company's careers page is on that domain, this endpoint will work for them.

Why did I get HTML back?

The `mode=json` parameter was missing. Without it the endpoint serves rendered markup designed to be embedded into a careers page.

Is an empty array an error?

No, it means the company has nothing open at the moment. A non-existent board returns a 404 with a `Document not found` message instead.

Tools that pair with this API

Lever Postings is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.