Skip to main content
Glama

Open jobs from Lever job boards

lever_jobs
Read-only

Search open jobs from companies hiring via Lever, including EU boards, and filter by keywords, location, remote status, department, or posting date to target relevant roles.

Instructions

Open jobs from companies that hire through Lever (jobs.lever.co, EU boards included). Pass companies as Lever slugs (e.g. 'palantir'), board URLs or careers pages that embed a Lever board; or set searchDirectory to true to search a built-in directory of boards. Filter with keywords, excludeKeywords, locations, remoteOnly and postedWithinDays. Full descriptions are off by default here to save tokens; set includeDescription to true to get them. Not affiliated with Lever. Cost, charged to your own Apify account: $0.001 per job returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxTotalJobs=25, includeDescription=false. Runs Apify Actor fecklesspleb/lever-jobs-scraper (https://apify.com/fecklesspleb/lever-jobs-scraper).

Input Schema

NameRequiredDescriptionDefault
keywordsNoTitle keywords (any). Keep jobs whose title contains at least one of these words (case-insensitive). Leave empty to keep all.
companiesNoLever companies (slugs, board URLs or careers pages). One entry per company. Accepts a Lever slug such as 'palantir', a board URL on jobs.lever.co, or a company careers page that embeds a Lever board. Leave empty, with the directory off, for a demo run: up to 5 sample jobs from https://jobs.lever.co/spotify at the normal per-job price. If no entry can be read, the run fails with an error. The form is prefilled with this sample board and 'Max jobs in total' 5, which runs the same small demo (5 x $0.001 = $0.005); replace it with your own boards and clear or raise 'Max jobs in total' for a real run.
locationsNoLocations (any). Keep jobs whose location contains one of these strings, for example 'London', 'United States', 'Remote'.
maxCostUsdNoMost this call may charge your Apify account, in US dollars. Default 0.25, maximum 5. Passed to Apify as maxTotalChargeUsd, the most Apify will charge for this run.
remoteOnlyNoRemote jobs only. Keep only jobs marked remote by the ATS or with 'remote' in the location.
departmentsNoDepartments or teams (any). Keep jobs whose department or team contains one of these strings, for example 'Engineering'.
onlyNewJobsNoOnly new jobs (monitoring mode). Return only jobs not returned by a previous run with this option on. State is kept in a named key-value store, so scheduled runs give you a clean feed of new postings and you pay only for new ones.
maxTotalJobsNoMax jobs in total. Stop the whole run after this many jobs. 0 means no limit (the value used when the field is empty). The run also stops at your 'Maximum cost per run'. The form is prefilled with 5 for a cheap sample run (5 x $0.001 = $0.005); clear it or raise it for real runs.
maxConcurrencyNoCompanies in parallel. How many companies to scrape at the same time. Requests to each host are rate limited regardless.
stateStoreNameNoState store name. Named key-value store used by 'Only new jobs'. Use different names for independent monitors.lever-jobs-scraper-state
excludeKeywordsNoExclude title keywords. Drop jobs whose title contains any of these words, for example 'intern' or 'senior'.
searchDirectoryNoSearch the built-in company directory. Also scrape every board in the built-in directory of 58 verified Lever boards (startups and tech companies). Combine with keyword, location and date filters to search across companies without listing them yourself.
postedWithinDaysNoPosted within last N days. Keep only jobs first published in the last N days. Empty keeps all.
descriptionFormatNoDescription format. Plain text, HTML, or both. Values: text = Plain text; html = HTML; both = Both.text
maxJobsPerCompanyNoMax jobs per company. Stop after this many matching jobs per company. 0 means no limit.
includeDescriptionNoInclude description. Include the full job description.
includeUndatedJobsNoKeep jobs without a posting date. When 'Posted within last N days' is set, keep jobs whose ATS does not expose a date.
searchInDescriptionNoMatch keywords in description too. Also match 'Title keywords' against the job description. Requires 'Include description'.
maxDirectoryCompaniesNoMax directory companies. Use only the N largest boards from the directory. 0 means all.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: per-job pricing of $0.001 charged to the caller's Apify account, the maxCostUsd cap, server-side defaults (maxTotalJobs=25, includeDescription=false), the demo-run behavior, and a non-affiliation disclaimer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: purpose comes first, then input modes, filters, cost, and defaults. Some clauses duplicate schema defaults and the pricing/actor sentences are wordy, but every sentence carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 19-parameter, zero-required tool with no output schema, the description covers invocation modes, cost limits, defaults, and directory search well enough to call it correctly. It does not describe the shape of returned job records, which would close the last gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3 even with no parameter info. The description still adds value by tying includeDescription to token savings, explaining that searchDirectory covers 58 verified boards, and repeating the applied defaults for maxTotalJobs and includeDescription.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Open jobs from companies that hire through Lever') plus source coverage (jobs.lever.co, EU boards). Against siblings like greenhouse_jobs, ashby_jobs, and workday_jobs, the ATS is named explicitly, so the agent can route without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the two input modes (companies list vs searchDirectory=true) and when to use each, plus how to filter and the demo-run fallback when companies is empty. It stops short of naming sibling tools as alternatives, so the when-not-to-use-this-tool guidance relies on the ATS name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.