Job Search Scraper — Live Jobs Direct from Company Career Pages avatar

Job Search Scraper — Live Jobs Direct from Company Career Pages

Pricing

from $3.00 / 1,000 job postings

Go to Apify Store
Job Search Scraper — Live Jobs Direct from Company Career Pages

Job Search Scraper — Live Jobs Direct from Company Career Pages

Live jobs read straight from 768 employers' career pages on 17 ATS platforms (Greenhouse, Workday, Lever, Ashby, SuccessFactors, Oracle). No reposts, no ghost jobs. Filter by title, keyword, category, location, remote, salary, experience and visa.

Pricing

from $3.00 / 1,000 job postings

Rating

0.0

(0)

Developer

Spool

Spool

Maintained by Community

Actor stats

1

Bookmarked

9

Total users

4

Monthly active users

13 days ago

Last modified

Share

Search live job listings read straight from company career pages, across 1,129 verified employers on 17 ATS platforms: Greenhouse, Workday, Lever, Ashby, SmartRecruiters, SAP SuccessFactors, Oracle Cloud HCM, Phenom, Eightfold and more. Powered by the spool job engine. No job-board reposts, no expired or ghost jobs, no proxies, no login.

Senior Software Engineer, Payments Stripe Remote, US $180,000–$260,000 Software Engineering · senior greenhouse
Staff Machine Learning Engineer Databricks San Francisco $190,000–$285,000 AI & Machine Learning · lead greenhouse
Lead, Systems Engineering L3Harris Ottawa, CA $126,500–$176,500 Manufacturing & Hardware successfactors
Security Engineer, Cloud Ramp New York (HQ) $175,000–$220,000 Security · mid ashby

Why this scraper instead of scraping LinkedIn or Indeed?

  • Direct from the source. Every posting comes from the employer's own career page, read at query time. What you get is what the employer shows today, with the real posting date and the direct application link.
  • No expired or ghost jobs. Nothing is served from a stale database. A posting that is gone from the career page cannot appear in your results.
  • No duplicate spam. One canonical listing per role. Set the deduplication mode to collapse an employer's multi-location copies into one row.
  • Enriched fields on every row. Job category (30), employment type, experience level and years asked, visa sponsorship, education, 190 technologies as skills, salary annualised in USD, parsed city, region and country, remote or hybrid or on-site.
  • No proxies. The boards publish public JSON meant for exactly this, so runs are cheap and start fast: the first rows land within seconds, the 300 largest employers finish in about four minutes, the whole list of 1,129 in about twelve.

What you can filter by

FilterExamples
Job titlesSoftware Engineer, Account Executive, Data Analyst (phrase or every word in the title)
KeywordsPython, Kubernetes, HIPAA, Salesforce — in the title, skills or posting text, any of them
Job categories30 categories, from Software Engineering and AI & Machine Learning to Healthcare and Skilled Trades
Workplace typeRemote, hybrid, on-site
LocationNew York · Texas · London · Germany, matched against the employer's label and the parsed city, region, country
CountriesTwo-letter codes: US, CA, GB, DE, IN
Employment typeFull-time, part-time, contract, internship, temporary
Experiencejunior → executive, plus minimum and maximum years of experience asked
PostedWithin the last N days
ATS platformGreenhouse, Workday, Lever, Ashby and 13 more
SalaryOnly postings with a stated salary; a USD floor, annualised
Visa sponsorshipOnly postings whose text says sponsorship is available
TechnologiesOnly postings naming any of these (190 recognised)
CompaniesAdd your own employers by name, domain or careers URL; they are found through their careers page if needed
ExtrasDeduplicate by company and title, only new since last run, up to 5,000 results per run

Output

Each result carries: job title, company and website, direct application link, ATS platform and board URL, a stable jobSlug for syncing, posting date and days since posting, location with parsed city, region, country and workplace type, employment type, job category, department, experience level and years of experience, education level, visa sponsorship (true, false or not stated), salary as stated and annualised in USD, skills and skill categories, the employer's own description as clean text, and the title or keyword that matched.

