Career Site Job Scraper – Live Jobs from Company Career Pages avatar

Career Site Job Scraper – Live Jobs from Company Career Pages

Pricing

from $0.90 / 1,000 job postings

Go to Apify Store
Career Site Job Scraper – Live Jobs from Company Career Pages

Career Site Job Scraper – Live Jobs from Company Career Pages

Get live job postings straight from company career sites on Greenhouse, Lever, Ashby, SmartRecruiters and Recruitee. Filter by keyword, location, remote and date. Optional salary ranges. Clean JSON, fair pay per job.

Pricing

from $0.90 / 1,000 job postings

Rating

0.0

(0)

Developer

DataTaskFlow

DataTaskFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Get live job postings straight from company career sites as clean JSON, CSV or Excel. Point the Actor at a company and it reads the official public job board the company uses: Greenhouse, Lever, Ashby, SmartRecruiters and Recruitee. Every job is fetched at run time, so you never get stale or already-closed roles.

You only pay for jobs that were returned with data. Failed or empty companies are never charged.

What you get

FeatureDetails
🏢 Live from the sourceJobs come directly from the employer's own board, with a direct apply link
🔎 Auto-detectionPaste a board URL, greenhouse:stripe, a plain company slug, or even the company's own career page – the Actor works out which system it uses
🎯 FiltersTitle keywords, excluded keywords, locations, remote only, posted within N days, search inside descriptions
💰 Salary (add-on)Structured pay ranges when published, plus ranges detected in the job text (min, max, currency, interval)
🧼 Clean outputOne flat item per job, same field names for every source, ISO dates, plain-text description (HTML optional)
🛡️ ReliabilityAutomatic retries, clear error rows instead of crashes, a RUN_STATS summary of every run

Use cases

  • Job boards and aggregators: feed fresh, direct-apply jobs from the employers you choose.
  • Recruiters and sales teams: see which companies are hiring for which roles, and how fast they grow.
  • Market research: track hiring by department, location and pay across competitors.
  • Job alerts and AI agents: schedule a daily run with postedWithinDays and push new roles to Slack, Sheets, n8n or Make.

How to use it

  1. Add companies, one per line (see formats below).
  2. Optionally set keywords, locations, remote only or a date limit.
  3. Click Start and download results in JSON, CSV, Excel or through the API.

Accepted company formats:

  • Board URL: https://boards.greenhouse.io/stripe, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/ramp, https://jobs.smartrecruiters.com/Visa, https://acme.recruitee.com
  • Explicit: greenhouse:stripe, lever:palantir, ashby:ramp, smartrecruiters:Visa, recruitee:acme
  • Company slug: stripe (all supported systems are tried)
  • A company career page URL (the Actor looks for the embedded job board)

Input example

{
"companies": ["greenhouse:stripe", "https://jobs.lever.co/palantir", "ashby:ramp"],
"keywords": ["engineer", "data"],
"excludeKeywords": ["intern"],
"locations": ["Remote", "United States"],
"postedWithinDays": 14,
"includeSalary": true,
"maxJobsPerCompany": 50,
"maxItems": 200
}

Output example (one item per job)

{
"ats": "greenhouse",
"companySlug": "stripe",
"company": "Stripe",
"jobId": "8172510",
"title": "Abuse Investigator",
"url": "https://stripe.com/jobs/search?gh_jid=8172510",
"applyUrl": "https://stripe.com/jobs/search?gh_jid=8172510",
"location": "Seattle, San Francisco, New York City",
"locations": ["US"],
"country": null,
"remote": null,
"workplaceType": null,
"employmentType": null,
"department": "Security Analytics",
"team": null,
"postedAt": "2026-09-09T14:50:29Z",
"updatedAt": "2026-09-25T20:45:00Z",
"salaryMin": 120000,
"salaryMax": 160000,
"salaryCurrency": "USD",
"salaryInterval": "year",
"salarySource": "description",
"descriptionText": "About the team ...",
"scrapedAt": "2026-10-03T08:00:00Z"
}

Fields a source system does not publish are null. Salary fields appear only when Include salary is on. If a company cannot be read, you get a row with the input and an error instead.

Run summary

Every run saves a RUN_STATS record (Storage → Key-value store): companies with jobs, without jobs and failed (with reasons), jobs found, filtered out, returned, and jobs per source system.

Pricing

Pay per result, no start fee and no platform usage fees:

EventWhen it is charged
Job postingOnce per job returned with data
Salary data (add-on)Per job where a salary range was found, only if you turned Include salary on

Jobs that are filtered out, companies without a board and failed items are never charged. Use Max jobs in total to cap the cost of a run. Exact prices are on the Pricing tab and get lower on higher Apify plans.

FAQ

Which systems are supported? Greenhouse, Lever, Ashby, SmartRecruiters and Recruitee. Companies on other systems (for example Workday) are not covered; you get a clear error row for them.

Can I search all companies by keyword? No. This Actor reads the companies you list, so results are always live and complete for those employers. It does not search a pre-built database.

Is the pay shown exact? Pay is only returned when the employer publishes it, either as structured data or as a range in the job text. Ranges detected from text are marked with salarySource: "description".

Can I schedule it? Yes. Use Apify Schedules, set postedWithinDays to 1 and connect the output to Slack, Sheets, n8n, Make or your own API.

Is this legal? The Actor uses only the public job-board endpoints that employers publish for job seekers and job boards, with no login and no personal data. You are responsible for using the data in line with applicable laws and the terms of the career sites.

Support

Found a bug or need another job board supported? Open an issue on the Issues tab – fixes usually ship within a few days.