# ATS Jobs Feed (`mambalabs/ats-jobs-feed`) Actor

Every open job for a list of companies, read from their own Greenhouse, Lever, Ashby, Workday, and 13 other applicant tracking system boards. One row per job with the company domain, title, location, remote flag, date, and link. Title, location, and date filters, and only new jobs.

- **URL**: https://apify.com/mambalabs/ats-jobs-feed.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (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 $1.70 / 1,000 job rows

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

## ATS Jobs Feed

Give a list of companies and get back every open job on their own applicant tracking system (ATS) boards, one row per job. Each row carries the company domain from your list, the job title, department, location, remote flag, posting date, and link, so it drops straight into a Clay table, a CRM, or a CSV. Greenhouse, Lever, Ashby, and Workday are read, plus Workable, SmartRecruiters, Personio, Recruitee, Rippling, Oracle Recruiting, SuccessFactors, Teamtailor, BambooHR, ADP, UKG, Paylocity, and Breezy.

### Features

- **Domains in, jobs out.** Give `stripe.com` and the actor finds the board itself: first an ATS link on the company homepage or careers pages, then the company name tried as a board name on the boards that use one. A board found by name is kept only when the employer it names matches your domain, so a namesake board never fills your table with the wrong company's jobs.
- **Board URLs work too.** Paste `https://jobs.lever.co/palantir` or a Workday site URL and that board is read directly. Join a domain and a board with `=` to keep the domain on the rows.
- **The whole board.** Every posting is read, up to 5,000 per board. Workday boards are paged past the 400 posting stop that most readers hit.
- **Filters before you pay.** Title keywords, excluded words, locations (the word `remote` matches remote jobs), departments, remote only, and posted within N days. Jobs that do not pass are never returned and never charged.
- **Only new jobs.** Turn on `only_new` with a `state_key`, schedule the run, and each run returns only jobs that were not on the board the last time.
- **Descriptions on request.** `include_description` adds the job description as plain text at no extra charge.
- **One company row per company.** It names the board found and how, the open jobs on it, how many matched, and how many were returned, or why no board was read. Company rows are free.

### How it reads boards

Each board is read through its own public job board API or public careers site, the same pages anyone can open, with no login, no API key, and no other developer's actor. Busy hosts are paced, and a board that fails is retried once. The saved state for `only_new` lives in a key-value store in your own Apify account.

### Input

| Field | Type | Default | What it does |
|---|---|---|---|
| `companies` | array | | Company domains, homepage or careers URLs, or job board URLs, up to 500. `domain=board URL` ties the two |
| `title_keywords` | array | | Keep jobs whose title contains one of these, as whole words |
| `exclude_title_keywords` | array | | Drop jobs whose title contains one of these |
| `locations` | array | | Keep jobs whose location contains one of these; `remote` matches remote jobs |
| `departments` | array | | Keep jobs whose department or team contains one of these |
| `remote_only` | string | `false` | `true` keeps only remote jobs |
| `posted_within_days` | string | | Keep jobs posted in the last N days |
| `max_jobs_per_company` | string | `1000` | Job rows per company, newest first, up to 5000 |
| `include_description` | string | `false` | `true` adds the description |
| `only_new` | string | `false` | `true` returns only jobs not seen on the last run with the same `state_key` |
| `state_key` | string | | Names the saved state; one key per schedule |
| `reset_state` | string | `false` | `true` treats every board as a first run |
| `platforms` | array | all | Limit discovery to these boards |
| `max_charge_usd` | string | | Stop before a row would pass this amount |

Every field accepts text, as Clay sends it: `"true"`, `"30"`, a comma separated list, or a JSON array.

### Output

One row layout for every row type. Key fields:

| Field | Rows | Example |
|---|---|---|
| `row_type` | all | `job`, `company`, `input_error` |
| `company_domain`, `company_name` | all | `stripe.com`, `Stripe` |
| `ats_provider`, `board_slug`, `board_evidence`, `board_confidence` | all | `greenhouse`, `stripe`, `slug_probe`, `high` |
| `job_id`, `job_title`, `department` | job | `8130876`, `Enterprise Account Executive`, `Sales` |
| `location`, `secondary_locations`, `is_remote`, `workplace_type` | job | `New York, NY`, `San Francisco, CA; Remote`, `false`, `hybrid` |
| `job_url`, `posted_at`, `posted_at_precision` | job | `https://stripe.com/jobs/search?gh_jid=8130876`, `2026-10-27T09:19:59.000Z`, `exact` |
| `description` | job, with `include_description` | plain text |
| `is_new`, `first_seen_at` | job, with `only_new` | `true`, `2026-10-28T09:00:00.000Z` |
| `jobs_on_board`, `jobs_matched`, `jobs_returned` | company | `717`, `58`, `58` |
| `row_status`, `error_reason`, `billable_events_json` | all | `ok`, `null`, `{"job-row":1}` |

The run summary (key-value store record `RUN_SUMMARY`) counts boards by ATS, jobs listed, matched, and returned, companies with no board, and unreadable sites.

### Pricing

Pay per event. You pay only these events; the Apify platform and proxy costs of your run are paid by Mamba Labs.

| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Job row (`job-row`), one open job returned after your filters | $0.002 | $0.0019 | $0.0018 | $0.0017 |
| Actor start (`apify-actor-start`), once per run | $0.001 | $0.001 | $0.001 | $0.001 |

Free rows: one company row per company, rows for a company where no board was found or the site refused, and the row for a refused input. On the Apify free plan the actor stops at 1.50 USD of evaluation a month (about 750 job rows); any paid Apify plan removes that cap. The run also stops before any row that would pass your `max_charge_usd` or the maximum charge per run you set in Apify.

Example: 40 target accounts filtered to sales titles return 250 jobs: 250 job rows ($0.50), $0.5010 with the actor start.

### Usage examples

#### Apify Console or API

```json
{ "companies": ["linear.app", "notion.so"], "title_keywords": ["account executive"] }
```

```json
{ "companies": ["https://jobs.lever.co/palantir", "gusto.com=https://job-boards.greenhouse.io/gusto"], "locations": ["remote", "new york"], "posted_within_days": "14" }
```

```json
{ "companies": ["notion.so", "https://workday.wd5.myworkdayjobs.com/Workday"], "only_new": "true", "state_key": "accounts-daily" }
```

#### Clay

Send a company domain column to `companies` and read `job_title`, `location`, `posted_at`, and `job_url` from the job rows. Filter on `row_type` = `job` before counting jobs.

#### Scheduled monitoring

Save the input as an Apify task with `only_new` on and a `state_key`, and schedule it daily. The first run returns every matching job; each later run returns only jobs posted since.

#### MCP

The MCP server `@mambalabsdev/mcp-ats-jobs-feed` exposes this actor as a tool for Claude and other MCP clients.

### Error handling

| Situation | What you get |
|---|---|
| No board found for a company | One free company row with `row_status` `no_board` and what was tried |
| The only board found by name names another employer | One free company row, `no_board`, naming the board that was rejected |
| The company site and every board refused | One free company row with `row_status` `blocked` and the errors |
| Some pages of a board failed | The jobs read are returned; the company row says `partial` |
| A board lists more than 5,000 postings | The first 5,000 are read and the company row says so |
| The input names no company or is malformed | One free `input_error` row whose `error_reason` starts with `input_invalid:`; the run succeeds and nothing is charged |
| Max charge reached | The run stops before the next billable row; with `only_new`, that board's state is not saved, so its jobs come back next run |

### Limitations

- A board is found from the company's own site or its name. A company whose careers site uses an ATS outside the 17 above, or a custom careers page with no ATS behind it, returns `no_board`. Give the board URL when you know it.
- A board found by name with no employer name on it is returned with `board_confidence` `slug_only`. Check those rows before you rely on them.
- Department, remote, and workplace fields are only as complete as the board publishes them. Workday shows only relative dates, so `posted_at` there is a day, and older postings read 30 days or more (`floor`).
- `only_new` sees a job only if it is still on the board when the actor runs.
- You are responsible for how you use the data and for the terms of the sites you read.

