Lever job board scraper in n8n

Pull open job postings from one or more Lever.co company boards, or fetch specific postings by ID, with location, team, salary range, requirements, and apply links, filterable by team, location, and commitment type.

What this workflow does

Import it and n8n runs the Lever Job Board Postings by Company Slug Actor on Apify every day at 08:00 with the starter input below. Each row comes back with title, company slug, location, workplace type and 4 more. A Google Sheets append is included and stays off until you add your sheet. The only credential it needs is your Apify API token.

Read from the workflow file, built for Lever Job Board Postings by Company Slug version 2.0.1. Updated 2026-11-14.
Lever Jobs and salaries Runs daily at 08:00 From a Short

How the rows travel

6 nodes, in the order n8n runs them. The yellow stop is the call to the Apify Actor; the dashed stop is optional.

  1. Daily trigger Schedule trigger
  2. Configure input Code
  3. Run Apify Actor HTTP Request
  4. Normalize + dedupe Code
  5. Rows ready No operation
  6. Google Sheets (optional) Google Sheets, off until you switch it on

From the Short

This workflow is the one the video points to: the number in each video opens this page.

Input

The Configure input node holds the starter input. Change it there; every setting the Actor accepts is listed below.

{
  "companySlugs": [
    "wealthfront"
  ],
  "maxItems": 25,
  "mode": "getJobs",
  "location": "New York, NY"
}
Input settings of Lever Job Board Postings by Company Slug
SettingTypeRequiredDefaultWhat it does
mode string Yes getJobs Fetch every open posting from one or more boards, or fetch specific postings by ID or URL. One of: getJobs, getJob.
companySlugs array No – Company slugs, board URLs, API URLs or posting URLs. Examples: "wealthfront", "https://jobs.lever.co/wealthfront", "https://jobs.eu.lever.co/olx"…
companySlug string No – Company slug, board URL, API URL or posting URL used with postingIds (mode=getJob).
postingIds array No – Posting UUIDs or posting/apply URLs (mode=getJob).
boardRegion string No auto Use auto to try the global board first and fall back to the EU board when global returns 404 or no postings. One of: auto, global, eu.
team string No – Keep postings whose team contains this text (case-insensitive).
department string No – Keep postings whose department contains this text (case-insensitive).
location string No – Keep postings whose primary location or any additional location contains this text (case-insensitive), e.g. "London" or "Remote".
commitment string No – Keep postings whose commitment or normalized employment type matches this text, e.g. "Full-time", "Contract", "Internship".
workplaceType string No – Keep postings with this exact workplace arrangement. One of: remote, hybrid, onsite, unspecified.
remoteOnly boolean No false Keep only postings marked remote or with a remote location.
country string No – Keep postings for one ISO 3166-1 alpha-2 country code, e.g. "US", "DE" or "IN".
titleKeywords array No – Keep postings whose title contains every word in this list, in any order.
excludeTitleKeywords array No – Drop postings whose title contains any word in this list.
postedAfter string No – Keep postings created on or after this date (YYYY-MM-DD).
hasSalaryOnly boolean No false Keep only postings with a structured salary range published by Lever.
salaryMin integer No – Keep postings whose structured salary range starts at or above this value (same currency and interval as the posting).
maxItems integer No 500 Maximum number of posting records to emit.
maxItemsPerCompany integer No 0 Maximum records per company board; 0 means no per-company limit.
includeDescription boolean No true Include full and section descriptions plus requirement lists.
includeHtml boolean No false Add the original HTML for descriptions, additional text and list content.
onlyNewSinceLastRun boolean No false Emit only postings not seen by an earlier run with the same query shape. The first run returns everything.

What each row holds

Every field the Actor returns stays in the row (8 in its dataset schema). Normalize + dedupe trims text, drops empty fields and adds _source and _scrapedAt. The main fields:

Main output fields of Lever Job Board Postings by Company Slug
FieldWhat it is
titleTitle
companySlugCompany Slug
locationLocation
workplaceTypeWorkplace Type
employmentTypeEmployment Type
salaryTextSalary Text
createdAtCreated At
hostedUrlHosted Url

What the first run costs

With the starter input (maxItems = 25) a first run costs about $0.42 on the Apify Free plan: $0.40 to start the run at 4 GB of memory and $0.02 for the results, plus platform usage.

The Actor lists $0.99 per 1,000 results; its catalogue page breaks the price down by Apify plan. The Apify Free plan includes $5 of usage a month.

The Actor behind it

Lever Job Board Postings by Company Slug: Pull open job postings from one or more Lever.co company boards, or fetch specific postings by ID, with location, team, salary range, requirements, and apply links, filterable by team, location, and commitment type.

The same job from an AI agent

The matching agent skill gives Claude Code, Codex, Cursor and other agents the same Actor, input and fields. Install it in one line:

npx skills add https://scraperfinder.com --skill lever-job-board-postings-by-company-slug

The lever job board scraper skill, with manual install and run steps

Questions people ask

How do I import this workflow into n8n?

Copy https://scraperfinder.com/n8n/lever-job-board-postings-by-company-slug.json. In n8n, open a new workflow, click the three-dot menu, choose Import from URL and paste it. Or download the JSON file and use Import from File; both give the same 6 nodes.

Do I need an Apify account?

Yes. The workflow calls the Lever Job Board Postings by Company Slug Actor through the Apify API with your own token, and each run is billed to your Apify account. The Free plan includes $5 of usage a month.

What does a run cost?

With the starter input (maxItems = 25) a first run costs about $0.42 on the Apify Free plan: $0.40 to start the run at 4 GB of memory and $0.02 for the results, plus platform usage. The Actor's Store page shows the current price.

Can I change what it collects?

Yes: edit the input object in the Configure input node. The Actor takes 22 settings; the table on this page lists each one with its default. Raise maxItems once the first rows look right.

Does it work without Google Sheets?

Yes. The rows wait in the Rows ready node, so you can connect any other node there: a database, Airtable, a webhook or an email. The Google Sheets node is only one option.

Workflow updated 2026-11-14