Ashby Jobs Scraper [Only $0.8/1K💰] | Startup Jobs | Remote
Pricing
from $0.78 / 1,000 results
Ashby Jobs Scraper [Only $0.8/1K💰] | Startup Jobs | Remote
Scrape job postings from any Ashby-hosted startup board — Ramp, Notion, Linear, Perplexity, RunPod and thousands more — via Ashby's public posting API: title, company, location and remote flag, department/team, employment type, salary/equity tiers, job and apply URLs. No browser. $0.0008 per job.
Pricing
from $0.78 / 1,000 results
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Features
Share
Ashby Jobs Scraper
Scrape job postings from any Ashby-hosted startup job board — Ramp, Notion, Linear, Perplexity, RunPod, OpenAI and thousands more — through Ashby's own public posting API, with salary and equity tiers, remote flags, full descriptions and company metadata, at $0.0008 per job. One request returns an entire board, so a handful of slugs already yields thousands of jobs, with no browser and no anti-bot costs.
Built for recruiting agencies, talent researchers, job-board aggregators, VC analysts and hiring-trend researchers.
Main Use Cases
- Startup job boards dataset — build a clean, deduplicated database of every open role across hundreds of Ashby-hosted boards in a single run
- Startup salary and equity data —
includeCompensationpulls the exact compensation tiers (currency, min/max, interval) companies actually list, not scraped estimates - Remote startup jobs — filter or flag by
isRemote/workplaceType(Remote, Hybrid, OnSite) and matchlocationon "Remote", "Berlin", "NYC", etc. - Hiring analytics — track open roles, departments and teams over time: which companies are hiring, for what, where
- Recruiting agency lead generation — identify scaling startups (Notion, Linear, RunPod…) and the exact roles they are trying to fill
- Talent market research — job title distribution, employment types (Full-time/Internship/Contract) and compensation ranges by company or sector
How It Works — The Posting API, No Browser
Every Ashby customer board at jobs.ashbyhq.com/{slug} publishes its full job list as JSON at:
https://api.ashbyhq.com/posting-api/job-board/{slug}?includeCompensation=true
The actor calls that endpoint once per board (Ramp = 158 jobs, Notion = 128, OpenAI ≈ 1,000 in a single response), then optionally fetches the board's HTML once more to read the embedded window.__appData blob — that adds companyName, organizationId, companyWebsite and the team hierarchy. There is nothing to render: Ashby serves the whole board server-side to a plain HTTP client with no login, no CAPTCHA and no rate limiting worth worrying about at normal volumes.
Build a Startup Jobs Database Without a Browser
Ashby is one of the few ATS vendors whose public job boards are entirely API-accessible: the posting API is the same JSON the jobs.ashbyhq.com page renders, so a browser actor adds 100x the compute for zero extra fields. Browser-based competitors on the Store charge $0.001485–$0.002 per job; this actor reads the API at $0.0008 per job — the cheapest per job of the Ashby-focused options — and is the only one that combines compensation tiers, descriptions, board metadata and filters (search, department, team, location) in one actor. Cheap enough to run daily: tracking 10 boards (≈ 1,500 open roles) costs under $1.30 a run plus compute.
Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
boardSlugs | array | Yes* | ["ashby","notion","linear","perplexity","runpod"] | Board slug = path segment of the public job page (/ramp → ramp); full board URLs accepted too. *Omitted only if startUrls is used |
startUrls | array | No | [] | Extra board URLs or slugs scraped in addition to boardSlugs |
includeCompensation | boolean | No | true | Adds each job's salary/equity/bonus tiers (currency, min/max, interval); false makes responses ~40% smaller |
includeDescriptions | boolean | No | true | Emits descriptionHtml + descriptionPlain; disable to shrink the dataset |
includeUnlisted | boolean | No | false | Also output jobs unlisted from the public board (isListed=false) |
fetchBoardMetadata | boolean | No | true | One extra request per board for companyName, organizationId, companyWebsite, team hierarchy; false halves the request count |
search | string | No | "" | Case-insensitive filter on title/department/team/location, e.g. engineer, remote |
department | string | No | "" | Exact case-insensitive department, e.g. Engineering |
team | string | No | "" | Exact case-insensitive team, e.g. Platform |
location | string | No | "" | Case-insensitive substring on primary location + workplace type + secondary locations |
maxBoards | integer | No | 20 | Max boards taken from the slug list |
maxJobsPerBoard | integer | No | 500 | Max jobs pushed per board |
maxItems | integer | No | 5000 | Max jobs pushed across all boards |
proxy | object | No | useApifyProxy: false | Not needed to get unblocked; for IP rotation/geo only |
Output — Startup Job Records for Talent Research
default dataset (one row per job; the overview view is preconfigured and expands compensation):
| Field | Description |
|---|---|
title, jobUrl, applyUrl | Job title, canonical posting URL, direct apply link |
companyName, boardSlug, organizationId, companyWebsite | Company identity (metadata requires fetchBoardMetadata: true) |
location, isRemote, workplaceType | Primary location, remote flag, Remote/Hybrid/OnSite |
department, team, employmentType | Org structure + Full-time/Internship/Contract/Part-time |
compensationTierSummary | Human-readable compensation line (e.g. $150k – $200k, 0.10% – 0.15% equity) |
compensation | Expanded tier objects: currency, interval, minValue/maxValue per component (salary, equity, bonus) |
descriptionHtml, descriptionPlain | Full posting text (when includeDescriptions: true) |
publishedAt | When the role went live |
Additional raw fields on each item: secondaryLocation, address, salaryRange, employmentType, seniority, isListed, externalUrl, rawTitle.
Example Input
{"boardSlugs": ["ramp", "notion", "linear", "perplexity", "runpod"],"includeCompensation": true,"location": "Remote","search": "engineer","maxItems": 1000}
Board URLs work too: "boardSlugs": ["https://jobs.ashbyhq.com/openai"].
Example Output — Job Record (trimmed)
{"title": "Senior Product Engineer","companyName": "Linear","boardSlug": "linear","location": "Remote (Canada, US)","isRemote": true,"workplaceType": "Remote","department": "Engineering","team": "Product","employmentType": "Full-time","compensationTierSummary": "$180,000 - $210,000 · 0.05% - 0.10% equity · CAD or USD","compensation": [{ "tier": "salary", "currency": "USD", "interval": "yearly", "minValue": 180000, "maxValue": 210000 },{ "tier": "equity", "currency": "USD", "interval": "yearly", "minValue": 0.05, "maxValue": 0.1 }],"publishedAt": "2026-09-20T16:33:00.000Z","jobUrl": "https://jobs.ashbyhq.com/linear/senior-product-engineer","applyUrl": "https://jobs.ashbyhq.com/linear/senior-product-engineer/apply"}
Startup Jobs Data at $0.0008 Per Job
$0.0008 per job (apify-default-dataset-item) plus the standard $0.00005 actor start — no browser minutes, no per-page fees, no anti-bot surcharges. Billing is strictly per emitted job row; boards that return nothing cost nothing but the start event. The default 1,024 MB container and 5,000-job cap keep large board sweeps to a couple of compute units. Free accounts get a preview run; paid plans run to your caps.
Integrations & Automation
- API — run and fetch via the Apify REST API, or call it from AI agents through the Apify MCP server
- Scheduling — daily/weekly runs to track new roles, closed roles and compensation changes per company
- Webhooks — push new matching jobs (by location, department or search word) to your app, Slack or Sheets
- Export — JSON, CSV, Excel, HTML
Recommended schedule: daily for new-role alerts and agency pipelines; weekly for hiring-trend and salary datasets.
Related Actors
- Greenhouse / Lever / Ashby Job Scraper —
bovi/greenhouse-lever-ashby-job-scraper— the most-used multi-ATS job scraper (447 users, 4.9★), $0.001485/job - Ashby Jobs API —
fantastic-jobs/ashby-jobs-api— Ashby posting-API wrapper (449 users, 5.0★) - Ashby Jobs Scraper API —
jobo.world/ashby-jobs-scraper-api— per-job billing, $0.00099/job - Ashby Job Scraper —
dalleyne/ashby-job-scraper— $0.002/result - Ashby Jobs Scraper —
memo23/ashby-jobs-scraper— $0.04 start + $0.0009/result
This actor is the cheapest per job ($0.0008, no start premium) and the only Ashby-focused option combining compensation tiers, full descriptions, board metadata and server-side filters in one actor.
FAQ
Why use this actor instead of the official Ashby API?
There is no auth-gated partner API for job boards — the posting API is the official public surface: https://api.ashbyhq.com/posting-api/job-board/{slug}?includeCompensation=true returns the whole board as JSON to anyone. This actor wraps it, adds compensation expansion, company metadata from window.__appData, filters and per-job billing, and keeps the data in a queryable Apify dataset.
What are alternatives to this actor for startup jobs data?
On the Store: bovi/greenhouse-lever-ashby-job-scraper (multi-ATS, $0.001485/job), fantastic-jobs/ashby-jobs-api (449 users, 5.0★), jobo.world/ashby-jobs-scraper-api ($0.00099/job), dalleyne/ashby-job-scraper ($0.002/result), memo23/ashby-jobs-scraper. Ours is the cheapest per job and the only one with compensation tiers + descriptions + filters combined.
How do I find a company's board slug?
It's the path segment of its public job page: jobs.ashbyhq.com/ramp → ramp. Most companies link it as "Careers" on their site. Full URLs like https://jobs.ashbyhq.com/openai are accepted as well.
Why are some jobs missing compensation?
Compensation is only present when the company publishes it (Ashby returns it under includeCompensation); roles without published tiers simply have null in compensationTierSummary and an empty compensation array. This is a data-availability fact, not a scraping limitation.
Can I get unlisted jobs?
Yes — set includeUnlisted: true to also emit postings the company has unlisted from its public board (isListed=false). These still appear on the posting API. Use this flag with care: it reflects roles the company chose to hide publicly.
Is a browser or proxy needed?
No. The posting API serves JSON to a plain HTTP client; boards are fetched without JavaScript. The proxy input exists for IP rotation/geo-targeting only and is off by default. No anti-bot costs exist, which is why per-job pricing stays at $0.0008.
For AI Agents & LLM Apps
- Purpose: given Ashby board slugs/URLs, returns one row per open job — title, company, location, remote flag, workplace type, department, team, employment type, compensation tiers (salary/equity/bonus with currency, min/max, interval), full description, job and apply URLs — via Ashby's official posting API.
- Minimal working input:
{ "boardSlugs": ["notion", "linear"], "maxItems": 500 }
- Variant inputs — with pay data + remote filter:
{ "boardSlugs": ["ramp"], "includeCompensation": true, "location": "Remote" }; keyword-filtered sweep:{ "boardSlugs": ["ashby", "notion", "linear", "perplexity", "runpod"], "search": "engineer", "maxItems": 1000 }; descriptions off to slim the dataset:"includeDescriptions": false; unlisted roles:"includeUnlisted": true. - Output fields:
title, companyName, boardSlug, organizationId, companyWebsite, location, secondaryLocation, address, isRemote, workplaceType, department, team, employmentType, seniority, compensation, compensationTierSummary, salaryRange, descriptionHtml, descriptionPlain, publishedAt, isListed, jobUrl, applyUrl, externalUrl, rawTitle. - Behaviors an agent should know: one request returns an entire board — there is no pagination to walk.
companyNameetc. come fromfetchBoardMetadata(default on; one extra HTML request per board — disable to halve requests, at the cost of empty company fields).includeCompensation(default on) costs nothing but a larger payload; mistaken heavy runs are bounded bymaxItems(default 5,000) andmaxJobsPerBoard/maxBoards. Filters (search,department,team,location) are applied server-side in the actor — use them instead of post-filtering to keep the dataset small.compensationis an array of tier objects (per component); a job with no published pay hascompensationTierSummary: null. Do not treatisRemote=falseas "onsite" — checkworkplaceType(Remote/Hybrid/OnSite). Failed boards produce no rows and are not billed per job. - Billing: pay-per-result — $0.0008 per job + standard $0.00005 actor start; no proxy charges unless you enable proxy yourself.
Legal & Compliance Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Ashby, Inc. or any company whose job board it reads. It consumes only the public posting API and publicly visible board pages that Ashby serves to anonymous visitors — no login, no bypass of access controls, no personal data beyond what companies publish on their own job pages (and none of it is used for unsolicited outreach). Users are responsible for their own compliance with Ashby's Terms of Service and each board's terms; the data is intended for legitimate purposes such as talent research, hiring analytics and job aggregation. Respect each company's preferences: unlisted jobs (isListed=false) are surfaced only when explicitly requested.
SEO Keywords
ashby jobs scraper, ashbyhq jobs api, jobs.ashbyhq.com data, startup job boards, scrape startup jobs, startup salary data, equity compensation data, remote startup jobs, hiring analytics, job posting database, ashby api alternative, tech company jobs api, ai startup careers, notion jobs data, linear jobs data, ramp jobs data, perplexity jobs data, runpod jobs data, recruiting agency lead generation, talent market research