Career Site Job Search — Verified Greenhouse & Lever Boards avatar

Career Site Job Search — Verified Greenhouse & Lever Boards

Pricing

from $1.60 / 1,000 job matcheds

Go to Apify Store
Career Site Job Search — Verified Greenhouse & Lever Boards

Career Site Job Search — Verified Greenhouse & Lever Boards

Search open jobs in the Hermes directory of verified company career sites on Greenhouse and Lever (27 boards, 5,619 postings at its 2026-10-26 build) by keyword, location, country, remote and department; every result is checked live on the employer's board. $0.002 a job plus $0.01 a search.

Pricing

from $1.60 / 1,000 job matcheds

Rating

0.0

(0)

Developer

Logan Parker

Logan Parker

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

Search open jobs in the Hermes directory of verified company career sites on Greenhouse and Lever — 27 boards and 5,619 postings at its 2026-10-26 build, not every company board — by keyword, location, country, remote, department, company and recency, and get back only postings confirmed open on the employer's own board at call time, never a stale repost. For job-search tools, recruiters and AI agents that need current roles from the source. $0.002 a job plus $0.01 a search; a search whose live checks all fail costs nothing. Not affiliated with Greenhouse or Lever.

Example result

A job record from the production image's run of the smoke input against the live source (2026-10-26T12:48:43Z). The run's first record also carries directory (the Hermes directory's boards, postings and build date) and the last record is a free summary: candidates, boards read, closed postings dropped, postings no longer matching, returned.

{
"type": "job",
"source": "greenhouse",
"board": "stripe",
"region": "global",
"company": "Stripe",
"jobId": "8202299",
"title": "Software Engineer, New Grad",
"departments": [
"5112 General University"
],
"offices": [
"TW-Taipei City"
],
"location": {
"raw": "Taiwan",
"city": null,
"region": null,
"country": "TW",
"remote": false
},
"salary": null,
"postedAt": "2026-10-23T03:22:57Z",
"updatedAt": "2026-10-23T21:54:30Z",
"descriptionMarkdown": null,
"applyUrl": "https://stripe.com/jobs/search?gh_jid=8202299",
"sourceUrl": "https://job-boards.greenhouse.io/stripe/jobs/8202299",
"matchedTerms": [
"engineer"
],
"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:

{
"query": [
"engineer"
],
"maxResults": 10
}
FieldTypeMeaning
queryarrayKeywords; a posting matches when its title or a department contains any of them (case-insensitive words or phrases); 1–50.
locationsarrayReturn only postings whose location text, city, region or country matches any of these.
countriesarrayReturn only postings whose stated location is in one of these countries (ISO 3166-1 alpha-2 codes).
remoteOnlybooleanReturn only postings the board marks remote.
departmentsarrayReturn only postings in a department (or Lever team) containing any of these words.
companiesarraySearch only these companies' boards (company names or board tokens); 1–100.
postedWithinDaysintegerReturn only postings first published or created in the last N days; 1–3,650, default 30.
maxResultsintegerMost confirmed matches returned, newest first; 1–1,000.
includeDescriptionbooleanReturn each posting's description as redacted Markdown.

Events and prices

EventTitleCharged whenFREE / BRONZESILVERGOLD / PLATINUM / DIAMOND
job-matchedJob matchedOne matching posting returned.$0.002$0.0018$0.0016
search-runSearch runOne search across the directory (once per run).$0.01$0.009$0.008

Worked cost: a search returning 25 jobs costs 25 × $0.002 + $0.01 = $0.06 at the FREE and BRONZE price, $0.054 on SILVER and $0.048 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/ats-job-search",
"input": {
"query": [
"engineer"
],
"maxResults": 10
},
"callOptions": {
"maxTotalChargeUsd": 0.05,
"timeout": 600
},
"waitSecs": 30
}

Then call get-dataset-items with the returned defaultDatasetId. Dedicated tool URL: https://mcp.apify.com?tools=hermeskd/ats-job-search

Output fields

FieldMeaning
typejob: one matching posting, confirmed open on its board at call time; summary: the last record, free (counts and coverage).
sourceThe applicant-tracking system the posting lives on.
boardGreenhouse board token or Lever site name.
regionLever instance (global or eu); global for Greenhouse.
companyCompany as the board names it (Greenhouse) or the site name (Lever).
jobIdThe posting id on its board.
titleJob title.
departmentsDepartments (Greenhouse) or department and team (Lever).
officesGreenhouse office names; empty for Lever.
locationLocation 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.
salaryPay range only when the source states one; never inferred.
postedAtFirst published (Greenhouse) or created (Lever), UTC ISO 8601.
updatedAtLast updated (Greenhouse); null for Lever.
descriptionMarkdownDescription as Markdown with emails and phone numbers redacted; null unless includeDescription is true.
applyUrlWhere the company sends applicants.
sourceUrlThe posting's page on the public board.
matchedTermsThe query terms the posting matched.
directoryThe Hermes board directory this search used, on the run's first record and on the summary: boards, postings, build date, build seconds, and whether the published store or the snapshot baked into the image was read.
candidatesSummary: postings in the directory's index that matched the query and filters.
boardsWithCandidatesSummary: boards those candidates are on.
boardsReadSummary: boards read live to confirm candidates.
boardsFailedSummary: live board reads that failed.
closedDroppedSummary: candidates no longer on their board (closed since the index was built), dropped.
noLongerMatchingSummary: candidates still open whose live posting no longer matches, dropped.
returnedJobsSummary: confirmed matches returned.
stoppedAtSummary: why the search stopped before reading every candidate board (maxResults is not listed; charge limit, run deadline or the board-read limit), or null.
failedBoardsSummary: the boards whose live read failed, with the code (first 50).
okTrue for every confirmed match and for the summary of a search that ran.
errorFailure, never charged.

Limits and run time

1–1,000 results (maxResults, default 100), newest first; postedWithinDays defaults to 30. Candidates come from the directory's postings index; their boards are read live in order until maxResults confirmed matches are returned (at most 200 board reads a run, one request a second per host). The directory is the published Hermes store when it can be read, else the snapshot baked into the image — the directory object says which, with its board and posting counts and build date (the snapshot of 2026-10-26: 27 verified boards, 5,619 postings, two-thirds of them one Lever site's listings). A directory built longer ago than the search's postedWithinDays window holds no posting of the window: the search is not run, and a free directory_stale record says so. search-run is charged once: with the first confirmed match, or with the summary of a successful search that found nothing. A missing directory, input the Actor cannot use, or a search whose every live board read failed charges nothing. The smoke input (ten results) ran in 4.0 seconds end to end in the production image on 2026-10-26; the default run timeout is 600 seconds. Cold platform time, cost and the smallest passing memory are measured by the deploy.