{
"jobTitle": "Senior Software Engineer, Data Infrastructure",
"company": "Stripe",
"companyWebsite": "stripe.com",
"applicationLink": "https://stripe.com/jobs/listing/senior-software-engineer-data-infrastructure/6198542",
"jobBoard": "greenhouse",
"datePosted": "2026-10-03",
"location": "Toronto, Canada",
"locationType": "hybrid",
"country": "CA",
"employmentType": "fulltime",
"jobCategory": "Software Engineering",
"experienceLevel": "senior",
"yearsExperienceMin": 5,
"visaSponsorship": null,
"salaryMinUsd": 164000,
"salaryMaxUsd": 246000,
"skills": ["Python", "Kafka", "Kubernetes", "AWS"]
}

Export to JSON, CSV or Excel, or feed it into Make, n8n, Zapier, Google Sheets or the Apify API. The Jobs, Salaries in USD and Experience, visa, education views on the Output tab each show their own columns.

Example searches

Job seeker, a daily remote digest. Job titles Software Engineer, workplace type remote, experience level senior, minimum salary 150000, posted within 7 days. Run it on an Apify Schedule every morning with Only new since last run on and add the Gmail or Slack integration: new matches arrive in your inbox, nothing twice.

{ "jobTitles": ["software engineer"], "workplaceType": ["remote"], "experienceLevel": ["senior"], "minSalaryUsd": 150000, "postedWithinDays": 7, "onlyNew": true }

Recruiter, map a niche talent market. Job category Sales, keywords fintech, employer pool 800. Export to Excel and you have every live sales opening at the verified employers that mention fintech, with salaries where stated.

{ "jobCategories": ["Sales"], "keywords": ["fintech"], "employerPool": 800 }

Sponsorship search. Keywords Kubernetes, visa sponsorship on, countries US. Only postings whose text says sponsorship is available.

{ "keywords": ["Kubernetes"], "visaSponsorship": true, "countries": ["US"] }

Data team, keep a job board fresh. One category per scheduled run, maxResults 5000, deduplicate by company and title, only new since last run. Insert by jobSlug; a posting that disappears from a career page simply stops coming back.

{ "jobCategories": ["Data & Analytics"], "maxResults": 5000, "dedupeMode": "companyTitle", "onlyNew": true, "employerPool": 800 }

Your own watch-list, searched the same way. Add companies by name, domain or careers URL; they are found through their careers page when the name alone is not enough.

{ "jobTitles": ["account executive"], "companies": ["Datadog", "stripe.com", "https://jobs.ashbyhq.com/ramp"], "employerPool": 0 }

Measured on the platform, 11 October 2026 (builds 1.0.6 to 1.0.8). Every row below is one real run; costs are the per-posting charge, before the Actor start.

SearchBoardsPostings scannedDeliveredFirst rowsDoneCost
Default: remote software engineers, last 30 days30060,818285 (217 with salary, 261 with description)1.8 s3 min 45 s$0.86
Three named companies, account executive and SDR titles31,3281001.8 s2.2 s$0.30
Keyword Kubernetes, stated salary only3218,77715098 s98 s$0.45
US tech roles offering visa sponsorship (cap 60)250272,781 listed57, all with the sponsorship sentence78 s7 min 24 s$0.17
Remote roles posted in the last 24 hours (cap 60)250285,419 listed7, all dated today or yesterday12 s2 min 22 s$0.02
Software, data and AI internships (cap 60)25018,10660, all internships6 s2 min 35 s$0.18
Entry-level software engineers, two years or less (cap 60)25018,506603.5 s80 s$0.18
Workday employers only (cap 60)826,40060, all Workday4.7 s32 s$0.18
Tech roles paying $200k or more (cap 60)25028,48165, every one at or above the floor58 s5 min 14 s$0.20

Searches that depend on the posting text (keywords, visa sponsorship, salary floors, years of experience) read every candidate's description and take longer; title, category, location, platform and date searches are answered from the listings and start within seconds.

Ready-made searches

Each of these is a public task with its own page and schedule button. Open one, press Start, or save it as your own and change the filters.

