Ashby Jobs API: Open Jobs + Compensation from Any Ashby Board avatar

Ashby Jobs API: Open Jobs + Compensation from Any Ashby Board

Pricing

from $1.00 / 1,000 job results

Go to Apify Store
Ashby Jobs API: Open Jobs + Compensation from Any Ashby Board

Ashby Jobs API: Open Jobs + Compensation from Any Ashby Board

Every open job from any Ashby board (jobs.ashbyhq.com) via the official public Job Postings API, with full compensation tiers (salary, equity, bonus), department, team, workplace type and all locations. Filters, only-new mode. $1 per 1,000 jobs.

Pricing

from $1.00 / 1,000 job results

Rating

0.0

(0)

Developer

Andrew Shamah

Andrew Shamah

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Ashby Jobs API: all open jobs from any Ashby board

Get every open job from any company that hires through Ashby (Ramp, Notion, Linear and a fast-growing share of AI and venture-backed startups) with compensation, in clean JSON, CSV or Excel. It reads Ashby's official, public Job Postings API with compensation enabled: no login, no browser, no proxies.

What makes it more than a generic job scraper:

  • 💰 Full compensation tiers. Ashby publishes structured compensation, often for most jobs on a board. You get the salary range (min, max, currency, interval) plus every component in every tier: salary, equity, bonus and commission, and the flags offersEquity / offersBonus.
  • 🌍 All locations: the primary location with city, region and country, plus every secondary location ("Remote (US)", "Miami, FL"…), and Ashby's own isRemote flag and workplace type (Remote / Hybrid / OnSite).
  • 🏷️ Department and team, both filterable, plus each board's department breakdown in the run SUMMARY.
  • 🔒 Only listed jobs: unlisted or hidden postings are never returned.
  • 🔁 Only-new mode for daily alerts and monitoring.

Price: $1 per 1,000 jobs ($0.001 per job returned), plus a tiny start fee. Boards that fail are listed as free error rows, and you never pay for jobs your filters drop.

Who uses it

  • Job boards and aggregators: keep listings for hundreds of Ashby companies fresh with a daily schedule and onlyNew.
  • Recruiters and sales teams: see who is hiring for which roles (hiring signals for outbound).
  • Job seekers: get alerts for new roles at your target companies, filtered by title, location, remote and salary.
  • Researchers and analysts: track hiring velocity, department mix and salary bands over time.

How to use it

  1. Add one or more Ashby boards: a URL like https://jobs.ashbyhq.com/ramp, or just the slug.
  2. Optionally set filters (title keywords, location, department, remote, salary…).
  3. Run it, then download the dataset as JSON, CSV, Excel or HTML, or read it through the Apify API.

Finding the board slug

The slug is the part after the domain: jobs.ashbyhq.com/ramp. Ashby slugs are case-sensitive for some companies, so copy the slug from the URL.

Not sure which ATS a company uses, or it uses Workable, SmartRecruiters, Recruitee, Personio, Teamtailor, BambooHR or Breezy? Use our multi-ATS Company Jobs API, which detects the ATS for you.

Input

InputWhat it does
companiesBoard URLs or slugs, one per line
keywords / excludeKeywordsTitle must contain any / none of these
locationsLocation, secondary locations or country contains any of these
departments, teamsDepartment / team contains any of these
employmentTypes, workplaceTypes, remoteOnlyJob type and remote/hybrid/on-site
postedWithinDaysPosted or updated in the last N days
onlyWithSalary, minAnnualSalaryOnly jobs with a published salary, and/or a minimum annualized top of range
onlyNewReturn only jobs not seen in your previous runs (for schedules and alerts)
includeDescription, redactContactsFull description text/HTML; emails and phones redacted by default
maxJobsPerCompany, maxJobsTotalHard caps (also cap your cost)

Example:

{ "companies": ["https://jobs.ashbyhq.com/ramp"], "keywords": ["engineer"], "remoteOnly": false, "onlyNew": true }

Output

One dataset item per job. Every item has the common fields ats, companySlug, company, jobId, title, location, locations, isRemote, postedAt, url, applyUrl, descriptionText, descriptionHtml, input, scrapedAt and error, plus these Ashby-specific fields:

FieldDescription
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryTextSalary component of the compensation summary
compensationSummarye.g. "$211.4K – $290.6K • Offers Equity"
compensationTiers[{title, summary, components: [{type, interval, currency, min, max, summary}]}]
offersEquity, offersBonusFrom the compensation components (null if the company publishes no compensation)
department, team, employmentTypeAshby fields (FullTime, PartTime, Intern, Contract, Temporary)
workplaceType, isRemoteRemote / Hybrid / OnSite
location, city, region, country, secondaryLocations, locationsAll locations
postedAt, url, applyUrlPublished date, posting and application links

Example item (shortened; values are illustrative):

{
"ats": "ashby", "companySlug": "ramp", "company": "ramp", "jobId": "34413f8d-…",
"title": "Security Engineer, Cloud", "department": "Engineering", "team": "Backend", "employmentType": "FullTime",
"workplaceType": "Hybrid", "isRemote": true, "location": "New York, NY (HQ)", "city": "New York City", "region": "NY", "country": "USA",
"secondaryLocations": ["Remote (Canada)", "Remote (US)", "Miami, FL"],
"salaryMin": 211400, "salaryMax": 290600, "salaryCurrency": "USD", "salaryPeriod": "YEAR",
"compensationSummary": "$211.4K – $290.6K • Offers Equity", "offersEquity": true, "offersBonus": false,
"compensationTiers": [{ "summary": "$211.4K – $290.6K • Offers Equity", "components": [
{ "type": "EquityPercentage", "interval": null, "currency": null, "min": null, "max": null, "summary": "Offers Equity" },
{ "type": "Salary", "interval": "YEAR", "currency": "USD", "min": 211400, "max": 290600, "summary": "$211.4K – $290.6K" }]}],
"postedAt": "2026-04-07T17:12:35.753Z", "url": "https://jobs.ashbyhq.com/ramp/34413f8d-…", "...": "..."
}

The default key-value store also has a SUMMARY record with, for each board, the company name, open-job count, how many jobs were output, and a department breakdown.

Monitoring: only new jobs

Turn on onlyNew and schedule the Actor (for example daily). Job IDs are remembered in a named key-value store in your own account, keyed by your list of boards, so each run returns (and charges for) only postings you have not seen before. Connect a webhook, Slack, email or Zapier/Make integration to get alerts.

Speed and cost

One API call per board: a board with 200 jobs takes 1–2 seconds. It runs on 512 MB by default; 256 MB is enough for most boards. Example: 10 companies × 150 jobs = 1,500 jobs ≈ $1.50.

FAQ

Is this allowed? Yes. It only reads the official public job-board API that Ashby provides so companies' job listings can be shown on other sites. It doesn't log in or scrape candidate data. Contact details in descriptions are redacted by default.

Why did a board return 0 jobs? The board exists but has no open jobs right now (see SUMMARY), or your filters removed everything. A wrong slug returns a free error row explaining what was wrong.

Can I get jobs from many companies at once? Yes. Add as many boards as you like; they are processed one after another.

Is the salary converted to one currency? No. Salaries are returned exactly as published, with their currency and period. minAnnualSalary compares annualized amounts without converting currency.