Career Site Jobs Scraper: Greenhouse, Lever, Ashby, Workday avatar

Career Site Jobs Scraper: Greenhouse, Lever, Ashby, Workday

Pricing

from $1.50 / 1,000 job listings

Go to Apify Store
Career Site Jobs Scraper: Greenhouse, Lever, Ashby, Workday

Career Site Jobs Scraper: Greenhouse, Lever, Ashby, Workday

Every open job from company career sites on Greenhouse, Lever, Ashby, Workday, Workable, SmartRecruiters, Recruitee, Personio and BambooHR, with salaries, remote/hybrid, seniority, new-job tracking and hiring summaries.

Pricing

from $1.50 / 1,000 job listings

Rating

0.0

(0)

Developer

AIMindTeams

AIMindTeams

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Get every open job straight from company career sites, in one clean format. List the companies you care about and this Actor pulls their live openings directly from the hiring systems they use:

Greenhouse · Lever · Ashby · Workday · Workable · SmartRecruiters · Recruitee · Personio · BambooHR

Every job comes back normalized, whichever system it came from:

  • Title, department, team and a seniority level (intern to executive)
  • Location, all locations, city, region, country and workplace type (remote, hybrid, on-site)
  • Salary range with currency and period, from structured pay fields or pay-transparency text
  • Employment type, posting date, requisition ID, job and apply links
  • Full description as clean text (optional)
  • "Only new jobs" mode for scheduled runs, so you only see (and pay for) newly posted roles
  • A hiring summary per company: open roles, top departments, remote share and newest posting

No API keys, no logins and no browser. Press Start to pull current openings from Stripe, Palantir and Ramp.


Why this Actor exists

Job boards like LinkedIn and Indeed are noisy, duplicated and hard to scrape. The original source of almost every tech and corporate job is the company's own careers page, which runs on a handful of hiring systems with public job feeds. This Actor reads those feeds directly.

Job board scrapersSingle-system scrapersCareer Site Jobs Scraper
SourceAggregator copiesOne hiring system9 hiring systems, first-party
Duplicates and stale postsCommonRareRare
Same output format across systemsNoNoYes
Salary rangesSometimesSometimesStructured + parsed from pay-transparency text
Remote / hybrid / on-siteInconsistentInconsistentNormalized
Seniority levelNoNoYes
Company websites or names as inputNoNoAuto-detects the careers site
New-jobs-only trackingNoRarelyYes

How it works

  1. Resolve each company. Careers page URLs and shorthands (greenhouse:acme) are matched exactly. For a website (acme.com), the Actor reads the homepage and careers pages to find the hiring system. For a name (Acme), it checks the public job boards and only accepts a match when the board's company name agrees.
  2. Fetch the company's open jobs from that system's public job feed. Paginated systems (Workday, SmartRecruiters) stop as soon as enough matching jobs are found.
  3. Normalize locations, workplace type, seniority, employment type, dates and salaries into one schema.
  4. Filter by title keywords, locations, remote, departments and posting date, then deliver one item per job.
  5. Summarize each company in the OUTPUT record.

Quick start

  1. Paste careers page URLs, websites or company names into Companies.
  2. Optionally add Job title keywords (for example engineer) or Locations (for example London or remote).
  3. Press Start and open the Overview tab, or export CSV, Excel or JSON.

Example input:

{
"companies": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/palantir",
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite",
"huggingface.co",
"Notion"
],
"keywords": ["engineer", "data"],
"locations": ["United States", "remote"],
"maxJobsPerCompany": 200,
"onlyNewJobs": true
}

Supported careers page formats

Hiring systemExample
Greenhouseboards.greenhouse.io/acme, job-boards.greenhouse.io/acme, embedded boards, EU boards
Leverjobs.lever.co/acme, jobs.eu.lever.co/acme
Ashbyjobs.ashbyhq.com/acme
Workdayacme.wd5.myworkdayjobs.com/External (any wdN host, with or without a locale)
Workableapply.workable.com/acme
SmartRecruitersjobs.smartrecruiters.com/Acme
Recruiteeacme.recruitee.com
Personioacme.jobs.personio.de or .com
BambooHRacme.bamboohr.com/careers

Input

FieldTypeDefaultWhat it does
companiesarray3 samplesCareers page URLs, ats:slug shorthands, websites or company names.
keywordsarraynoneKeep jobs whose title contains any keyword.
searchInDescriptionbooleanfalseAlso match keywords in descriptions.
locationsarraynoneKeep jobs whose location contains any term (remote also matches remote jobs).
remoteOnlybooleanfalseOnly fully remote jobs.
departmentsarraynoneKeep jobs whose department or team contains any term.
postedWithinDaysinteger0Only jobs posted in the last N days (0 = all).
maxJobsPerCompanyinteger100Cap per company after filters.
includeDescriptionbooleantrueInclude the description as clean text.
onlyNewJobsbooleanfalseSkip jobs delivered in earlier runs (per company).
maxConcurrencyinteger4Companies processed in parallel.

