# Company ATS Finder — Which Hiring System & Job Board It Uses (`hermeskd/company-ats-board`) Actor

Find which applicant-tracking system a company hires through — Greenhouse, Lever, Ashby, Workable, Recruitee, SmartRecruiters, Workday, Personio, Teamtailor — with its job board URL and token, and open jobs for Greenhouse and Lever. $0.003 a company found; not found is free.

- **URL**: https://apify.com/hermeskd/company-ats-board.md
- **Developed by:** [Logan Parker](https://apify.com/hermeskd) (community)
- **Categories:** Jobs, Lead generation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 company resolveds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Find which applicant-tracking system a company hires through — Greenhouse, Lever, Ashby, Workable, Recruitee, SmartRecruiters, Workday, Personio or Teamtailor — from its name, domain or careers-page URL, with the job board's token and URL and, for Greenhouse and Lever, the open jobs counted live. For sales and recruiting research and for AI agents about to fetch a company's jobs: the token it returns is what greenhouse-jobs or lever-jobs needs. $0.003 a company found; a company not found is free.

### Example result

A record from the production image's run of the smoke input against the live source (2026-10-26T12:49:16Z).

```json
{
  "input": "stripe.com",
  "ok": true,
  "company": "Stripe",
  "domain": "stripe.com",
  "ats": "greenhouse",
  "boardToken": "stripe",
  "boardUrl": "https://job-boards.greenhouse.io/stripe",
  "openJobs": 718,
  "careersUrl": null,
  "detectedVia": "directory"
}
```

### How to use it

Start a run in Apify Console, by API or from an agent with an input like this one — it is the input Apify runs every day to test this Actor:

```json
{
  "companies": [
    "stripe.com",
    "palantir.com"
  ]
}
```

| Field | Type | Meaning |
|---|---|---|
| `companies` | array | Company names (Stripe), domains (stripe.com) or careers-page URLs; 1–100. |

### Events and prices

| Event | Title | Charged when | FREE / BRONZE | SILVER | GOLD / PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| `company-resolved` | Company resolved | One company matched to its hiring system and board. | $0.003 | $0.0027 | $0.0024 |

Worked cost: 40 companies of which 30 resolve cost 30 × $0.003 = $0.09 at the FREE and BRONZE price, $0.081 on SILVER and $0.072 on GOLD and above, plus the actor-start event.

Platform usage is not passed through. Apify's automatic actor-start event remains $0.00005 per started GB (one GB or less counts once). The synthetic dataset-item event is absent. Failure records and the free summary records are never charged; when the run's maximum total charge is reached, further work stops and the rest gets uncharged `charge_limit_reached` records. Work completed before an abort is settled.

### Call it from an agent

Through Apify's MCP server (https://mcp.apify.com) use `call-actor`:

```json
{
  "actor": "hermeskd/company-ats-board",
  "input": {
    "companies": [
      "stripe.com",
      "palantir.com"
    ]
  },
  "callOptions": {
    "maxTotalChargeUsd": 0.05,
    "timeout": 600
  },
  "waitSecs": 30
}
```

Then call `get-dataset-items` with the returned defaultDatasetId. Dedicated tool URL: https://mcp.apify.com?tools=hermeskd/company-ats-board

### Output fields

| Field | Meaning |
|---|---|
| `input` | The company name, domain or careers URL as given. |
| `ok` | True when a hiring system and a board were identified (the only charged outcome). |
| `company` | Company name as the board states it, or as given. |
| `domain` | The company's registrable domain when the input gave one. |
| `ats` | The applicant-tracking system the company posts jobs on. |
| `boardToken` | The board token or site name on that system (what greenhouse-jobs or lever-jobs needs). |
| `boardUrl` | The public board URL. |
| `openJobs` | Open jobs on the board, read live: Greenhouse and Lever only, null for systems that are detected but never fetched. |
| `careersUrl` | The careers page that was read, when one was. |
| `detectedVia` | directory: the Hermes board directory (confirmed live); probe: a public board endpoint answered for a slug of the name or domain; careers_page: a marker on the company's careers page. |
| `error` | Failure, never charged. |

### Limits and run time

1–100 companies per run. Per company, in order, stopping at the first that resolves: the Hermes board directory (confirmed by one live read of the board); probes of the Greenhouse board endpoint and Lever's global and EU postings endpoints for at most two slugs of the name or domain; one fetch of the careers page (the URL given, or `https://<domain>/careers`). Ashby, Workable, Recruitee, SmartRecruiters, Workday, Personio and Teamtailor are detected from links on that page and never fetched, so their `openJobs` is null; a page that only mentions a vendor without a board link identifies nothing. The smoke input (two companies) ran in 6.0 seconds end to end in the production image on 2026-10-26; the default run timeout is 600 seconds. Cold platform time, cost and the smallest passing memory are measured by the deploy.

### Errors

| Code | Meaning |
|---|---|
| `not_found` | No supported hiring system and board was identified; uncharged. |
| `rate_limited` | The source asked us to slow down (HTTP 429); nothing was charged. |
| `source_schema_changed` | The source's response no longer has the verified shape; the run fails loudly when every input does. |
| `download_failed` | The request failed, timed out or answered an unexpected HTTP status. |
| `robots_disallowed` | robots.txt forbids fetching the URL; no request was made to it. |
| `blocked_host` | The host is on the deny-list or resolves to a private or local address; no request was made. |
| `timeout` | The input did not finish within the run's time budget. |
| `invalid_input` | The run input passed the input schema but cannot be used; the message names the field. |
| `internal_error` | Unexpected failure; the message carries the error class. |
| `charge_limit_reached` | The run reached its maximum total charge; this input was not processed. |

No failure record is charged. A run fails only when every input failed on the Actor's side (`internal_error`, `timeout`, `source_schema_changed`); caller-side failures and mixtures leave the run SUCCEEDED.

### Sources and terms

The Hermes directory, the public Greenhouse and Lever board endpoints, and the company's own careers page under the fetch policy. Greenhouse Job Board API (`boards-api.greenhouse.io/v1/boards/{token}/jobs`). Greenhouse's documentation, read 2026-10-26 on docs.greenhouse.io: "Job Board data is publicly available, so authentication is not required for any GET endpoints." Only the application POST needs a key, and no Hermes Actor calls it. The API host's robots.txt (read 2026-10-26) disallows only `/embed/`. Lever Postings API (`api.lever.co/v0/postings/{site}?mode=json`, EU `api.eu.lever.co`). Its public README (lever/postings-api, read 2026-10-26): "all job postings in the published state are publicly viewable. These jobs may be scraped by third parties." Robots.txt on both API hosts allows every path with `Crawl-delay: 1`, which is honoured. Ashby, Workable, Recruitee, SmartRecruiters, Workday, Personio and Teamtailor are detected, never fetched: their terms are not established. Only process content you have the right to process. Every request obeys HermesBot robots-group selection, the shared deny-list, public-address checks on connections and redirects, an honest user-agent, a 30-second deadline per request and at most one request a second per host (Lever and Remote OK ask `Crawl-delay: 1`). No caller credentials, cookies, CAPTCHA solving, residential proxies or evasion. Job text is returned with email addresses and phone numbers redacted; no recruiter, applicant or hiring-team object is ever read or returned, and the application endpoints are never called.

### Not affiliated

This Actor is not affiliated with Greenhouse Software, Lever, Ashby, Workable, Recruitee, SmartRecruiters, Workday, Personio, Teamtailor, Apify or the companies it looks up. Third-party names describe what is detected.

### Related Hermes Actors

- [Greenhouse Job Board Scraper — Open Jobs, Live, Any Company](https://apify.com/hermeskd/greenhouse-jobs) — every open job on a company's Greenhouse board.
- [Lever Jobs Scraper — Postings from Any Lever Site, US & EU](https://apify.com/hermeskd/lever-jobs) — every published job on a company's Lever site, global or EU.
- [Career Site Job Search — Verified Greenhouse & Lever Boards](https://apify.com/hermeskd/ats-job-search) — search open jobs in the Hermes directory of Greenhouse and Lever boards, each confirmed live.
- [Remote Jobs Scraper — Remote OK Listings, Salary Filter, Links](https://apify.com/hermeskd/remote-jobs) — current remote jobs from Remote OK, with salary and listing links.
- [URL to Markdown for LLMs — From $0.001 a Page, Agent-Payable](https://apify.com/hermeskd/url-to-markdown) — a public job page as clean Markdown where the site allows it (deny-listed job sites are refused).
- [Speech to Text — Transcribe & Translate to English, SRT/VTT](https://apify.com/hermeskd/audio-to-transcript) — speech to text with SRT and VTT subtitles.
- [Video Converter & MP4 to MP3 — Trim, GIF; Audio $0.001 a Minute](https://apify.com/hermeskd/audio-video-convert) — audio and video conversion: MP4 to MP3, trim, GIF.
- [Broken Link Checker That Never Charges for the Broken Links](https://apify.com/hermeskd/broken-links) — broken links, 404s and redirects on a site.
- [DNS Lookup & SPF, DKIM, DMARC Check — Findings by Severity](https://apify.com/hermeskd/dns-and-email-auth) — DNS records and SPF, DKIM and DMARC checks.
- [Word, Excel & PowerPoint to Markdown — $0.002 per Document](https://apify.com/hermeskd/document-to-markdown) — Word, Excel, PowerPoint and other office files to Markdown.
- [Domain Availability Checker — Registry RDAP, No Contact Data](https://apify.com/hermeskd/domain-availability) — whether domain names are available, from registry RDAP.
- [Image to Text OCR — Lines & Words with Boxes, $0.002 an Image](https://apify.com/hermeskd/image-to-text) — OCR: the text in images.
- [Image Upscaler — AI Upscale Graphics, Screenshots & Text 2x/4x](https://apify.com/hermeskd/image-upscale) — AI upscaling of graphics, screenshots and text, 2x or 4x.
- [Lighthouse Audit, No API Key — Lab Core Web Vitals & SEO Scores](https://apify.com/hermeskd/lighthouse-audit) — Lighthouse scores and Core Web Vitals.
- [PDF to Markdown & Text — $0.0005 a Text Page, OCR for Scans](https://apify.com/hermeskd/pdf-to-markdown) — PDF to Markdown and text, with OCR for scanned pages.
- [SEO Audit — On-Page Checks, Schema & Hreflang, $0.004 a Page](https://apify.com/hermeskd/seo-page-audit) — an on-page SEO audit: meta tags, schema, headings and links.
- [Sitemap URL Extractor — Indexes, Gzip, RSS; $0.0003 per URL](https://apify.com/hermeskd/sitemap-urls) — the URLs in a site's sitemaps.
- [Video Frame Extractor — by Scene, Interval or Timestamp](https://apify.com/hermeskd/video-frames) — frames, thumbnails and scenes from a video.
- [Website Screenshot API — Elements, HTML, Dark Mode & PDF Print](https://apify.com/hermeskd/website-screenshot) — screenshots and PDF prints of web pages.

### Changelog

2026-10-26: first version (build unit 5): directory, probes and careers-page detection; charged only when a system and board resolve; listing written to the amended store contract.

# Actor input Schema

## `companies` (type: `array`):

Company names (Stripe), domains (stripe.com) or careers-page URLs; 1–100.

## Actor input object example

```json
{
  "companies": [
    "stripe.com",
    "palantir.com"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "companies": [
        "stripe.com",
        "palantir.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hermeskd/company-ats-board").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 = { "companies": [
        "stripe.com",
        "palantir.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("hermeskd/company-ats-board").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "companies": [
    "stripe.com",
    "palantir.com"
  ]
}' |
apify call hermeskd/company-ats-board --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hermeskd/company-ats-board"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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