SearchWhat it returns
Remote senior software engineer jobsRemote, senior, posted in the last 7 days
Remote jobs posted todayEvery remote role published in the last 24 hours, the whole list
Visa sponsorship tech jobs USAUS tech roles whose text says sponsorship is available
Tech jobs paying over $200kStated pay of $200,000 a year or more, annualised in USD
Entry-level software engineer jobsJunior roles asking for two years of experience or less
Software engineering internshipsInternships and co-ops in software, data and AI
Remote data engineer jobsData and analytics engineers, posted in 14 days
Machine learning engineer jobsThe AI and machine learning category, 30 days
Product manager jobsProduct management roles, 30 days
Workday jobsEvery Workday employer in the verified list

Input

FieldTypeWhat it does
jobTitleslistKeep postings whose title contains the phrase or every word of it
keywordslistKeep postings naming any of these in the title, skills or text
jobCategorieslistOne or more of the 30 categories
workplaceTypelistremote, hybrid, onsite
locationtextLocation label, city, region or country contains this text
countrieslistTwo-letter codes
employmentTypelistfulltime, parttime, contract, internship, temporary
experienceLevellistjunior, mid, senior, manager, director, executive
minYearsExperience, maxYearsExperiencenumberAgainst the years the posting asks for; postings stating no number are kept
postedWithinDaysnumberEmployer's posting or update date within N days
atsPlatformslistOnly employers on these systems
requireSalary, minSalaryUsdflag, numberStated salary only; USD floor, annualised
visaSponsorshipflagOnly postings whose text says sponsorship is available
requireTechlistOnly postings naming any of these technologies
companieslistExtra employers by name, domain or careers URL, up to 100
employerPoolnumberHow many verified employers to search, largest first (default 300, up to the whole list)
maxResultsnumberStop after this many postings (default 500, up to 5,000)
dedupeModechoicelocation (default), companyTitle, none
maxDescriptionsPerBoardnumberDescriptions per Workday, Oracle, SuccessFactors, Phenom or Eightfold board
onlyNew, monitorNameflag, textOnly postings not delivered before; the memory record's name

Output fields

FieldMeaning
jobTitle, company, companyWebsite, companyIndustry, companySizeThe posting's title and the employer, with industry and team size where the verified list knows them
applicationLink, jobBoard, boardUrl, jobId, jobSlugDirect apply link, the ATS platform, the board, the platform's id, and a stable key for syncing
datePosted, postedDaysAgoThe employer's own date
location, city, region, country, locationType, isRemoteAs stated, then parsed; remote, hybrid or onsite
employmentType, jobCategory, department, experienceLevelFrom the platform's field where it has one, otherwise from the title and text
yearsExperienceMin, yearsExperienceMax, educationLevel, visaSponsorshipRead from the posting text; visaSponsorship is true, false or null
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryMinUsd, salaryMaxUsd, salarySource, hasSalaryAs stated, then annualised in USD; ats or description
skills, skillCategoriesTechnologies named in the posting, 190 recognised
descriptionText, descriptionChars, matchedOn, dedupeKey, firstSeenAtThe employer's text, what matched, and the only-new bookkeeping

Live search or jobs database?

This ActorA jobs database API
Where results come fromThe employer's career page, read when you run itA crawl stored hours or days ago
Expired and ghost jobsCannot appearRemoved when the next re-check finds them gone
Coverage1,129 verified employers plus any company you nameWhatever the database crawled
Time to resultsFirst rows in seconds; 300 employers in about four minutesSeconds
ProxiesNoneNot your concern
Best forFeeds that must be exact, watch-lists, company-level signalsBroad keyword search across the whole market

Where the jobs come from

The search runs live over a bundled, verified list of 1,129 employers whose public boards answered when the list was built: Ashby (474), Greenhouse (293), Workday (82), Lever (72), Phenom (30), SAP SuccessFactors (30), Breezy (24), Oracle Cloud HCM (21), Rippling (20), Eightfold (16), Pinpoint (16), Personio (15), Teamtailor (13), SmartRecruiters (12), BambooHR, Recruitee and Amazon. Together they hold about 68,000 open roles on any given day, and 610 of the companies carry their industry and team size from the YC company data, from Stripe, Databricks, OpenAI and Anthropic to Lockheed Martin, Capital One, JPMorgan Chase, Nvidia, ExxonMobil and L3Harris. employerPool sets how many of them to search, largest first; companies adds any employer you name.