Output

One dataset item per job. Example:

{
"company": "Ramp",
"company_input": "https://jobs.ashbyhq.com/ramp",
"ats": "Ashby",
"board_url": "https://jobs.ashbyhq.com/ramp",
"job_id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"title": "Security Engineer, Cloud",
"department": "Engineering",
"team": "Backend",
"location": "New York, NY (HQ)",
"locations": ["New York, NY (HQ)", "Remote (Canada)", "Remote (US)"],
"city": "New York City",
"region": "NY",
"country": "USA",
"workplace_type": "hybrid",
"is_remote": true,
"employment_type": "full-time",
"seniority": null,
"posted_at": "2026-04-07T17:12:35Z",
"job_url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"apply_url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application",
"salary": { "min": 211400, "max": 290600, "currency": "USD", "period": "year", "text": "$211.4K - $290.6K", "source": "structured" },
"requisition_id": null,
"description_text": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams...",
"change_status": "untracked",
"scraped_at": "2026-10-17T19:00:00Z"
}

change_status is new when Only new jobs is on, otherwise untracked.

Hiring summary (OUTPUT record of the default Key-Value Store), one row per company:

{
"input": "https://jobs.ashbyhq.com/ramp",
"company": "Ramp",
"ats": "Ashby",
"board_url": "https://jobs.ashbyhq.com/ramp",
"resolved_by": "url",
"status": "ok",
"open_jobs_on_board": 214,
"jobs_delivered": 100,
"top_departments": [{ "department": "Engineering", "jobs": 41 }, { "department": "Sales", "jobs": 22 }],
"remote_share": 0.18,
"newest_posted_at": "2026-10-16T21:04:11Z",
"with_salary": 96
}

Pricing (Pay-Per-Event)

EventWhenPrice
job-listingOne job is delivered to your datasetSee the Pricing tab
  • You only pay for jobs that pass your filters. Companies, lookups and descriptions are included.
  • With Only new jobs on, jobs delivered in earlier runs are skipped for free.
  • Your run's maximum charge is respected: the Actor checks the remaining budget before each job and stops cleanly.

Use cases

  • Sales intelligence: hiring is the best buying signal. Watch target accounts for new roles in the teams you sell to.
  • Recruiting and talent intelligence: monitor competitors' openings, salary bands and remote policies.
  • Job boards and newsletters: build a niche board (AI, climate, remote, fintech) from first-party postings.
  • Investors and analysts: track headcount growth by department across a portfolio.
  • Job seekers: get a daily list of new roles at your dream companies.

Use it from AI agents (MCP)

Hosted Apify MCP server (Claude, ChatGPT, Cursor, VS Code and any client that supports remote MCP):

https://mcp.apify.com?tools=AIMindTeams/career-site-jobs-scraper

Local stdio server (for example, Claude Desktop claude_desktop_config.json):

{
"mcpServers": {
"career-jobs": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--tools", "AIMindTeams/career-site-jobs-scraper"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}

Example prompts:

  • "Which of these 10 companies are hiring data engineers in Europe, and what salary ranges do they post?"
  • "List remote product manager openings at Stripe, Ramp and Notion posted this week."
  • "Summarize which departments Palantir is hiring for."

Use it from code

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("AIMindTeams/career-site-jobs-scraper").call(
run_input={
"companies": ["https://boards.greenhouse.io/stripe", "notion.so"],
"keywords": ["engineer"],
"remoteOnly": True,
}
)
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
salary = job["salary"] or {}
print(job["company"], job["title"], job["location"], salary.get("min"), salary.get("max"), job["job_url"])

cURL (run and get the items in one call):

curl -X POST "https://api.apify.com/v2/acts/AIMindTeams~career-site-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["https://jobs.ashbyhq.com/ramp"], "maxJobsPerCompany": 20}'

FAQ

Which input format is most reliable? Careers page URLs. They are matched exactly. Websites work whenever the careers page links to or embeds a supported hiring system, and company names are matched only when the job board's own company name agrees.

What if a company uses a system that isn't supported? Its row in the hiring summary says "not found" with the reason, and you are not charged for it.

How are salaries found? From structured pay fields when the hiring system provides them (Ashby, Lever, Recruitee), otherwise from pay-transparency text in the description, for example "The base salary range is $185,000 - $255,000". The salary.source field says which.

How fresh is the data? Live. Every run reads the company's current job feed directly.

Is this legal? The Actor only reads the public job feeds that companies publish so their openings can be found. Use the data in line with the laws and terms that apply to you.


More from AIMindTeams


Changelog

  • 1.0: First release. Nine hiring systems, company website and name auto-detection, normalized locations, workplace type, seniority, employment type and salaries, new-jobs-only tracking and per-company hiring summaries.