Ashby Jobs Scraper avatar

Ashby Jobs Scraper

Pricing

Pay per event

Go to Apify Store
Ashby Jobs Scraper

Ashby Jobs Scraper

Extract Ashby job postings with departments, locations, salary summaries, descriptions, and apply URLs from public career boards.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Extract structured job postings from public Ashby career boards.

Ashby Jobs Scraper turns https://jobs.ashbyhq.com/<company> boards into clean dataset rows with titles, departments, locations, workplace types, salary summaries, descriptions, and apply URLs.

Use it when you need reliable recruiting intelligence from startup and SaaS companies that host careers pages on Ashby.

What does Ashby Jobs Scraper do?

Ashby Jobs Scraper reads public Ashby-hosted job boards and exports each posting as a structured record.

It accepts Ashby board URLs such as https://jobs.ashbyhq.com/ashby or direct company slugs such as ashby.

For each job, it can fetch the listing summary and the detailed job posting content.

The actor is HTTP/API-first and uses Ashby's public non-user job-board GraphQL endpoints rather than a browser.

That makes it faster and cheaper than browser automation for normal career-board monitoring workflows.

Who is it for?

Recruiting intelligence teams use this actor to monitor which startups are hiring and which departments are expanding.

Job board operators use it to ingest current Ashby postings into niche job boards and newsletters.

Sales teams use it to identify hiring signals that indicate budget, growth, or new team formation.

Data teams use it to normalize job postings from Ashby alongside Greenhouse, Workday, Workable, Lever, and other ATS sources.

Investors and market researchers use it to track talent demand across portfolio companies and market segments.

Why use it?

Ashby career pages are public but optimized for candidates, not bulk analysis.

This actor extracts repeatable machine-readable rows from those pages.

It preserves important recruiting fields such as department, location, employment type, workplace type, compensation summary, and application link.

It also includes source URLs so you can audit each row and deduplicate against other job feeds.

Data you can extract

FieldDescription
companySlugAshby hosted jobs page name
jobIdAshby job posting ID
titleJob title
departmentNameDepartment or nested team path
teamNamesTeam names from the detailed posting
locationNamePrimary job location
secondaryLocationNamesAdditional locations when listed
employmentTypeFull-time, part-time, contract, or similar Ashby value
workplaceTypeRemote, hybrid, onsite, or similar Ashby value
compensationTierSummaryPublic compensation summary when available
scrapeableCompensationSalarySummaryNormalized public salary summary when Ashby exposes it
applicationDeadlineApplication deadline when available
jobUrlPublic posting URL
applyUrlPublic application URL
descriptionHtmlFull job description HTML when enabled
descriptionTextPlain-text job description when enabled
scrapedAtISO timestamp of extraction

How much does it cost to scrape Ashby jobs?

The actor uses pay-per-event pricing.

There is a small run-start charge and a per-job charge for each saved dataset item.

Validated production pricing is configured as:

  • Run start: $0.005
  • Job item: tiered, with BRONZE at $0.001 per saved job

The per-job price uses standard Apify account-tier discounts from FREE through DIAMOND.

Always check the Apify pricing panel for the live price that applies to your account tier.

Input options

You can provide board URLs, company slugs, or both.

boardUrls is best when you copy URLs directly from a browser.

companySlugs is best when you already have normalized Ashby identifiers from another system.

maxItems limits how many job rows are saved across all boards.

includeDescription controls whether the actor fetches detailed posting records.

departmentFilter filters jobs by department or team name.

locationFilter filters jobs by primary or secondary location.

Example input: scrape one Ashby board

{
"boardUrls": ["https://jobs.ashbyhq.com/ashby"],
"maxItems": 25,
"includeDescription": true
}

Example input: monitor engineering roles

{
"companySlugs": ["ashby"],
"maxItems": 50,
"includeDescription": false,
"departmentFilter": "Engineering"
}

Example input: remote hiring signal

{
"boardUrls": ["https://jobs.ashbyhq.com/ashby"],
"maxItems": 100,
"includeDescription": true,
"locationFilter": "Remote"
}

Output example

{
"companySlug": "ashby",
"jobId": "f8af6d8b-3f86-4b4f-90db-839b9ae5be7e",
"title": "Business Development Representative - EMEA",
"departmentName": "Sales",
"locationName": "Remote - European Union",
"employmentType": "FullTime",
"workplaceType": "Remote",
"compensationTierSummary": "€55,250 – €90,000 • Offers Equity • Offers Commission • Multiple Ranges",
"jobUrl": "https://jobs.ashbyhq.com/ashby/f8af6d8b-3f86-4b4f-90db-839b9ae5be7e",
"applyUrl": "https://jobs.ashbyhq.com/ashby/f8af6d8b-3f86-4b4f-90db-839b9ae5be7e/application"
}