### More from Mamba Labs

| Actor | Actor ID |
|---|---|
| [Account Hiring Watch](https://apify.com/mambalabs/account-hiring-watch?fpr=mamba) | `gRAZA5WBi1r6L0gy7` |
| [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor?fpr=mamba) | `anxbRv0lKrpQ1pnua` |
| [Agent to Brokerage Resolver](https://apify.com/mambalabs/agent-brokerage-resolver?fpr=mamba) | `ePRRGLxOGyaVHO4dI` |
| [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector?fpr=mamba) | `EwkHhmqiuJgRoVEbE` |
| [B2B Reddit Conversation Monitor](https://apify.com/mambalabs/b2b-reddit-conversation-monitor?fpr=mamba) | `SoDryzzsjmY3SsiyG` |
| [Bluesky Brand Presence Mapper](https://apify.com/mambalabs/bluesky-brand-presence-mapper?fpr=mamba) | `eLpxzP4IuXznlFVND` |
| [Career Change Signal Engine](https://apify.com/mambalabs/career-change-signal-engine?fpr=mamba) | `vX2Yga1a6wGaXaP14` |
| [Company Change Event Feed](https://apify.com/mambalabs/company-change-event-feed?fpr=mamba) | `oX44rS0fkEJ3rXLWe` |
| [Company Contact Details Extractor](https://apify.com/mambalabs/company-contact-details-extractor?fpr=mamba) | `4mMncKaJykiq94grz` |
| [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder?fpr=mamba) | `jch0HdaZnpbMqlcGS` |
| [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba) | `YlUtLWjfPpqykmB8g` |
| [Company Funding Record](https://apify.com/mambalabs/funding-investor-record?fpr=mamba) | `OFS4Mt1gyYNtGfUbE` |
| [Company Headcount Estimator](https://apify.com/mambalabs/company-headcount-estimator?fpr=mamba) | `aHC4GROnNt6kfZe5r` |
| [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver?fpr=mamba) | `lr8fTRAmZCBZmuwwh` |
| [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper?fpr=mamba) | `4k6CCemkgBDz18m2h` |
| [Competitor Price, Stock, and Changelog Monitor](https://apify.com/mambalabs/competitor-price-stock-changelog-monitor?fpr=mamba) | `yxdgCbUQ4PYQWwRNU` |
| [Contact Classifier](https://apify.com/mambalabs/contact-classifier?fpr=mamba) | `0lGSeYJmniXhGANnO` |
| [Contractor License Lookup](https://apify.com/mambalabs/contractor-license-lookup?fpr=mamba) | `WBYK3CPI2kdeq4bP1` |
| [Cookie Consent Audit](https://apify.com/mambalabs/cookie-consent-audit?fpr=mamba) | `TrKyOS0KBoGC35nbr` |
| [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker?fpr=mamba) | `0tVgxI7A6o9jMlxmc` |
| [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver?fpr=mamba) | `3HtnSaqPHOg1Qg5gx` |
| [Ecommerce Platform Profiler](https://apify.com/mambalabs/ecommerce-platform-profiler?fpr=mamba) | `5G2NeYjBbQTjaTn9L` |
| [Ecommerce Store Discovery](https://apify.com/mambalabs/ecommerce-store-discovery?fpr=mamba) | `PeHu4sLyFvQHXUUrX` |
| [Event Presence Index](https://apify.com/mambalabs/event-presence-index?fpr=mamba) | `WLhMy8fMDgsxdYxv5` |
| [Expert Witness Directory](https://apify.com/mambalabs/expert-witness-directory?fpr=mamba) | `LIpwlgfE3LaQBaXd4` |
| [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner?fpr=mamba) | `FS13X6dhQVgX3XOM6` |
| [GitHub Organization Signal Scanner](https://apify.com/mambalabs/github-organization-signal-scanner?fpr=mamba) | `ahF8RRpv5mzPao5CN` |
| [Google Ads Transparency Monitor](https://apify.com/mambalabs/google-ads-transparency-monitor?fpr=mamba) | `1eOwxhBVxzvOXAm4s` |
| [Government Contract Award Monitor](https://apify.com/mambalabs/public-award-monitor?fpr=mamba) | `zhEtllASykOcx9hJ8` |
| [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper?fpr=mamba) | `D7O1SA2EqwHGsGr1P` |
| [GTM Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay?fpr=mamba) | `xKdRfnfFNkdMpFuNs` |
| [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay?fpr=mamba) | `W161DT8W4kW55dMFh` |
| [Influencer Change Monitor](https://apify.com/mambalabs/creator-change-monitor?fpr=mamba) | `d2VVgahNL6UmcLkhg` |
| [Influencer Finder](https://apify.com/mambalabs/creator-finder?fpr=mamba) | `tpkedmloIIWtXx6sg` |
| [Influencer Lead List Builder](https://apify.com/mambalabs/creator-lead-list-all-in-one?fpr=mamba) | `KnmByszcv135yM30G` |
| [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba) | `EqEnklDVMIcB1V499` |
| [Influencer Talent Agency Lookup](https://apify.com/mambalabs/talent-agency-lookup?fpr=mamba) | `zCuX4Mgyg6JvXgGzd` |
| [Instagram Facebook Brand Presence Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper?fpr=mamba) | `HXh65I0JBjPsunbY8` |
| [Integration and Marketplace Presence Mapper](https://apify.com/mambalabs/integration-marketplace-presence-mapper?fpr=mamba) | `V0guNuvM85Q61f2gj` |
| [Job Board Keyword Signal Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner?fpr=mamba) | `4DvqpvhMR74NLcDDY` |
| [Job Change Tracker](https://apify.com/mambalabs/job-change-tracker?fpr=mamba) | `L8UbEmMJC1XYPSZOb` |
| [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery?fpr=mamba) | `QCfICD9kOPiOdj5iI` |
| [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver?fpr=mamba) | `KHFyPCDIx7CyqULYm` |
| [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) | `OorucdheTIgu7RFzK` |
| [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper?fpr=mamba) | `zOPm6A9JEhUGcIdFW` |
| [LinkedIn Post Tracker](https://apify.com/mambalabs/linkedin-post-engager-capture?fpr=mamba) | `oiGLNPuaf5BRaz9K5` |
| [Local Business Lead Builder](https://apify.com/mambalabs/local-business-lead-builder?fpr=mamba) | `qMN97aoHhsAS5bznV` |
| [Local Rank and Map Pack Tracker](https://apify.com/mambalabs/local-rank-map-pack-tracker?fpr=mamba) | `gv0kyHGDIg8XscclB` |
| [Lookalike Company Finder](https://apify.com/mambalabs/lookalike-company-finder?fpr=mamba) | `e2O426WBAbLLQL4Z2` |
| [Manufacturer and Supplier Finder](https://apify.com/mambalabs/manufacturer-supplier-finder?fpr=mamba) | `Qcsdmd0lUfPzVkonh` |
| [Meta Ad Library Monitor](https://apify.com/mambalabs/meta-ad-library-monitor?fpr=mamba) | `J1GWlSXfSGU3u8Wng` |
| [Mobile Phone Waterfall](https://apify.com/mambalabs/mobile-phone-waterfall-orchestrator?fpr=mamba) | `6OOgPktf7RIa5XCOP` |
| [New Company Registrations Feed](https://apify.com/mambalabs/new-company-registrations-feed?fpr=mamba) | `g2WfZhWvCtc57g2Jo` |
| [New Hire Finder](https://apify.com/mambalabs/new-hire-finder?fpr=mamba) | `cKuc38p4nYHNF3IW8` |
| [Newsletter Sponsor Tracker](https://apify.com/mambalabs/newsletter-sponsor-tracker?fpr=mamba) | `qSwpqxD1TiPZpLQHv` |
| [Open Tender and RFP Finder](https://apify.com/mambalabs/open-tender-rfp-finder?fpr=mamba) | `kPTGz6t6TFoUUyfaO` |
| [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint?fpr=mamba) | `v43UJC8r7qW7cBSTG` |
| [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor?fpr=mamba) | `TpurgcOZbVnknlaiC` |
| [Partner and Member Directory Extractor](https://apify.com/mambalabs/partner-member-directory-extractor?fpr=mamba) | `ZX0XJPPUvnFJxeC1a` |
| [People Finder & Email Verifier](https://apify.com/mambalabs/people-finder?fpr=mamba) | `LEgloG7tWgQl4o6TD` |
| [Person LinkedIn URL Resolver](https://apify.com/mambalabs/person-linkedin-url-resolver?fpr=mamba) | `ssuyPV8LnEsL8qbnb` |
| [Person Social Footprint Mapper](https://apify.com/mambalabs/person-social-footprint-mapper?fpr=mamba) | `jfQXa2zW9FHCJot9K` |
| [Personal Email to Company Resolver](https://apify.com/mambalabs/personal-email-to-company-resolver?fpr=mamba) | `AefT5Ye6YNPFQwJBf` |
| [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper?fpr=mamba) | `d1HvjZfKhgvWsoEwn` |
| [Podcast Guest and Host Finder](https://apify.com/mambalabs/podcast-guest-host-finder?fpr=mamba) | `o2MGSvgbSLeeXOsIo` |
| [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine?fpr=mamba) | `q9rT6v64nUJdPexOQ` |
| [Public Feature Board and Roadmap Monitor](https://apify.com/mambalabs/public-feature-board-roadmap-monitor?fpr=mamba) | `rcHF5gj5r2Vqnry35` |
| [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency?fpr=mamba) | `TbLwaUUATdYb6wp4N` |
| [Reddit Brand Presence Mapper](https://apify.com/mambalabs/reddit-brand-presence-mapper?fpr=mamba) | `pKQZmDaT70SEb54bZ` |
| [Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder?fpr=mamba) | `uINxR7a1IW8qUTRUX` |
| [Sequencer Event Poller](https://apify.com/mambalabs/sequencer-event-poller?fpr=mamba) | `S6s8Rjd61tGdrMRk4` |
| [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push?fpr=mamba) | `0Jv27VeWM5tSZQs9x` |
| [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor?fpr=mamba) | `j8a9zX0k4mNbvDbWK` |
| [Tech Stack Signal Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper?fpr=mamba) | `qyd7nNyqFPelQViBx` |
| [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper?fpr=mamba) | `fco8FvoJcSafbeyd1` |
| [Trustpilot Reputation Enricher](https://apify.com/mambalabs/review-platform-reputation-enricher?fpr=mamba) | `3lIqfCt61j4hqE1xz` |
| [VC and Accelerator Portfolio List Builder](https://apify.com/mambalabs/vc-accelerator-portfolio-list-builder?fpr=mamba) | `chH8hrfuoqqolW06m` |
| [WCAG Accessibility Audit](https://apify.com/mambalabs/wcag-accessibility-audit?fpr=mamba) | `P3jBj3FRghKEhX52z` |
| [Website Phrase and Business Model Classifier](https://apify.com/mambalabs/website-phrase-business-model-classifier?fpr=mamba) | `CBuZ9k7sRwBeiKiCS` |
| [Website Traffic Rank Estimator](https://apify.com/mambalabs/website-traffic-rank-estimator?fpr=mamba) | `GnOFUzlNVIoXgeJjH` |
| [Work Email Waterfall](https://apify.com/mambalabs/email-waterfall-orchestrator?fpr=mamba) | `OT6xqTFThC0Rjf7Zj` |
| [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector?fpr=mamba) | `Li6pPDhqbdzFz3h7G` |
| [X Brand Presence Mapper](https://apify.com/mambalabs/x-brand-presence-mapper?fpr=mamba) | `oLOgadhHUkNAyDA3w` |
| [YouTube Channel Stats Extractor](https://apify.com/mambalabs/youtube-channel-transcript-extractor?fpr=mamba) | `6hSpD3kd2s2IQ4VSs` |

Built by [Mamba Labs](https://apify.com/mambalabs?fpr=mamba).

# Actor input Schema

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

One per line: a company domain (stripe.com), a homepage or careers page URL, or a job board URL (https://jobs.lever.co/palantir, https://job-boards.greenhouse.io/stripe, https://jobs.ashbyhq.com/linear, https://workday.wd5.myworkdayjobs.com/Workday). To tie a board URL to a domain, join them with an equals sign: gusto.com=https://job-boards.greenhouse.io/gusto. Up to 500 per run.

## `title_keywords` (type: `array`):

Optional. Return only jobs whose title contains one of these words or phrases, matched as whole words and ignoring case, for example account executive, sales, engineer.

## `exclude_title_keywords` (type: `array`):

Optional. Drop jobs whose title contains one of these words or phrases, for example intern.

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

Optional. Return only jobs whose location text contains one of these, ignoring case, for example new york, london, germany. The word remote matches remote jobs.

## `departments` (type: `array`):

Optional. Return only jobs whose department or team contains one of these, ignoring case. Boards that publish no department return nothing under this filter.

## `remote_only` (type: `string`):

true returns only jobs the board marks remote or whose location says remote.

## `posted_within_days` (type: `string`):

Optional. Return only jobs posted in the last N days. Jobs with no posting date are left out when this is set. Workday shows 30+ days for older postings, so those count as 30 days old.

## `max_jobs_per_company` (type: `string`):

Job rows returned per company, newest first, after the filters. Default 1000, up to 5000. The whole board is read either way, up to 5,000 postings.

## `include_description` (type: `string`):

true adds the job description as plain text, up to 20,000 characters, for the jobs returned. No extra charge. Runs take longer on Workday boards, which need one read per job.

## `only_new` (type: `string`):

true returns only jobs that were not on the board at the last run with the same state key. The first run returns every matching job and records the board.

## `state_key` (type: `string`):

Names the saved state for only new jobs. Use one key per schedule, for example sales-accounts-daily.

## `reset_state` (type: `string`):

true forgets the saved state for this state key and treats every board as a first run.

## `platforms` (type: `array`):

Optional. Limit board discovery to these: greenhouse, lever, ashby, workday, workable, smartrecruiters, personio, recruitee, rippling, oracle_hcm, successfactors, teamtailor, bamboohr, adp, ukg, paylocity, breezy. Empty means all.

## `max_charge_usd` (type: `string`):

Optional. The run stops before it would charge more than this.

## `source_tag` (type: `string`):

Internal attribution tag. Leave empty.

## Actor input object example

```json
{
  "companies": [
    "linear.app",
    "notion.so"
  ],
  "title_keywords": [
    "account executive"
  ],
  "remote_only": "false",
  "max_jobs_per_company": "1000",
  "include_description": "false",
  "only_new": "false",
  "reset_state": "false"
}
```

# Actor output Schema

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

No description

## `run_summary` (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": [
        "linear.app",
        "notion.so"
    ],
    "title_keywords": [
        "account executive"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/ats-jobs-feed").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": [
        "linear.app",
        "notion.so",
    ],
    "title_keywords": ["account executive"],
}

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/ats-jobs-feed").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": [
    "linear.app",
    "notion.so"
  ],
  "title_keywords": [
    "account executive"
  ]
}' |
apify call mambalabs/ats-jobs-feed --silent --output-dataset

```

## MCP server setup

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

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/izP0rfIgf5YaRZfIh/builds/JBLDy1G0QmbqsMZQk/openapi.json