The list is rebuilt from benchmarks of the S&P 500 and 2,000 YC companies and grows with every pass. Companies you add are resolved by the same engine: name → board slug on every platform at once → the company's careers page and the system behind it, within six requests and ten seconds.

Pricing

$3.00 per 1,000 postings, on every plan. Pay per result: you are charged for postings actually delivered, up to 5,000 per run, plus Apify's small Actor-start fee. Duplicates, postings removed by your filters and postings already delivered in only-new mode cost nothing.

SearchPostingsCost
Default run (remote software engineers, last 30 days, 300 employers)285$0.86
1,000 postings1,000$3.00
A category across the whole list, 5,000 capup to 5,000up to $15.00
Daily only-new feed on a quiet day0the Actor start

The free plan's $5 monthly credit covers about 1,600 postings.

Use it from an AI agent, the API or an integration

MCP. Add the Apify MCP server to Claude, Cursor or any MCP client and the agent can call this Actor as a tool: "Find remote senior data engineering roles posted this week that pay over $180k and mention Snowflake."

https://mcp.apify.com/?tools=spool/job-search

API. POST https://api.apify.com/v2/acts/spool~job-search/run-sync-get-dataset-items?token=… with the filters as JSON returns the rows in one call; an empty body runs the default search. Python and JavaScript: client.actor("spool/job-search").call(run_input={...}) with apify-client. Schedules and integrations: run daily with onlyNew and push rows to Google Sheets, Airtable, Slack, HubSpot or a webhook from the Integrations tab.

FAQ

Do I need an account or API key for the job boards? No. The boards publish public listings; the Actor reads them directly. You pay per result through Apify only.

How is this different from a jobs database API? A database serves what it crawled hours or days ago and must re-check listings to remove the expired ones. This Actor reads the career pages when you run it, so the results are the employer's live board. The trade-off is time: rows start within seconds, but a search over the 300 largest employers takes about four minutes to finish and the whole list about twelve.

Why do I sometimes see the same job more than once? Some employers publish one posting per location. Set Deduplicate results to companyTitle to collapse them; skipped duplicates are not billed.

Can I run it on a schedule and get only new jobs? Yes. Turn on Only new since last run: the search remembers every posting it delivered, in a key-value store in your own account, and returns only new ones next time. The first run returns normal results and records the starting point. Changing the filters starts a fresh memory unless you set a monitorName.

What does "visa sponsorship" mean here? true when the posting text says sponsorship is available, false when it says it is not, null when it says nothing. The filter keeps only true.

How fresh are the dates? datePosted is the employer's own posting or last-update date. Where a platform gives no date, the field is empty and the posting is kept by the date filter rather than silently dropped.

A company I added was not found. RUN_SUMMARY.companies.notFound says why: the careers page uses a system the engine cannot read yet (iCIMS, Paradox, Taleo, Avature, ADP, UKG are recognised and named), the website did not answer, or no careers page was found. Paste the careers URL and the engine reads what is behind it.

Is this legal? The data comes from job listings employers publish openly on their own career pages through public endpoints intended for exactly this. No login, no candidate data, no paywall bypass. Handle any personal data a description happens to contain according to the law that applies to you.

Changelog

1.1.0 — 2026-10-11. The verified list grows to 1,129 employers (68,000 open roles) after a pass over 1,475 more YC companies; 610 of them carry industry and team size, now on every row as companyIndustry and companySize. Employment type comes from the platform's own field on Ashby, Lever, Workday and SmartRecruiters. Category, seniority, employment and date filters now run before descriptions are fetched, so filter-only searches finish in a fraction of the time; filters that need the posting text (keywords, visa sponsorship, years, salary floor, technologies) read every candidate's description. Date filters only return dated postings; Workday roles get their date from the listing. Live progress messages during the run.

1.0.0 — 2026-10-11. First release: live search over 768 verified employers on 17 ATS platforms plus any company you name; filters for titles, keywords, 30 categories, workplace type, location and country, employment type, experience level and years, posting date, platform, salary, visa sponsorship and technologies; deduplication modes; only-new mode; rows delivered in waves as boards answer.

More from spool