# Ashby Jobs Scraper – ATS Careers Board, Salary & Apply Links (`ninhothedev/ashby-jobs-scraper`) Actor

$0.5/1K 🔥 Fast Ashby ATS jobs scraper! Pull ANY company's careers board — title, team, location, remote, salary & link. No key. JSON, CSV, Excel or API in seconds. Perfect for recruiting & hiring intel ⚡

- **URL**: https://apify.com/ninhothedev/ashby-jobs-scraper.md
- **Developed by:** [ninhothedev](https://apify.com/ninhothedev) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Ashby Jobs Scraper

Pull every open role from any company's **Ashby**-hosted careers board — no API key, no login, no browser. Give the Actor a list of Ashby org slugs (the handle in a `jobs.ashbyhq.com/<slug>` URL) and get back clean, structured job data: title, department, team, location, remote flag, salary, description and apply link.

Ashby (ashbyhq.com) is a modern applicant tracking system (ATS) used by hundreds of fast-growing startups and scale-ups — Ramp, Notion, Linear, OpenAI, Docker and many more. This scraper reads Ashby's **public** posting API, so results are fast, reliable and datacenter-proxy friendly.

### Features

- **Any Ashby company** — just supply org slugs; scrape one board or dozens in a single run.
- **Rich job fields** — title, department, team, employment type, location, remote flag, compensation, full description, job URL and apply URL.
- **Compensation data** — salary ranges and equity notes where the employer publishes them.
- **Clean & fast** — hits the public JSON API directly. No headless browser, low compute cost.
- **Graceful** — unknown or empty slugs are skipped, not fatal.
- **Structured output** — one dataset item per job, every field nullable, export to JSON / CSV / Excel / API.

### Pricing

Roughly **~$1 per 1,000 jobs** scraped (plus Apify platform usage). Boards are pulled in a single request each, so large multi-company runs stay cheap.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `mode` | select | Scrape mode. Currently `board` — all open postings per org. |
| `orgSlugs` | array | Ashby company handles, e.g. `["Ramp", "Notion", "Linear"]`. Case-sensitive. |
| `includeCompensation` | boolean | Request salary/compensation summaries (default `true`). |
| `maxItems` | integer | Max total jobs across all orgs (default `200`, max `2000`). |

#### Example input

```json
{
  "mode": "board",
  "orgSlugs": ["Ramp", "Notion", "Linear"],
  "includeCompensation": true,
  "maxItems": 200
}
```

### How to find a company's Ashby slug

1. Open the company's careers/jobs page.
2. If the URL looks like `https://jobs.ashbyhq.com/Ramp` (or the board is embedded from `ashbyhq.com`), the last path segment — `Ramp` — is the **org slug**.
3. Some companies host the board on their own domain (e.g. `company.com/careers`). View the page source or network tab and look for `jobs.ashbyhq.com/<slug>` or an `api.ashbyhq.com/posting-api/job-board/<slug>` request — that `<slug>` is what you need.
4. Slugs are **case-sensitive** (`Ramp`, not `ramp`). Try the exact casing shown in the URL.

### Output

Each dataset item is one job:

```json
{
  "org": "Ramp",
  "title": "Security Engineer, Cloud",
  "department": "Engineering",
  "team": "Backend",
  "employment_type": "FullTime",
  "location": "New York, NY (HQ)",
  "is_remote": true,
  "compensation": "$211.4K – $290.6K • Offers Equity",
  "description": "About Ramp ...",
  "url": "https://jobs.ashbyhq.com/Ramp/34413f8d-...",
  "apply_url": "https://jobs.ashbyhq.com/Ramp/34413f8d-.../application",
  "published_at": "2026-04-07T17:12:35.753000+00:00",
  "source": "ashby",
  "job_id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
  "scraped_at": "2026-07-20T16:30:00.000000+00:00"
}
```

### Use cases

- **Recruiting & sourcing** — build candidate pipelines from live openings across target companies.
- **Competitive hiring intelligence** — track which teams your competitors are growing, and where.
- **ATS aggregation** — feed a job board or aggregator with normalized Ashby listings.
- **Candidate sourcing & market research** — monitor salary bands, remote policies and role trends.

### Related Actors

- [Workable Jobs Scraper](https://apify.com/ninhothedev/workable-jobs-scraper)
- [SmartRecruiters Jobs Scraper](https://apify.com/ninhothedev/smartrecruiters-jobs-scraper)
- [BambooHR Jobs Scraper](https://apify.com/ninhothedev/bamboohr-jobs-scraper)
- [The Muse Jobs Scraper](https://apify.com/ninhothedev/muse-jobs-scraper)

### Keywords

ashby scraper, ashbyhq, ashby jobs, ashby ats, ats scraper, jobs scraper, careers scraper, job board scraper, recruiting data, hiring intelligence, salary data, remote jobs, applicant tracking system, job listings api.

### Disclaimer

This Actor collects only publicly available job-posting data from Ashby's public posting API. Use responsibly and in accordance with applicable laws and the Apify Terms of Service.

# Actor input Schema

## `mode` (type: `string`):

What to scrape. 'board' fetches all open job postings for each Ashby org slug you provide.

## `orgSlugs` (type: `array`):

One or more Ashby company handles (the slug in a jobs.ashbyhq.com/<slug> careers URL, e.g. 'Ramp', 'Notion', 'Linear'). Case-sensitive. Unknown slugs are skipped gracefully.

## `includeCompensation` (type: `boolean`):

Request salary / compensation summaries from Ashby where the employer publishes them. Turn off for slightly faster boards.

## `maxItems` (type: `integer`):

Maximum total number of jobs to scrape across all org slugs. Hard-capped at 2000.

## Actor input object example

```json
{
  "mode": "board",
  "orgSlugs": [
    "Ramp",
    "Notion",
    "Linear"
  ],
  "includeCompensation": true,
  "maxItems": 200
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "orgSlugs": [
        "Ramp",
        "Notion",
        "Linear"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ninhothedev/ashby-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "orgSlugs": [
        "Ramp",
        "Notion",
        "Linear",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("ninhothedev/ashby-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "orgSlugs": [
    "Ramp",
    "Notion",
    "Linear"
  ]
}' |
apify call ninhothedev/ashby-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ninhothedev/ashby-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/yQ9Px8zHJM9ECTHu7/builds/Ew4OLV8P1piXiOSq5/openapi.json
