Startup Jobs Search: Greenhouse, Lever & Ashby career pages avatar

Startup Jobs Search: Greenhouse, Lever & Ashby career pages

Pricing

from $4.00 / 1,000 jobs

Go to Apify Store
Startup Jobs Search: Greenhouse, Lever & Ashby career pages

Startup Jobs Search: Greenhouse, Lever & Ashby career pages

Search open roles across thousands of startup career pages in one run. Filter by title keywords, location, remote, department, and posting date. Pre-built index refreshed every few hours; no login, no proxies.

Pricing

from $4.00 / 1,000 jobs

Rating

0.0

(0)

Developer

David Braun

David Braun

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Startup Jobs Search: Greenhouse, Lever & Ashby career pages in one query

Search open roles across thousands of startup career pages in a single run. Filter by title keywords, location, remote status, department, company, and posting date. Results come from a pre-built index of company job boards hosted on Greenhouse, Lever, and Ashby, refreshed every few hours, so a search over every company finishes in seconds instead of crawling each site.

No login, no API keys, no proxies, no browser. The data comes from the public job-board endpoints each company publishes for its own careers page.

What you can do with it

  • Job search across companies. "Every staff engineer role posted in the last 7 days that is remote-friendly." One run, one CSV.
  • Hiring signals for sales. Track which companies just opened roles in your category. A hiring spike is a buying signal.
  • Recruiting and sourcing. Watch competitors' openings by department, or find companies hiring for a skill you place.
  • Market research. Salary ranges where companies publish them, remote policy by company, hiring volume by sector.
  • Alerts and pipelines. Schedule the actor, filter with postedWithinDays, and pipe new rows to Slack, Google Sheets, Airtable, or your own database with Apify integrations, Make, n8n, or Zapier.
  • AI agents. Every filter is a plain input field, so an agent can call this actor as a tool through the Apify MCP server and get clean JSON back.

Sample output

One row per job:

{
"id": "greenhouse:stripe:8142952",
"title": "Staff Software Engineer, Link - Bank Connections",
"company": "Stripe",
"companySlug": "stripe",
"companyWebsite": "https://stripe.com",
"ats": "greenhouse",
"url": "https://stripe.com/jobs/search?gh_jid=8142952",
"applyUrl": "https://stripe.com/jobs/search?gh_jid=8142952",
"location": "San Francisco, Seattle, New York",
"locations": ["San Francisco, Seattle, New York"],
"workplaceType": null,
"isRemote": null,
"department": "Engineering",
"team": null,
"employmentType": null,
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryInterval": null,
"salaryRaw": null,
"postedAt": "2026-09-25T18:11:53.000Z",
"updatedAt": "2026-09-25T20:44:56.000Z",
"seniority": "staff_or_principal",
"roleFamily": "software_engineering"
}

With includeDescription on, each row also carries descriptionHtml and descriptionText.

Two fields are added by classification rather than copied from the company: seniority (intern, junior, mid, senior, staff_or_principal, manager, director_or_above) and roleFamily (software_engineering, data, devops_sre, security, product, design, sales, marketing, customer, operations, people_finance_legal, research, hardware, other). They are derived from the title and department with a decision model, once per distinct title, and are null for titles not yet classified.

Other fields are filled only when the company publishes them. Salary appears when the job board exposes a pay range (common on Ashby and Lever, and on Greenhouse boards with pay transparency turned on). Nothing is guessed.

Input

FieldWhat it does
titleKeywordsKeep jobs whose title contains any of these words or phrases. Case-insensitive. Empty means all titles.
requireAllKeywordsRequire every keyword instead of any.
excludeKeywordsDrop jobs whose title contains any of these.
locationsKeep jobs whose location contains any of these strings, for example London, Remote, New York.
remoteany, remote_only, or exclude_remote, using the company's own remote flag or a "remote" location.
departmentsKeep jobs whose department or team contains any of these.
seniorityKeep only these seniority levels, for example ["senior", "staff_or_principal"].
roleFamiliesKeep only these role families, for example ["software_engineering", "data"].
companiesRestrict to these companies by name or career-page slug.
postedWithinDaysOnly jobs first published within this many days.
maxResultsCap on returned jobs. Newest first.
includeDescriptionAlso fetch the full description for each returned job.
boardsExtra career boards to fetch live and search alongside the index, as greenhouse:slug, lever:slug, ashby:slug, or the board URL.
sourceindex (default) or live to search only the boards and companies you list.

Example: remote senior or staff engineering roles posted this week.

{
"roleFamilies": ["software_engineering"],
"seniority": ["senior", "staff_or_principal"],
"remote": "remote_only",
"postedWithinDays": 7,
"maxResults": 500
}

Example: everything a specific set of companies has open right now, fetched live.

{
"source": "live",
"boards": ["greenhouse:stripe", "ashby:linear", "lever:palantir"],
"includeDescription": true
}

Pricing

Pay per event. You pay only for jobs returned, never for searching.

EventPrice
Job returned$0.004, so $4 per 1,000 jobs
Full description attached$0.002, only when includeDescription is on

The first 5 jobs of every run are free, so you can check the output before paying for anything. Runs stop cleanly at your spending limit.

How the index works

A maintainer schedule fetches every company in the bundled list from the three job-board APIs, normalizes the jobs into one schema, and stores the result in a public Apify key-value store. Your run reads that store, applies your filters, and returns rows. The OUTPUT record of each run reports indexBuiltAt so you know how fresh the data is.

If you need a company that is not in the index, add its board under boards and it is fetched live in the same run. If you would rather keep a private index of your own companies, run the actor with mode: refresh; it writes an index into a key-value store in your account that you can then search with indexStoreId.

Limits and honesty

  • Coverage is companies on Greenhouse, Lever, and Ashby. Workday and custom career sites are not included yet.
  • Jobs are as fresh as the last index refresh, typically a few hours. Use boards with source: live when you need this minute.
  • Location and remote fields are whatever the company wrote. Some companies put six cities in one string.
  • Descriptions are fetched on demand from the source, so a company that removed a job between the refresh and your run returns no description for it, and you are not charged for it.

About

Built and maintained by Kindling Labs. Issues and feature requests are welcome on the Issues tab; they are read and answered.