Errors

CodeMeaning
directory_unavailableNeither the published directory nor the snapshot baked into the image could be read; nothing is charged.
directory_staleThe directory was built longer ago than the search's postedWithinDays window, so it can hold no posting of the window; the search is not run and nothing is charged. The message states the directory's age.
rate_limitedEvery live board read was refused with HTTP 429; nothing was charged.
source_schema_changedThe source's response no longer has the verified shape; the run fails loudly when every input does.
download_failedEvery live board read failed; nothing was charged.
robots_disallowedrobots.txt forbids fetching the URL; no request was made to it.
blocked_hostThe host is on the deny-list or resolves to a private or local address; no request was made.
timeoutThe input did not finish within the run's time budget.
invalid_inputThe run input passed the input schema but cannot be used; the message names the field.
internal_errorUnexpected failure; the message carries the error class.
charge_limit_reachedThe 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

Two feeds, through the Hermes board directory. Greenhouse Job Board API (boards-api.greenhouse.io/v1/boards/{token}/jobs). Greenhouse's documentation, read 2026-10-26 on docs.greenhouse.io: "Job Board data is publicly available, so authentication is not required for any GET endpoints." Only the application POST needs a key, and no Hermes Actor calls it. The API host's robots.txt (read 2026-10-26) disallows only /embed/. 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. The directory baked into the image was built on 2026-10-26 from company names in the Remote OK feed and five seed boards, each verified against its public board endpoint; the directory object on a run's first record gives the build date of the directory that run used. 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 Greenhouse Software, Lever, Apify or the companies whose boards it reads. Third-party names describe the sources.

Changelog

2026-10-26: first version (build unit 5): the directory and its postings index, live confirmation, closed-posting drop, the one-time search charge; listing written to the amended store contract.