Ashby Jobs Scraper avatar

Ashby Jobs Scraper

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
Ashby Jobs Scraper

Ashby Jobs Scraper

Returns every open job from a company's Ashby job board, for job boards, recruiters and hiring research: title, department, team, locations, remote status, salary range when published, description and apply link. Paste a board URL or company name. Can return only postings new since the last run.

Pricing

from $1.50 / 1,000 jobs

Rating

0.0

(0)

Developer

Enis Bodlli

Enis Bodlli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get every open job from a company's Ashby job board as clean, structured data: title, department, team, all locations, remote status, employment type, salary range when published, full description and apply link. Paste a board address such as https://jobs.ashbyhq.com/openai, or just the board name. The easiest way to try it is to keep the example input and press Start: you get the first 25 jobs from two example boards.

The Actor reads the job posting endpoint Ashby offers for showing a company's jobs on other sites. It does not use a browser or proxies, and one request returns a whole board, so runs are fast.

What you can do with Ashby job data

  • Monitor startups and tech companies for new openings. Turn on Only jobs that are new since the last run, add a schedule, and each run returns just the postings that appeared since the previous one.
  • Collect salary ranges. Where a company publishes compensation on the posting, the Actor returns it as numbers: minimum, maximum, currency and interval.
  • Build a job board or a newsletter from the companies you choose, with department, team and remote status ready to filter on.
  • Track hiring as a signal for sales prospecting, investing or competitor research.
  • Feed an AI agent or a spreadsheet with current job postings in one fixed format.

How to scrape Ashby job postings

  1. Add one entry per company under Ashby job boards. Any of these work:
    • a board address: https://jobs.ashbyhq.com/openai
    • the address of a single job on a board; the Actor reads the whole board
    • a company careers page that links to an Ashby board
    • just the board name: openai
  2. Optionally narrow the results with title keywords, location keywords or Remote jobs only.
  3. Run the Actor and export the results as JSON, CSV or Excel, or read them through the API.

The board name is the word after jobs.ashbyhq.com/ in the address of a company's job pages.

How much does it cost to scrape Ashby jobs?

You pay per job returned: $2.50 per 1,000 jobs ($0.0025 each) on the Free and Starter (Bronze) plans, $2.00 on Scale (Silver) and $1.50 on Business (Gold) and above, plus $0.00005 per run start. Platform usage is included, so there is nothing else to pay.

  • 40 boards with 15 open jobs each: 600 jobs, $1.50.
  • One large board with 800 open jobs: $2.00.
  • Daily monitoring with Only jobs that are new since the last run: you pay only for new postings. 15 new jobs a day is about $0.04 a day.
  • A run that finds nothing new costs $0.00005.

You can set a maximum charge per run. The Actor stops when it is reached, and the jobs it held back are returned by a later run.

Input

FieldWhat it does
Ashby job boardsBoard addresses, careers pages that link to a board, or board names. Required.
Title keywordsKeep jobs whose title contains any of these. Not case sensitive.
Location keywordsKeep jobs with a location that contains any of these. Not case sensitive.
Remote jobs onlyKeep only jobs the company marked as remote.
Exclude title keywordsDrop jobs whose title contains any of these.
Department keywordsKeep jobs whose department or team contains any of these.
Employment typesKeep full-time, part-time, contract, temporary or internship jobs. Jobs whose type the job system does not state are kept.
Seniority levelsKeep jobs whose title states one of the chosen ranks, such as senior, staff or director.
Posted within daysKeep jobs published in the last N days.
Only jobs with a salaryKeep jobs that state pay.
Include job descriptionAdd the description as plain text and HTML. Default: on.
Only jobs that are new since the last runReturn only postings that appeared since the previous run.
Monitor nameA name for this search's memory of seen jobs, so two searches on the same company do not share it.
Maximum jobs per companyStop after this many jobs for each board. 0 means no limit.

Example:

{
"companies": ["https://jobs.ashbyhq.com/openai", "notion"],
"titleKeywords": ["engineer", "engineering manager"],
"locationKeywords": ["new york", "remote"],
"includeDescription": false,
"onlyNewSinceLastRun": true
}

Output

One item per job posting. Two items from test runs, with the descriptions shortened:

[
{
"company": "openai",
"companyName": null,
"ats": "ashby",
"jobId": "c414f15f-60c4-40b5-a896-d2ad6c7f4415",
"title": "Senior Technical Program Manager - Security",
"seniority": "senior",
"department": "Security",
"team": "Security",
"location": "US - Remote",
"locations": [
"US - Remote",
"New York City",
"Seattle",
"Washington, DC",
"San Francisco"
],
"isRemote": true,
"workplaceType": "remote",
"employmentType": "full_time",
"employmentTypeText": "FullTime",
"salaryMin": 165400,
"salaryMax": 285000,
"salaryCurrency": "USD",
"salaryInterval": "year",
"salaryText": "$165.4K - $285K",
"salarySource": "ats",
"publishedAt": "2026-06-25T17:30:54.205Z",
"updatedAt": null,
"jobUrl": "https://jobs.ashbyhq.com/openai/c414f15f-60c4-40b5-a896-d2ad6c7f4415",
"applyUrl": "https://jobs.ashbyhq.com/openai/c414f15f-60c4-40b5-a896-d2ad6c7f4415/application",
"descriptionText": "About the Team OpenAI builds powerful AI systems like ChatGPT, the OpenAI API ...",
"descriptionHtml": "<p style=\"min-height:1.5em\"><strong>About the Team</strong></p> ...",
"scrapedAt": "2026-10-04T11:37:32.053Z"
},
{
"company": "notion",
"companyName": null,
"ats": "ashby",
"jobId": "3979a6f5-2abb-447b-bd3a-0565b06bae24",
"title": "Engineering Manager, Mobile AI",
"seniority": "manager",
"department": "Engineering",
"team": "Engineering",
"location": "New York, New York",
"locations": [
"New York, New York"
],
"isRemote": true,
"workplaceType": "hybrid",
"employmentType": "full_time",
"employmentTypeText": "FullTime",
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryInterval": null,
"salaryText": null,
"salarySource": null,
"publishedAt": "2026-05-21T16:12:14.026Z",
"updatedAt": null,
"jobUrl": "https://jobs.ashbyhq.com/notion/3979a6f5-2abb-447b-bd3a-0565b06bae24",
"applyUrl": "https://jobs.ashbyhq.com/notion/3979a6f5-2abb-447b-bd3a-0565b06bae24/application",
"descriptionText": "WHO WE ARE Notion is the collaborative AI workspace where teams and agents think ...",
"descriptionHtml": "<h1>Who We Are</h1><p style=\"min-height:1.5em\">Notion is the collaborative ...",
"scrapedAt": "2026-10-04T11:43:45.472Z"
}
]

