# Company Careers & Open Jobs Lookup: Greenhouse, Lever, Ashby (`poised_beardlichen/careers-jobs-lookup`) Actor

Use this when you need a company's open jobs or want to know if it is hiring. $0.0015 per job, $0.003 per hiring summary; no board or no jobs free. Input: {"companies":\["stripe.com"]} (name, website or job-board URL). Output: title, team, location, remote, posted date, apply URL.

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

## Pricing

Pay per event

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/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

## Company Careers & Open Jobs Lookup API: Greenhouse, Lever, Ashby, Workable, Recruitee, SmartRecruiters

**Use this when you or your AI agent need a company's current open jobs, or a quick answer to "is this company hiring, and for what?"** Give it a company website, careers page, job-board URL or name. It finds the company's **official public job board** and returns every open role as clean JSON: title, department, team, location, remote or hybrid, employment type, posted date, salary where published, job and apply URLs, and optionally the full description.

- 🔎 **Finds the board for you:** reads the website's careers page for Greenhouse, Lever, Ashby, Workable, Recruitee and SmartRecruiters links and embeds, then falls back to name matching
- 📊 **Hiring summary mode:** one row per company with open-job count, jobs by department and location, remote count and jobs posted in the last 30 days, ideal as a **buying signal** for sales teams
- 🎯 **Filters:** title keywords, locations, departments, remote only, posted within N days
- 🤖 **Built for agents:** one simple input, newest jobs first, a cost cap with `maxJobsPerCompany`
- 💸 **$0.0015 per job returned, $0.003 per hiring summary. Companies with no board, no open jobs or no matching jobs are free.** No start fee

> **Official sources only.** Jobs come from the public job-board APIs that these applicant-tracking systems publish so that companies' jobs can be shown on other sites. No LinkedIn, Indeed, SEEK or Workday scraping and no logins. Recruiter names and contact emails are never returned.

### What can I use it for?

- **Sales prospecting:** find companies hiring for roles your product supports ("hiring 5+ data engineers in Sydney")
- **AI agents:** "what engineering roles is Stripe hiring for in London?", "has Canva posted new jobs this month?"
- **Job seekers and recruiters:** track target companies' new roles daily with Apify Schedules
- **Market research:** compare hiring by department and location across competitors
- **Job boards and newsletters:** pull fresh roles from a list of companies

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `companies` | array | | Websites (best), careers pages, job-board URLs, names, or `greenhouse:stripe`-style board ids |
| `output` | `jobs` / `summary` | `jobs` | One row per job, or one hiring summary per company |
| `maxJobsPerCompany` | integer | 100 | Newest first, caps cost on big boards |
| `titleKeywords` | array | | e.g. `["engineer", "sales"]` |
| `locations` | array | | e.g. `["Sydney", "Australia", "Remote"]` |
| `departments` | array | | e.g. `["Engineering"]` |
| `remoteOnly` | boolean | false | Only remote jobs |
| `postedWithinDays` | integer | | Only jobs posted in the last N days |
| `includeDescription` | boolean | false | Add the plain-text description (cut at `descriptionMaxChars`, default 3,000) |
| `guessBoardFromName` | boolean | true | Try the name on each provider when the website doesn't link a board |

```json
{"companies": ["stripe.com", "notion.so", "canva.com"], "locations": ["Sydney", "Australia"], "maxJobsPerCompany": 20}
```

### Output

One row per job (real output):

```json
{
  "company": "notion.so",
  "companyName": null,
  "ats": "ashby",
  "boardSlug": "notion",
  "boardUrl": "https://jobs.ashbyhq.com/notion",
  "matchedBy": "careers page",
  "openJobsTotal": 129,
  "found": true,
  "jobId": "a59ae31e-059e-4f6b-84a7-0fa9db88c72b",
  "title": "Business Development Representative",
  "department": "Sales",
  "team": "Sales",
  "location": "Sydney, Australia",
  "locations": ["Sydney, Australia"],
  "country": "Australia",
  "workplaceType": "hybrid",
  "remote": false,
  "employmentType": "FullTime",
  "postedAt": "2026-08-13T04:20:44Z",
  "url": "https://jobs.ashbyhq.com/notion/a59ae31e-059e-4f6b-84a7-0fa9db88c72b",
  "applyUrl": "https://jobs.ashbyhq.com/notion/a59ae31e-059e-4f6b-84a7-0fa9db88c72b/application",
  "salary": null,
  "description": null
}
```

Hiring summary (`"output": "summary"`, shortened):

```json
{
  "company": "canva.com", "companyName": "Canva", "ats": "smartrecruiters", "openJobsTotal": 110,
  "matchedBy": "board name guessed from the domain", "matchConfidence": "high",
  "byDepartment": {"Marketing": 25, "Sales": 23, "Information Technology": 20, "Design": 13},
  "byLocation": {"Sydney, Australia": 14, "San Francisco, CA, United States": 10},
  "remoteJobs": 17, "postedLast30Days": 38, "newestPostedAt": "2026-10-18T23:21:09Z",
  "sampleTitles": ["Senior Performance Creative", "Strategic Account Executive"]
}
```

No board: `{"company": "Example Pty Ltd", "found": false, "error": "No public Greenhouse, Lever, Ashby, Workable, Recruitee or SmartRecruiters job board found. Try the careers page URL or the job-board URL. Not charged."}`

`matchConfidence` appears when the board was found by guessing from the name: `high` means the board's own company name matches, `medium` means the provider doesn't publish a company name. Guesses where the names clearly differ are skipped.

### Pricing

| Event | Price | When |
|---|---|---|
| Open job returned | **$0.0015** | Each job row, after your filters |
| Hiring summary | **$0.003** | Each company summary with at least one matching job |

1,000 jobs cost $1.50. No board, empty boards and no matching jobs are free. Set **Maximum cost per run** and the Actor stops cleanly at your limit.

### Use it from an AI agent

Call it through the [Apify MCP server](https://mcp.apify.com) with `https://mcp.apify.com/?tools=poised_beardlichen/careers-jobs-lookup`. A single company takes 2–8 seconds. Use `"output": "summary"` for yes/no hiring questions to keep answers short and cheap.

### FAQ

**Which companies are covered?** Any company whose careers site runs on Greenhouse, Lever, Ashby, Workable, Recruitee or SmartRecruiters, which covers most tech companies and startups and many mid-size firms. Companies on Workday, SuccessFactors, Taleo, iCIMS or their own in-house system return "not found" and are not charged.

**How fresh is it?** Live: every run reads the company's job board at that moment.

**Why is a job's department empty?** Some boards don't publish departments. `team` is filled when the board uses teams instead.

### Other tools by us

- [Audio & Video Transcriber (Whisper)](https://apify.com/poised_beardlichen/audio-video-transcriber): MP3, WAV, M4A and MP4 to text, timed segments and SRT subtitles at $0.006 per audio minute.
- [Bulk Email Verifier](https://apify.com/poised_beardlichen/email-verifier-bulk): syntax, MX, disposable and role-address checks at $0.30 per 1,000 emails.
- [Website Screenshot & PDF API](https://apify.com/poised_beardlichen/website-screenshot-pdf): bulk screenshots and PDFs of any page with cookie banners and pop-ups removed.
- [Website Screenshot & PDF for AI Agents](https://apify.com/poised_beardlichen/website-screenshot-pdf-agent): fast single-page screenshots and PDFs for agents, from $0.0015 per screenshot.
- [PDF to Text & Markdown with OCR](https://apify.com/poised_beardlichen/pdf-to-text-markdown-ocr): turn PDFs, DOCX and scans into clean, LLM-ready Markdown.
- [Image to Text OCR API](https://apify.com/poised_beardlichen/image-to-text-ocr): extract text from PNG, JPEG, TIFF and WebP images in 27 languages.
- [Bulk PageSpeed & Lighthouse Checker](https://apify.com/poised_beardlichen/pagespeed-lighthouse-checker): Lighthouse scores, Core Web Vitals and top fixes for many URLs.
- [Website Tech Stack Detector](https://apify.com/poised_beardlichen/tech-stack-detector): CMS, ecommerce, analytics, CDN and 7,600+ other technologies behind any website.
- [Research Paper Search](https://apify.com/poised_beardlichen/research-paper-search): arXiv, PubMed and Crossref papers plus legal open-access full text from $0.0015 per paper.
- [SEC EDGAR Financials & Filings](https://apify.com/poised_beardlichen/sec-edgar-financials): US company financials, filings and 10-K sections as compact JSON.
- [Website Legitimacy & Scam Check](https://apify.com/poised_beardlichen/website-legitimacy-check): domain age, SSL, look-alike brands, VAT and LEI signals at $0.008 per site.
- [Bulk Phone Number Validator](https://apify.com/poised_beardlichen/phone-number-validator): validity, E.164 format, line type and region for any number at $0.70 per 1,000.
- [Company Contact & Profile Extractor](https://apify.com/poised_beardlichen/company-contact-extractor): generic emails, phones, socials and profile from any company website at $0.004 per site.
- [UK & Australia Company Check](https://apify.com/poised_beardlichen/company-registry-check): ABN, ACN, ASIC and Companies House status and red flags from $0.003 per company.

### Support

A company whose board we missed? Open an issue on the **Issues** tab with the careers page URL.

# Actor input Schema

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

Company websites (best), careers page URLs, job-board URLs (e.g. https://jobs.lever.co/palantir) or company names. You can also force a board with greenhouse:stripe, lever:palantir, ashby:notion, workable:huggingface, recruitee:bunq or smartrecruiters:BoschGroup. Up to 500 per run.

## `company` (type: `string`):

A single company, combined with the list above.

## `output` (type: `string`):

Jobs returns every matching posting. Summary returns counts by department and location, remote jobs, jobs posted in the last 30 days and sample titles.

## `maxJobsPerCompany` (type: `integer`):

Newest jobs first. Caps cost on very large boards.

## `titleKeywords` (type: `array`):

Only jobs whose title contains any of these words (case-insensitive), e.g. engineer, sales, product.

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

Only jobs whose location contains any of these, e.g. Sydney, Australia, London, Remote.

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

Only jobs whose department or team contains any of these, e.g. Engineering, Marketing.

## `remoteOnly` (type: `boolean`):

Only jobs the board marks as remote.

## `postedWithinDays` (type: `integer`):

Only jobs first published in the last N days. Leave empty for all.

## `includeDescription` (type: `boolean`):

Add the plain-text job description to each job. Same price, larger output.

## `descriptionMaxChars` (type: `integer`):

Longer descriptions are cut at this many characters.

## `guessBoardFromName` (type: `boolean`):

When no board link is found on the website, try the company name on each job-board provider. Matches whose board name clearly differs are skipped.

## Actor input object example

```json
{
  "companies": [
    "stripe.com",
    "notion.so",
    "canva.com"
  ],
  "output": "jobs",
  "maxJobsPerCompany": 100,
  "remoteOnly": false,
  "includeDescription": false,
  "descriptionMaxChars": 3000,
  "guessBoardFromName": true
}
```

# 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",
        "notion.so",
        "canva.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("poised_beardlichen/careers-jobs-lookup").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",
        "notion.so",
        "canva.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("poised_beardlichen/careers-jobs-lookup").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",
    "notion.so",
    "canva.com"
  ]
}' |
apify call poised_beardlichen/careers-jobs-lookup --silent --output-dataset

```

## MCP server setup

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

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/L981yTOdD1vGUGD3y/builds/KyayyGv5lH0mr5OZx/openapi.json
