Ashby Jobs Scraper with Salary Data
Pricing
from $1.50 / 1,000 job results
Ashby Jobs Scraper with Salary Data
Scrape all open jobs from any Ashby job board (jobs.ashbyhq.com) via the official Job Posting API, with structured salary ranges (min, max, currency, interval), remote/hybrid flag, departments and descriptions. Salary-only filter and new-job monitoring.
Pricing
from $1.50 / 1,000 job results
Rating
0.0
(0)
Developer
Gabor Sziladi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape every open job from any Ashby career site into a clean dataset: title, department, team, locations, remote flag, employment type, posting date, apply link, full plain-text description, salary range, and more. The Actor uses the official Ashby Job Posting API (api.ashbyhq.com/posting-api/job-board) with compensation enabled, the same public endpoint behind every jobs.ashbyhq.com career page. It's fast, reliable and cheap: $1.50 per 1,000 jobs.
Turn on Only new jobs and schedule the Actor to get a daily feed of new Ashby postings, paying only for the new ones.
- ✅ Paste Ashby URLs or just company slugs
- ✅ All open jobs, one normalised record per job
- ✅ Filters: keywords, exclude keywords, locations, remote only, posted within N days, only jobs with salary
- ✅ Only new jobs monitoring mode for alerts, webhooks, Slack, Google Sheets, Zapier or Make
- ✅ One broken company never fails the run; errors are listed in the
OUTPUTsummary - ✅ No login, no proxies, no browser. Polite, rate-limited requests to the official endpoint.
Need other ATS platforms too? The all-in-one ATS Jobs Scraper (sysco32/ats-jobs-feed) covers 9 platforms (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Personio and Teamtailor) and auto-detects the ATS from any careers URL.
What data you get
Ashby is the best ATS for salary data: many Ashby companies publish structured pay ranges. Each job includes salary.min, salary.max, salary.currency, salary.period (e.g. 1 YEAR) and the human-readable summary ($211.4K - $290.6K). In our test, 922 of 1,110 jobs at Ramp, OpenAI and Perplexity had a salary range. You also get department, team, employment type, remote flag, workplace type, publish date and the full description. Turn on Only jobs with salary to drop postings without pay data.
| Field | Example |
|---|---|
company, company_slug | Company name and Ashby identifier |
job_id, requisition_id | Stable IDs for deduplication |
title, department, team | Job title and organisation |
location, locations[], remote, workplace_type | All locations plus remote / hybrid / onsite |
employment_type | Full-time, part-time, contract… when published |
posted_at, updated_at | ISO 8601 UTC |
salary | {min, max, currency, period, text} when published |
job_url, apply_url | Direct links |
description_text (+ optional description_html) | Full job description |
Input example
{"companies": ["https://jobs.ashbyhq.com/ramp","openai","perplexity"],"keywords": ["engineer"],"remoteOnly": false,"maxJobsPerCompany": 100,"includeDescription": true,"onlyNewJobs": true,"onlyWithSalary": true}
You can paste: https://jobs.ashbyhq.com/ramp, a careers page with an embedded Ashby board, or just the slug (openai).
Output example (real run)
{"company": "Ramp","company_slug": "ramp","ats": "ashby","job_id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245","requisition_id": null,"title": "Security Engineer, Cloud","department": "Engineering","team": "Backend","location": "New York, NY (HQ); Remote (Canada); Remote (US); Miami, FL","locations": ["New York, NY (HQ)","Remote (Canada)","Remote (US)","Miami, FL"],"remote": true,"workplace_type": "hybrid","employment_type": "FullTime","posted_at": "2026-04-07T17:12:35Z","updated_at": null,"salary": {"min": 211400,"max": 290600,"currency": "USD","period": "1 YEAR","text": "$211.4K - $290.6K"},"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","description_text": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams, embedded in the transaction flow of every dollar a business spends. We automate how over $275B in annualized spend flows in and out of 85,000+ comp…","description_html": null,"source_input": "https://jobs.ashbyhq.com/ramp","scraped_at": "2026-10-21T17:21:19Z"}
Download the results as JSON, CSV, Excel or XML, or read them through the Apify API. A per-company summary (jobs found, jobs written, errors) is saved to the OUTPUT record of the run's key-value store.
Pricing
Pay per event, no subscription:
| Event | Price |
|---|---|
| Job result (one job in the dataset) | $0.0015 ($1.50 per 1,000 jobs) |
| Actor start (per run) | $0.002 |
For example, 500 jobs cost about $0.75. A daily Only new jobs monitor that finds 20 new jobs costs about $0.03 per run. Failed companies are never charged, and you can set a maximum cost per run.
Use cases
- Salary benchmarking and pay-transparency research across Ashby-based startups and scale-ups (OpenAI, Ramp, Perplexity, Linear, Notion, Cursor and many more).
- Build niche job boards and newsletters from a list of target employers.
- Sales and recruiting intelligence: hiring is a buying signal, so see which accounts are hiring, for which teams and where.
- Job alerts for yourself or your candidates via Only new jobs plus a schedule.
- Feed clean job data to AI agents, RAG pipelines and spreadsheets.
FAQ
Is this legal? The Actor reads only the public job-board endpoint that Ashby provides so job postings can be displayed on career sites and job boards. No login and no personal data, apart from what employers publish in their job ads. You are responsible for how you use the data.
Why are some salaries missing? The company chose not to publish compensation on its Ashby board. Use Only jobs with salary to keep only jobs with pay data.
Can I build a salary benchmark? Yes. Run the Actor over the AI and fintech companies you care about, then aggregate salary.min and salary.max by title, department or location. The dataset has a ready-made "Jobs with salary" table view.
How does "Only new jobs" work? The Actor remembers the job IDs it has already delivered for each company in a named key-value store (stateStoreName). Later runs output only unseen jobs. The first run returns everything that matches, and closed jobs drop out of the state automatically. Jobs held back by Max jobs per company are delivered in the next run.
One company failed. What happens? It's logged and listed in OUTPUT.errors, and the other companies are still processed. If you paste a URL from another ATS, the error message points you to sysco32/ats-jobs-feed.