Job Search Scraper — Live Jobs Direct from Company Career Pages
Pricing
from $3.00 / 1,000 job postings
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
Maintained by CommunityActor stats
1
Bookmarked
26
Total users
12
Monthly active users
2 days ago
Last modified
Categories
Features
Share
Search live job listings read straight from company career pages, across 2,335 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 greenhouseStaff Machine Learning Engineer Databricks San Francisco $190,000–$285,000 AI & Machine Learning · lead greenhouseLead, Systems Engineering L3Harris Ottawa, CA $126,500–$176,500 Manufacturing & Hardware successfactorsSecurity 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 default pool of 400 employers finishes in about 30–60 seconds; a sweep of the whole list of 2,335 takes a few minutes (set
employerPoolto 2335).
What you can filter by
| Filter | Examples |
|---|---|
| Job titles | Software Engineer, Account Executive, Data Analyst (phrase or every word in the title) |
| Keywords | Python, Kubernetes, HIPAA, Salesforce — in the title, skills or posting text, any of them |
| Job categories | 30 categories, from Software Engineering and AI & Machine Learning to Healthcare and Skilled Trades |
| Workplace type | Remote, hybrid, on-site |
| Location | New York · Texas · London · Germany, matched against the employer's label and the parsed city, region, country |
| Countries | Two-letter codes: US, CA, GB, DE, IN |
| Employment type | Full-time, part-time, contract, internship, temporary |
| Experience | junior → executive, plus minimum and maximum years of experience asked |
| Posted | Within the last N days |
| ATS platform | Greenhouse, Workday, Lever, Ashby and 13 more |
| Salary | Only postings with a stated salary; a USD floor, annualised |
| Visa sponsorship | Only postings whose text says sponsorship is available |
| Technologies | Only postings naming any of these (190 recognised) |
| Companies | Add your own employers by name, domain or careers URL; they are found through their careers page if needed. When they leave room under your maximum, the same kinds of roles at comparable employers fill the rest, each row marked similar |
| Extras | Deduplicate 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. A short result is filled with the same kinds of roles at employers like them: same industry, nearest team size, from the verified list. Every added row says matchType: similar and names the company it is closest to in similarTo, and a notice at the end says how many were added. Set similarCompanies to 0 for the named companies only.
{ "jobTitles": ["account executive"], "companies": ["Datadog", "stripe.com", "https://jobs.ashbyhq.com/ramp"], "employerPool": 0 }
One company, and who else hires the same roles. Name a company with no title and the run returns its whole board, then the same categories of roles at its peers until the maximum is reached.
{ "companies": ["Ramp"], "employerPool": 0, "maxResults": 1000, "similarCompanies": 100 }
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.
| Search | Boards | Postings scanned | Delivered | First rows | Done | Cost |
|---|---|---|---|---|---|---|
| Default: remote software engineers, last 30 days | 300 | 60,818 | 285 (217 with salary, 261 with description) | 1.8 s | 3 min 45 s | $0.86 |
| Three named companies, account executive and SDR titles | 3 | 1,328 | 100 | 1.8 s | 2.2 s | $0.30 |
Keyword Kubernetes, stated salary only | 32 | 18,777 | 150 | 98 s | 98 s | $0.45 |
Company searches with the fill, measured 29 October 2026 (build 1.0.11).
| Search | Named company rows | Added similar rows | Done | Cost |
|---|---|---|---|---|
Ramp, no title, maxResults 1000 | 168 | 832 at 88 employers of comparable size, in the categories Ramp hires for | 2 min 32 s | $3.00 |
Stripe, no title, maxResults 1000 | 707 | 293 at 86 employers, 75 of them Fintech | 1 min 23 s | $3.00 |
Datadog, account executive, maxResults 300 | 47 | 253 account executive roles at 59 employers | 64 s | $0.90 |
Ramp, similarCompanies 0 | 168 | 0 | 4 s | $0.50 |
| US tech roles offering visa sponsorship (cap 60) | 250 | 272,781 listed | 57, all with the sponsorship sentence | 78 s |
| Remote roles posted in the last 24 hours (cap 60) | 250 | 285,419 listed | 7, all dated today or yesterday | 12 s |
| Software, data and AI internships (cap 60) | 250 | 18,106 | 60, all internships | 6 s |
| Entry-level software engineers, two years or less (cap 60) | 250 | 18,506 | 60 | 3.5 s |
| Workday employers only (cap 60) | 82 | 6,400 | 60, all Workday | 4.7 s |
| Tech roles paying $200k or more (cap 60) | 250 | 28,481 | 65, every one at or above the floor | 58 s |
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.
| Search | What it returns |
|---|---|
| Remote senior software engineer jobs | Remote, senior, posted in the last 7 days |
| Remote jobs posted today | Every remote role published in the last 24 hours, the whole list |
| Visa sponsorship tech jobs USA | US tech roles whose text says sponsorship is available |
| Tech jobs paying over $200k | Stated pay of $200,000 a year or more, annualised in USD |
| Entry-level software engineer jobs | Junior roles asking for two years of experience or less |
| Software engineering internships | Internships and co-ops in software, data and AI |
| Remote data engineer jobs | Data and analytics engineers, posted in 14 days |
| Machine learning engineer jobs | The AI and machine learning category, 30 days |
| Product manager jobs | Product management roles, 30 days |
| Workday jobs | Every Workday employer in the verified list |
Input
| Field | Type | What it does |
|---|---|---|
jobTitles | list | Keep postings whose title contains the phrase or every word of it |
keywords | list | Keep postings naming any of these in the title, skills or text |
jobCategories | list | One or more of the 30 categories |
workplaceType | list | remote, hybrid, onsite |
location | text | Location label, city, region or country contains this text |
countries | list | Two-letter codes |
employmentType | list | fulltime, parttime, contract, internship, temporary |
experienceLevel | list | junior, mid, senior, manager, director, executive |
minYearsExperience, maxYearsExperience | number | Against the years the posting asks for; postings stating no number are kept |
postedWithinDays | number | Employer's posting or update date within N days |
atsPlatforms | list | Only employers on these systems |
requireSalary, minSalaryUsd | flag, number | Stated salary only; USD floor, annualised |
visaSponsorship | flag | Only postings whose text says sponsorship is available |
requireTech | list | Only postings naming any of these technologies |
companies | list | Extra employers by name, domain or careers URL, up to 100 |
similarCompanies | number | When the named companies leave room under maxResults, add the same kinds of roles from up to this many comparable employers (default 100, 0 turns it off) |
employerPool | number | How many verified employers to search, largest first (default 300, up to the whole list) |
maxResults | number | Stop after this many postings (default 500, up to 5,000) |
dedupeMode | choice | location (default), companyTitle, none |
maxDescriptionsPerBoard | number | Descriptions per Workday, Oracle, SuccessFactors, Phenom or Eightfold board |
onlyNew, monitorName | flag, text | Only postings not delivered before; the memory record's name |
Output fields
| Field | Meaning |
|---|---|
jobTitle, company, companyWebsite, companyIndustry, companySize | The posting's title and the employer, with industry and team size where the verified list knows them |
applicationLink, jobBoard, boardUrl, jobId, jobSlug | Direct apply link, the ATS platform, the board, the platform's id, and a stable key for syncing |
datePosted, postedDaysAgo | The employer's own date |
location, city, region, country, locationType, isRemote | As stated, then parsed; remote, hybrid or onsite |
employmentType, jobCategory, department, experienceLevel | From the platform's field where it has one, otherwise from the title and text |
yearsExperienceMin, yearsExperienceMax, educationLevel, visaSponsorship | Read from the posting text; visaSponsorship is true, false or null |
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryMinUsd, salaryMaxUsd, salarySource, hasSalary | As stated, then annualised in USD; ats or description |
skills, skillCategories | Technologies named in the posting, 190 recognised |
descriptionText, descriptionChars, matchedOn, dedupeKey, firstSeenAt | The employer's text, what matched, and the only-new bookkeeping |
matchType, matchedOn, similarTo | company for an employer you named, verified for the verified list, keyword for an engineering role whose posting text names the technology in your title (the word in matchedOn), similar for a comparable employer added to fill the result, with the named company it is closest to |
Live search or jobs database?
| This Actor | A jobs database API | |
|---|---|---|
| Where results come from | The employer's career page, read when you run it | A crawl stored hours or days ago |
| Expired and ghost jobs | Cannot appear | Removed when the next re-check finds them gone |
| Coverage | 2,335 verified employers plus any company you name | Whatever the database crawled |
| Time to results | First rows in seconds; 300 employers in two to four minutes | Seconds |
| Proxies | None | Not your concern |
| Best for | Feeds that must be exact, watch-lists, company-level signals | Broad keyword search across the whole market |
Where the jobs come from
The search runs live over a bundled, verified list of 2,335 employers whose public boards answered when the list was built: Greenhouse (516), Ashby (498), Workday (488), SAP SuccessFactors (141), Lever (122), Phenom (112), Oracle Cloud HCM (108), Pinpoint (66), Breezy (52), Rippling (50), Personio (48), Teamtailor (44), SmartRecruiters (33), BambooHR (28), Eightfold (25), Recruitee (3), Amazon (1). Together they hold about 353,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 public seeds: every US-listed company (the SEC's register), the S&P 500, 2,000 YC companies, US hospitals (the CMS register) and US universities, 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.
| Search | Postings | Cost |
|---|---|---|
| Default run (remote software engineers, last 30 days, 300 employers) | 285 | $0.86 |
| 1,000 postings | 1,000 | $3.00 |
| A category across the whole list, 5,000 cap | up to 5,000 | up to $15.00 |
| Daily only-new feed on a quiet day | 0 | the 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, a search over the default 400 employers finishes in about a minute, and the whole list takes a few minutes.
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.
I searched "python developer" and got "Software Engineer" rows. Employers rarely put the language in the title; the posting text names it. When a title names a technology, the run adds engineering roles whose text names it, marked matchType: keyword with the word in matchedOn, after the title matches. Filter them out by matchType if you want titles only, or set keywords to search the text on your own terms.
I named one company and got rows from others. That is the fill: when the companies you named leave room under maxResults, the run adds the same kinds of roles at comparable employers, chosen by industry and team size from the verified list. Those rows are marked matchType: similar, similarTo names the company they are closest to, the notice row says how many were added, and RUN_SUMMARY.similar lists the basis. Set similarCompanies to 0 to receive only the companies you named; you pay only for rows delivered either way.
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.4.1 — 2026-11-03. Keyword rows are exact: the technology must appear as its own word, so "React" no longer matches "reactive" or "reaction" (36 of 191 React rows in a measured run), and iOS keeps its case, so a "Cisco IOS" network posting is not an iOS row. Keyword rows come in two tiers: roles of the kind your titles name first ("python developer" wants engineers, developers, programmers and architects; "salesforce administrator" wants administrators, consultants and specialists), then adjacent roles whose posting names the technology, only to fill what is left; RUN_SUMMARY.keywordPass.roles gives the split. "Engineering Manager" and "Head of Engineering" no longer match an engineer search through the word "engineering".
1.4.0 — 2026-11-03. Speed and a keyword pass. A default run of 400 employers now finishes in about 30–60 seconds (it was four minutes): every board is read through its own small connection pool, enterprise boards (Workday, Oracle, Phenom, SuccessFactors) run as a parallel stream beside the fast boards instead of after them, posting text is stripped only for rows that are delivered, and the default memory is 4 GB. When a job title names a technology (Python, React, Salesforce, iOS, Java, EDI, SAP, Kubernetes …), a second pass searches the same boards for engineering roles whose posting text names that technology, because most employers title the role "Software Engineer" and name the language in the text. Those rows are marked matchType: keyword with the word in matchedOn, come after the title matches, are spread across employers, and a notice reports how many were added (RUN_SUMMARY.keywordPass). Set keywords yourself to search the text directly instead.
1.3.0 — 2026-11-03. Coverage. The verified list grows to 2,335 employers (353,000 open roles) from new public seeds: every US-listed company in the SEC register, US hospital systems from the CMS register and US universities, resolved through their careers pages to 17 platforms (Greenhouse (516), Ashby (498), Workday (488), SAP SuccessFactors (141), Lever (122), Phenom (112), Oracle Cloud HCM (108), Pinpoint (66), Breezy (52), Rippling (50), Personio (48), Teamtailor (44), SmartRecruiters (33), BambooHR (28), Eightfold (25), Recruitee (3), Amazon (1)). Greenhouse boards now deliver up to 150 descriptions per board in a pool search (was 30, which left a fifth of default-run rows without text). employerPool can be set to the whole list. Salaries stated on an employer's board are annualised in USD on every platform (1.2.1).
1.2.1 — 2026-10-31. Salaries stated on the employer's own board (Ashby and others send the pay period as "1 YEAR" or "1 HOUR") are now annualised and converted to USD like every other salary. Before this fix those rows carried the pay in salaryMin/salaryMax but no salaryMinUsd/salaryMaxUsd, the minSalaryUsd filter dropped them, and the Salaries in USD view left them out. Found in a quality pass: 171 of Ramp's 191 salaried roles, 86 of 150 Kubernetes roles with stated pay.
1.2.0 — 2026-10-29. Company searches fill up: when the companies you name leave room under maxResults, the same kinds of roles at comparable employers (same industry, nearest team size, from the verified list) are added, up to similarCompanies boards (default 100). Every row now carries matchType (company, verified or similar) and similarTo; a notice reports what was added and RUN_SUMMARY.similar the basis. Industry and team size are now attached to named companies that appear in the verified list.
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
- Career Page Scraper & ATS Jobs API — 17 ATS Platforms, No Proxy — whole boards for the companies you name, with hiring profiles per company
- Job Board Scraper & API — LinkedIn, Indeed, Glassdoor + 29 More — one search across 33 sources with the employer's posting attached
- Company Tech Stack API — Detected from Job Postings — a company's technologies read from its own job board