# Ats Jobs Search (V1) (`jobo.world/ats-jobs-search-v1`) Actor

Search for jobs directly from 13 ATS platforms (Greenhouse, Lever, Ashby, Workable, etc.). Zero ghost jobs, direct company sources. Perfect for job boards, AI agents & market research.

- **URL**: https://apify.com/jobo.world/ats-jobs-search-v1.md
- **Developed by:** [Enrico](https://apify.com/jobo.world) (community)
- **Categories:** Jobs
- **Stats:** 10 total users, 6 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## ATS Jobs Search API | Scrape Jobs from 13 Applicant Tracking Systems

Search and extract job listings directly from **13 major ATS platforms** including Greenhouse, Lever, Workday, and more. Access **88,000+ companies** with millions of verified job postings with a single API call.

**No scraping headaches. No ghost jobs. Just clean, structured job data.**

[![Run on Apify](https://img.shields.io/badge/Run%20on-Apify-blue)](https://apify.com/jobo.world/ats-jobs-search)

---

### ⚡ Why Use This Actor?

- **13 ATS Platforms in One**: Greenhouse, Lever, Workday, Ashby, SmartRecruiters, and 8 more
- **Zero Ghost Jobs**: Daily verification removes expired listings automatically
- **Structured Data**: Normalized JSON with location, salary, and company info
- **Lightning Fast**: Search across all platforms in seconds, not hours
- **Free Tier Available**: Test with 100 free API calls per month

---

### 🎯 Supported ATS Platforms

| Platform | Companies Using It | Company Volume | Best For |
|----------|-------------------|----------------|----------|
| **Greenhouse** | Airbnb, Stripe, Discord, Figma, Notion | 8,000+ | Tech unicorns & scale-ups |
| **Lever** | Lyft, Coinbase, Twitch, Gusto | 6,000+ | Fast-growing startups |
| **Workday** | Fortune 500, Banks, Healthcare | 10,000+ | Enterprise & government |
| **Ashby** | Linear, Vercel, Ramp, Mercury | 3,000+ | High-growth startups |
| **SmartRecruiters** | Visa, LinkedIn, Equinox, IKEA | 5,000+ | Global enterprises |
| **Workable** | Global SMBs & mid-market | 12,000+ | Growing companies |
| **BambooHR** | SMBs across industries | 15,000+ | Small businesses |
| **Rippling** | Modern tech companies | 3,000+ | Tech-forward orgs |
| **Personio** | European companies | 8,000+ | DACH region |
| **JazzHR** | SMBs across industries | 8,000+ | All industries |
| **Breezy HR** | Agencies & startups | 4,000+ | Small teams |
| **Recruitee** | EU companies | 4,000+ | Collaborative hiring |
| **Polymer** | Tech startups | 2,000+ | Modern teams |

---

### 📋 Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `queries` | Array | `[]` | Job titles or keywords (e.g., `["Software Engineer", "Product Manager"]`) |
| `locations` | Array | `[]` | Cities, regions, or countries (e.g., `["San Francisco", "Remote"]`) |
| `sources` | Array | All 13 | Specific ATS platforms to search |
| `is_remote` | Boolean | `false` | Filter for remote positions only |
| `posted_after` | String | - | ISO 8601 date (e.g., `2025-01-01T00:00:00Z`) |
| `page` | Integer | `1` | Page number (max: 100) |
| `page_size` | Integer | `50` | Results per page (max: 100) |

---

### 📤 Output Schema

Every job includes structured, normalized data:

```json
{
  "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  "title": "Senior Software Engineer",
  "company": {
    "name": "Stripe",
    "logo_url": "https://...",
    "website": "https://stripe.com"
  },
  "locations": [
    {
      "city": "San Francisco",
      "state": "California",
      "country": "United States",
      "is_remote": true
    }
  ],
  "compensation": {
    "min": 180000,
    "max": 250000,
    "currency": "USD",
    "period": "yearly"
  },
  "employment_type": "full_time",
  "experience_level": "senior",
  "listing_url": "https://boards.greenhouse.io/stripe/jobs/123",
  "apply_url": "https://boards.greenhouse.io/stripe/jobs/123/apply",
  "source": "greenhouse",
  "date_posted": "2025-01-15T10:30:00Z",
  "description": "We're looking for..."
}
````

***

### 🚀 Quick Start Examples

#### Search Remote Engineering Jobs

```json
{
  "queries": ["Software Engineer", "Backend Developer"],
  "is_remote": true,
  "page_size": 50
}
```

#### Find Jobs at Top Tech Companies

```json
{
  "queries": ["Product Manager"],
  "sources": ["greenhouse", "lever_co", "ashby"],
  "locations": ["San Francisco", "New York"],
  "posted_after": "2025-01-01T00:00:00Z"
}
```

#### Enterprise Jobs Only (Workday)

```json
{
  "queries": ["Data Scientist"],
  "sources": ["workday", "smartrecruiters"],
  "page_size": 100
}
```

#### European Tech Jobs

```json
{
  "queries": ["Frontend Developer"],
  "locations": ["London", "Berlin", "Amsterdam"],
  "sources": ["personio", "recruitee", "greenhouse"]
}
```

***

### 💼 Use Cases

| Industry | Use Case |
|----------|----------|
| **Job Boards** | Aggregate listings from multiple ATS into your job board |
| **AI Agents** | Power job search chatbots and career assistants |
| **HR Tech** | Build candidate matching and recommendation engines |
| **Market Research** | Analyze hiring trends, salary data, and skill demand |
| **Recruitment** | Source passive candidates from company career pages |
| **Data Science** | Train ML models on job market data |

***

### ❓ Frequently Asked Questions

#### How often is job data updated?

Jobs are verified and updated **daily**. Expired listings are automatically removed within 24 hours.

#### Do you have salary data for all jobs?

Salary data is available when companies provide it (approximately 40% of listings). For others, we provide AI-estimated ranges based on role, location, and company size.

#### Can I search multiple keywords at once?

Yes! Pass an array of queries like `["Python Developer", "Django Developer", "Backend Engineer"]` to search for all simultaneously.

#### What's the difference between this and ATS Jobs Feed?

**ATS Jobs Search** is for keyword-based searching with filters. **[ATS Jobs Feed](https://apify.com/jobo.world/ats-jobs-feed)** is for bulk downloading with cursor pagination—ideal for data pipelines and syncing.

#### Is there a free tier?

Yes! Apify provides free compute credits that allow approximately 100 searches per month.

***

### 🔗 Related Actors

| Actor | Best For |
|-------|----------|
| **[ATS Jobs Feed](https://apify.com/jobo.world/ats-jobs-feed)** | Bulk download up to 1000 jobs per batch for ETL pipelines |
| **[AI Deep Job Search](https://apify.com/jobo.world/ai-deep-job-search)** | AI-powered relevance scoring for personalized job matching |
| **[Greenhouse Jobs Search](https://apify.com/jobo.world/greenhouse-jobs-search)** | Focused search for Greenhouse-only listings |
| **[Workday Jobs Search](https://apify.com/jobo.world/workday-jobs-search)** | Enterprise & Fortune 500 job listings |
| **[Lever Jobs Search](https://apify.com/jobo.world/lever-jobs-search)** | Startup & scale-up job listings |

***

### 🏢 About Jobo

Jobo provides the most comprehensive job data infrastructure for developers and businesses. Our ATS Jobs Database powers job boards, AI agents, and HR tech platforms worldwide.

- **Website**: [jobo.world](https://jobo.world)
- **Enterprise API**: [jobo.world/enterprise](https://jobo.world/enterprise)
- **Support**: enrico@jobo.world

# Actor input Schema

## `queries` (type: `array`):

Job titles or keywords to search for

## `locations` (type: `array`):

Cities, regions, or countries to filter by

## `sources` (type: `array`):

Filter by specific ATS platforms

## `is_remote` (type: `boolean`):

Filter for remote positions only

## `posted_after` (type: `string`):

Only show jobs posted after this date (ISO 8601 format, e.g., 2025-01-01T00:00:00Z)

## `page` (type: `integer`):

Page number for search results

## `page_size` (type: `integer`):

Number of results per page

## Actor input object example

```json
{
  "queries": [
    "Software Engineer",
    "Product Manager"
  ],
  "locations": [
    "San Francisco",
    "New York",
    "Remote"
  ],
  "sources": [
    "greenhouse",
    "lever_co"
  ],
  "is_remote": false,
  "page": 1,
  "page_size": 50
}
```

# Actor output Schema

## `jobs` (type: `string`):

Search results containing matching jobs with full details

## `pagination` (type: `string`):

Total count and pagination metadata

## `search_summary` (type: `string`):

Summary of search parameters and results count

## `raw_results` (type: `string`):

Complete dataset with all job records

## `csv_export` (type: `string`):

Job results in CSV format for spreadsheet analysis

# 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 = {
    "queries": [
        "Software Engineer",
        "Product Manager"
    ],
    "locations": [
        "San Francisco",
        "New York",
        "Remote"
    ],
    "sources": [
        "greenhouse",
        "lever_co"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jobo.world/ats-jobs-search-v1").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 = {
    "queries": [
        "Software Engineer",
        "Product Manager",
    ],
    "locations": [
        "San Francisco",
        "New York",
        "Remote",
    ],
    "sources": [
        "greenhouse",
        "lever_co",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("jobo.world/ats-jobs-search-v1").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 '{
  "queries": [
    "Software Engineer",
    "Product Manager"
  ],
  "locations": [
    "San Francisco",
    "New York",
    "Remote"
  ],
  "sources": [
    "greenhouse",
    "lever_co"
  ]
}' |
apify call jobo.world/ats-jobs-search-v1 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jobo.world/ats-jobs-search-v1",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ats Jobs Search (V1)",
        "description": "Search for jobs directly from 13 ATS platforms (Greenhouse, Lever, Ashby, Workable, etc.). Zero ghost jobs, direct company sources. Perfect for job boards, AI agents & market research.",
        "version": "1.0",
        "x-build-id": "lPgemnIjF98mRn2b2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jobo.world~ats-jobs-search-v1/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jobo.world-ats-jobs-search-v1",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/jobo.world~ats-jobs-search-v1/runs": {
            "post": {
                "operationId": "runs-sync-jobo.world-ats-jobs-search-v1",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/jobo.world~ats-jobs-search-v1/run-sync": {
            "post": {
                "operationId": "run-sync-jobo.world-ats-jobs-search-v1",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "queries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Job titles or keywords to search for",
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "Cities, regions, or countries to filter by",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sources": {
                        "title": "ATS Sources",
                        "type": "array",
                        "description": "Filter by specific ATS platforms",
                        "items": {
                            "type": "string",
                            "enum": [
                                "greenhouse",
                                "lever_co",
                                "ashby",
                                "workable",
                                "rippling",
                                "polymer",
                                "workday",
                                "smartrecruiters",
                                "bamboohr",
                                "breezy",
                                "jazzhr",
                                "recruitee",
                                "personio"
                            ]
                        }
                    },
                    "is_remote": {
                        "title": "Remote Only",
                        "type": "boolean",
                        "description": "Filter for remote positions only",
                        "default": false
                    },
                    "posted_after": {
                        "title": "Posted After",
                        "type": "string",
                        "description": "Only show jobs posted after this date (ISO 8601 format, e.g., 2025-01-01T00:00:00Z)"
                    },
                    "page": {
                        "title": "Page Number",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Page number for search results",
                        "default": 1
                    },
                    "page_size": {
                        "title": "Page Size",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Number of results per page",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
