Lever Jobs Scraper — Postings from Any Lever Site, US & EU
Pricing
from $0.80 / 1,000 job returneds
Lever Jobs Scraper — Postings from Any Lever Site, US & EU
Get every published job from any company's Lever site, global or EU: title, team, department, location, workplace type, stated salary, date and apply link, live, emails and phones redacted. From $0.001 a job, a dollar per thousand; failed sites are free. Callable by AI agents.
Pricing
from $0.80 / 1,000 job returneds
Rating
0.0
(0)
Developer
Logan Parker
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Get every published job from any company's Lever site, on Lever's global or EU instance — give it site names like palantir, jobs.lever.co URLs or company names, and it returns each posting's title, team, department, commitment, location, workplace type, stated salary range, date, description as Markdown and apply link, fetched live. For recruiters, job-search tools and AI agents, with emails and phone numbers redacted. From $0.001 a job, a dollar per thousand jobs; a site that cannot be read costs nothing.
Example result
A job record from the production image's run of the smoke input against the live source (2026-10-26T12:48:03Z). Each site also gets one free record first with its open, matching and returned posting counts; the run's first record carries the Hermes directory's size and build date.
{"type": "job","source": "lever","site": "palantir","company": "palantir","jobId": "6940fc9a-b79c-4935-a90f-1c6a02e54fb1","title": "Deployment Strategist - Germany Forward Deployed","team": "Echo","department": null,"commitment": "Full-time","location": {"raw": "Washington, D.C.","city": "Washington","region": "DC","country": "US","remote": false},"workplaceType": "hybrid","salary": null,"postedAt": "2026-10-23T13:35:03Z","descriptionMarkdown": null,"sourceUrl": "https://jobs.lever.co/palantir/6940fc9a-b79c-4935-a90f-1c6a02e54fb1","applyUrl": "https://jobs.lever.co/palantir/6940fc9a-b79c-4935-a90f-1c6a02e54fb1/apply","ok": true}
How to use it
Start a run in Apify Console, by API or from an agent with an input like this one — it is the input Apify runs every day to test this Actor:
{"sites": ["palantir"],"maxJobsPerSite": 5,"includeDescription": false}
| Field | Type | Meaning |
|---|---|---|
sites | array | Lever site names (palantir), jobs.lever.co or jobs.eu.lever.co URLs, or company names found in the Hermes directory; 1–100. A bare name is tried on the global instance, then the EU one. |
keywords | array | Return only postings whose title, team or department contains any of these words or phrases (case-insensitive). |
locations | array | Return only postings whose location text, city, region or country matches any of these (country names or ISO codes match the country). |
remoteOnly | boolean | Return only postings whose workplace type is remote. |
postedWithinDays | integer | Return only postings created in the last N days; 1–3,650. |
includeDescription | boolean | Return each posting's description as redacted Markdown. |
maxJobsPerSite | integer | Most postings returned per site, newest first; 1–5,000. |
Events and prices
| Event | Title | Charged when | FREE / BRONZE | SILVER | GOLD / PLATINUM / DIAMOND |
|---|---|---|---|---|---|
job-returned | Job returned | One posting returned. | $0.001 | $0.0009 | $0.0008 |
Worked cost: three sites with 50 matching postings each cost 150 × $0.001 = $0.15 at the FREE and BRONZE price, $0.135 on SILVER and $0.12 on GOLD and above, plus the actor-start event.
Platform usage is not passed through. Apify's automatic actor-start event remains $0.00005 per started GB (one GB or less counts once). The synthetic dataset-item event is absent. Failure records and the free summary records are never charged; when the run's maximum total charge is reached, further work stops and the rest gets uncharged charge_limit_reached records. Work completed before an abort is settled.
Call it from an agent
Through Apify's MCP server (https://mcp.apify.com) use call-actor:
{"actor": "hermeskd/lever-jobs","input": {"sites": ["palantir"],"maxJobsPerSite": 5,"includeDescription": false},"callOptions": {"maxTotalChargeUsd": 0.05,"timeout": 900},"waitSecs": 30}
Then call get-dataset-items with the returned defaultDatasetId. Dedicated tool URL: https://mcp.apify.com?tools=hermeskd/lever-jobs
Output fields
| Field | Meaning |
|---|---|
type | board: one free summary per input site (open, matching and returned posting counts); job: one posting. |
source | Always lever. |
site | Lever site name (the input as given on a failure record). |
company | Company: the directory's name for the site when the input was a company name, else the site name (Lever postings name no company). |
jobId | Lever posting id. |
title | Posting title. |
team | Team, as the site categorises the posting. |
department | Department, as the site categorises the posting. |
commitment | Commitment, e.g. Full-time. |
location | Location parsed from the source text: raw text, and city, region (US state code) and ISO 3166-1 alpha-2 country only when the text states them unambiguously; remote when the source says so. |
workplaceType | on-site, remote, hybrid or unspecified, as the posting states (Lever's live onsite is written on-site). |
salary | Pay range only when the source states one; never inferred. |
postedAt | When the posting was created in Lever (its createdAt, UTC ISO 8601). |
descriptionMarkdown | Description, lists and additional text as Markdown with emails and phone numbers redacted; null when includeDescription is false. |
applyUrl | The posting's apply page on the Lever site. |
sourceUrl | The posting's page on the public Lever site. |
openJobs | Board record: published postings on the site. |
matchingJobs | Board record: postings matching the filters. |
returnedJobs | Board record: postings returned for this site (maxJobsPerSite and de-duplication applied). |
directory | On the run's first record: the Hermes board directory used for company names — boards, postings, build date, build seconds and whether it is the snapshot baked into the image. Null when no directory could be read. |
ok | True for a site read and for every returned posting. |
error | Failure, never charged. |
Limits and run time
1–100 sites per run; 1–5,000 postings per site (maxJobsPerSite, default 500), newest first by creation date. A bare site name is read from the global instance (api.lever.co) and, when that has no such site or answers an empty list, from the EU instance (api.eu.lever.co); a jobs.eu.lever.co URL goes straight to the EU instance. postedAt is Lever's own createdAt for the posting. Lever's live feed writes on-site as onsite; records say on-site. Locations are parsed only when unambiguous. The smoke input (one site, five postings) ran in 7.4 seconds end to end in the production image on 2026-10-26; the default run timeout is 900 seconds. Cold platform time, cost and the smallest passing memory are measured by the deploy.
Errors
| Code | Meaning |
|---|---|
site_not_found | No public Lever site has that name on either instance, or the company name is not in the directory; uncharged. |
rate_limited | The source asked us to slow down (HTTP 429); nothing was charged. |
source_schema_changed | The source's response no longer has the verified shape; the run fails loudly when every input does. |
download_failed | The request failed, timed out or answered an unexpected HTTP status. |
robots_disallowed | robots.txt forbids fetching the URL; no request was made to it. |
blocked_host | The host is on the deny-list or resolves to a private or local address; no request was made. |
timeout | The input did not finish within the run's time budget. |
invalid_input | The run input passed the input schema but cannot be used; the message names the field. |
internal_error | Unexpected failure; the message carries the error class. |
charge_limit_reached | The run reached its maximum total charge; this input was not processed. |
No failure record is charged. A run fails only when every input failed on the Actor's side (internal_error, timeout, source_schema_changed); caller-side failures and mixtures leave the run SUCCEEDED.
Sources and terms
Lever Postings API (api.lever.co/v0/postings/{site}?mode=json, EU api.eu.lever.co). Its public README (lever/postings-api, read 2026-10-26): "all job postings in the published state are publicly viewable. These jobs may be scraped by third parties." Robots.txt on both API hosts allows every path with Crawl-delay: 1, which is honoured. Only process content you have the right to process. Every request obeys HermesBot robots-group selection, the shared deny-list, public-address checks on connections and redirects, an honest user-agent, a 30-second deadline per request and at most one request a second per host (Lever and Remote OK ask Crawl-delay: 1). No caller credentials, cookies, CAPTCHA solving, residential proxies or evasion. Job text is returned with email addresses and phone numbers redacted; no recruiter, applicant or hiring-team object is ever read or returned, and the application endpoints are never called.
Not affiliated
This Actor is not affiliated with Lever, Apify or the companies whose sites it reads. Third-party names describe the source.
Related Hermes Actors
- Greenhouse Job Board Scraper — Open Jobs, Live, Any Company — every open job on a company's Greenhouse board.
- Career Site Job Search — Verified Greenhouse & Lever Boards — search open jobs in the Hermes directory of Greenhouse and Lever boards, each confirmed live.
- Company ATS Finder — Which Hiring System & Job Board It Uses — which hiring system and job board a company uses.
- Remote Jobs Scraper — Remote OK Listings, Salary Filter, Links — current remote jobs from Remote OK, with salary and listing links.
- URL to Markdown for LLMs — From $0.001 a Page, Agent-Payable — a public job page as clean Markdown where the site allows it (deny-listed job sites are refused).
- Speech to Text — Transcribe & Translate to English, SRT/VTT — speech to text with SRT and VTT subtitles.
- Video Converter & MP4 to MP3 — Trim, GIF; Audio $0.001 a Minute — audio and video conversion: MP4 to MP3, trim, GIF.
- Broken Link Checker That Never Charges for the Broken Links — broken links, 404s and redirects on a site.
- DNS Lookup & SPF, DKIM, DMARC Check — Findings by Severity — DNS records and SPF, DKIM and DMARC checks.
- Word, Excel & PowerPoint to Markdown — $0.002 per Document — Word, Excel, PowerPoint and other office files to Markdown.
- Domain Availability Checker — Registry RDAP, No Contact Data — whether domain names are available, from registry RDAP.
- Image to Text OCR — Lines & Words with Boxes, $0.002 an Image — OCR: the text in images.
- Image Upscaler — AI Upscale Graphics, Screenshots & Text 2x/4x — AI upscaling of graphics, screenshots and text, 2x or 4x.
- Lighthouse Audit, No API Key — Lab Core Web Vitals & SEO Scores — Lighthouse scores and Core Web Vitals.
- PDF to Markdown & Text — $0.0005 a Text Page, OCR for Scans — PDF to Markdown and text, with OCR for scanned pages.
- SEO Audit — On-Page Checks, Schema & Hreflang, $0.004 a Page — an on-page SEO audit: meta tags, schema, headings and links.
- Sitemap URL Extractor — Indexes, Gzip, RSS; $0.0003 per URL — the URLs in a site's sitemaps.
- Video Frame Extractor — by Scene, Interval or Timestamp — frames, thumbnails and scenes from a video.
- Website Screenshot API — Elements, HTML, Dark Mode & PDF Print — screenshots and PDF prints of web pages.
Changelog
2026-10-26: first version (build unit 5): global and EU instances, live reads, filters, redaction, the free site record; listing written to the amended store contract.