How to run

  1. Open the actor on Apify.
  2. Paste one or more Ashby board URLs.
  3. Set a small maxItems value for your first test.
  4. Keep includeDescription enabled if you need full job descriptions.
  5. Start the run.
  6. Export results from the default dataset as JSON, CSV, Excel, or through the API.

Tips for better results

Use exact Ashby board URLs from jobs.ashbyhq.com when possible.

Keep maxItems low for smoke tests and raise it for scheduled monitoring.

Disable includeDescription when you only need titles, locations, and apply URLs.

Use departmentFilter for focused hiring signals such as Engineering, Sales, Product, or Customer Success.

Use locationFilter for remote-market workflows.

Integrations

Send dataset rows to Google Sheets for lightweight hiring trackers.

Push output into a data warehouse for trend analysis across ATS platforms.

Connect the actor to Zapier or Make to alert sales teams when target accounts open new roles.

Use Apify webhooks to trigger downstream enrichment when new postings appear.

Combine this actor with company enrichment tools to attach firmographic data to each hiring signal.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/ashby-jobs-scraper').call({
boardUrls: ['https://jobs.ashbyhq.com/ashby'],
maxItems: 25,
includeDescription: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/ashby-jobs-scraper').call(run_input={
'boardUrls': ['https://jobs.ashbyhq.com/ashby'],
'maxItems': 25,
'includeDescription': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

API usage with cURL

curl "https://api.apify.com/v2/acts/automation-lab~ashby-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"boardUrls":["https://jobs.ashbyhq.com/ashby"],"maxItems":25,"includeDescription":true}'

MCP usage

You can use this actor through Apify MCP from Claude Desktop, Claude Code, or other MCP-compatible tools.

MCP server URL:

https://mcp.apify.com/?tools=automation-lab/ashby-jobs-scraper

Add it in Claude Code with:

$claude mcp add ashby-jobs-scraper https://mcp.apify.com/?tools=automation-lab/ashby-jobs-scraper

Claude Desktop JSON configuration:

{
"mcpServers": {
"ashby-jobs-scraper": {
"url": "https://mcp.apify.com/?tools=automation-lab/ashby-jobs-scraper"
}
}
}

Example prompts:

  • "Scrape the Ashby career board for this company and summarize remote engineering roles."
  • "Monitor these Ashby job boards and return titles, departments, locations, and apply URLs."
  • "Extract salary ranges from public Ashby postings for these startup career pages."

Scheduling

For monitoring, schedule the actor daily or weekly.

Use the same board URL list each time and compare dataset exports by jobId.

Downstream systems can treat new jobId values as newly opened roles.

Closed roles are detected by comparing the latest run against earlier snapshots.

Reliability notes

The actor targets public Ashby job-board endpoints.

It does not log in, bypass private data, or access candidate-only areas.

If a company removes or renames its Ashby board, the actor will report that no public board was found.

Some postings may not expose salary or application deadlines.

Limitations

The actor only supports public Ashby-hosted career pages.

It does not scrape private Ashby admin dashboards.

It does not submit applications.

It does not enrich companies beyond the data available on the public job board.

Description extraction requires one additional request per saved job.

Troubleshooting

If a run returns zero items, verify that the board URL is public and starts with https://jobs.ashbyhq.com/.

If filters remove too many results, clear departmentFilter and locationFilter and rerun a small test.

If salary fields are empty, the employer likely did not publish compensation data on that posting.

If descriptions are missing, enable includeDescription.

Legality

This actor extracts public job-posting data intended for candidates and search engines.

You are responsible for using the data in compliance with applicable laws, website terms, and privacy obligations.

Avoid collecting or processing personal candidate data unless you have a lawful basis.

Do not use the actor to spam employers or applicants.

Other ATS and jobs actors in the Automation Lab portfolio:

Use those actors when the target company uses a different ATS.

FAQ

Can I scrape any Ashby company?

You can scrape public boards hosted on jobs.ashbyhq.com when they are visible without login.

Does it need a proxy?

No proxy is required for the current HTTP/API implementation.

Can I get full descriptions?

Yes. Set includeDescription to true to fetch detailed posting records.

Can I scrape multiple companies in one run?

Yes. Add multiple board URLs or slugs. maxItems applies across the whole run.

Why is compensation sometimes empty?

Ashby only exposes compensation fields when the employer publishes them.

Is this a browser scraper?

No. It uses public HTTP requests, which makes runs faster and cheaper.

Support

If a public Ashby board fails, include the board URL, run ID, and a short description of the missing fields in your support request.

Small reproducible inputs help resolve issues faster.