A field is null when Ashby does not provide it. What to expect from an Ashby board:

FieldWhat Ashby provides
companyThe board name, for example openai.
companyNameAlways null. Ashby sends no display name.
jobIdThe Ashby posting ID.
department, teamBoth, as the company set them.
location, locationsThe main location, then the secondary locations of the posting.
isRemoteAshby's own remote flag. Companies also set it on some hybrid roles, as in the second item above.
workplaceTyperemote, hybrid or onsite when the company sets it, otherwise null.
employmentTypeAs Ashby writes it, for example FullTime.
Salary fieldsFilled when the company publishes compensation. salaryMin, salaryMax, salaryCurrency and salaryInterval come from the base salary; salaryText is Ashby's summary, for example $165.4K - $285K.
publishedAtWhen the posting was published.
updatedAtAlways null.

How to monitor an Ashby job board for new jobs

Turn on Only jobs that are new since the last run and put the Actor on a schedule. It keeps the IDs of the jobs that were open on the previous run in a key-value store named ashby-jobs-scraper-state in your account, and returns only postings whose ID is not in that list. The first run returns everything. Delete that store to start over.

Postings held back by Maximum jobs per company, or by the maximum charge you set for a run, are not marked as seen, so a later run returns them.

Each board has its own record, saved as soon as its jobs are stored, so a run that is stopped halfway does not report the same jobs as new the next time. Runs started from different saved tasks keep separate memories; set Monitor name to keep several searches apart within one task or through the API. If a board that had postings suddenly returns none, the list is kept as it was.

Limits

  • Salary is filled only where the company publishes compensation on the posting. In a test run on two boards, 23 of 50 postings had a salary range.

  • The salary fields cover base salary only. Equity and bonus are not returned as separate fields.

  • Remote jobs only follows Ashby's remote flag, so it can keep hybrid roles that a company flagged as remote. Check workplaceType when you need fully remote jobs only.

  • Postings a company has marked as unlisted are skipped.

  • Ashby returns a whole board in one answer. Maximum jobs per company limits what is saved and charged, not what is downloaded.

  • A careers page on the company's own domain works when its HTML links to the Ashby board. Pages that load the board only through JavaScript may not be detected; use the board address in that case.

  • No AI-written fields. Skills, benefits, visa sponsorship and requirement summaries are not returned; seniority, employment type and pay are read by fixed rules from what the posting states.

  • No company profile from LinkedIn or Crunchbase (size, industry, funding) and no hiring-manager name or email. The Actor returns what the company publishes on its own job board, and no personal data.

  • Seniority comes from words in the title (senior, staff, lead, director and so on). A title that states no rank has no seniority, and level numbers such as II or L4 are not interpreted, because they mean different ranks at different companies.

  • When the job system publishes no pay figures, the Actor reads a pay range from the description if one is written there, and sets salarySource to description. Bonuses, budgets and single figures are not read as pay.

  • Changing a filter does not bring back postings an earlier run already marked as seen. Use a new Monitor name for a new search.

FAQ

A company was "not found". Why? The name did not match an Ashby board. Open the company's careers page, click a job, and check the address. If it contains jobs.ashbyhq.com, paste that address instead of the name. If it does not, the company may use a different system.

The Actor says my URL runs on another system. Why? This Actor reads Ashby only. A Greenhouse, Lever or Workday address is reported as a failed company; see Other systems below.

Why is the salary empty for some jobs? The company did not publish compensation on that posting. Whether to publish it is the company's choice, posting by posting.

Is it legal to scrape Ashby job postings? The Actor reads public job postings through the endpoint Ashby offers for displaying a company's jobs on other sites. It collects no personal data. You are responsible for how you use the results.

Something broke or a field is missing. Open an issue on the Issues tab with the company you ran. Fixes usually ship within two days.

What happens if a run is interrupted? Progress is saved after every batch of jobs. If Apify moves or restarts the run, it continues where it stopped, and no job is stored or charged twice. Every run also writes a RUN_SUMMARY record to its key-value store with the result for each company: saved, not found or failed, and why. You pay for the jobs a run stored, whether or not it finished; a company that failed or was not reached costs nothing.

Other systems

For Workday, Greenhouse, Lever and Ashby together in one run and one format, use ATS Job Postings by the same developer. It accepts the same addresses and returns the same fields.

More Actors from this developer

Jobs:

Company registers:

Contacts and lists: