# Company Signals MCP: Startup Jobs & Hiring Data for AI Agents (`tiktop/company-signals-mcp`) Actor

MCP server for Claude, ChatGPT, Cursor and other AI agents: search 260,000+ open jobs at 8,000+ startups, list any company's open roles live from its career board, and detect which ATS it uses. Pay per tool call.

- **URL**: https://apify.com/tiktop/company-signals-mcp.md
- **Developed by:** [Khaled](https://apify.com/tiktop) (community)
- **Categories:** MCP servers, Jobs, Agents
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.75 / 1,000 tool calls

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

An MCP server that gives Claude, ChatGPT, Cursor and any other MCP-compatible AI agent **live hiring data**:

- **search_jobs**: search 260,000+ open jobs at 8,000+ startup and tech companies (Greenhouse, Lever and Ashby career boards), refreshed daily. Filter by keywords, location, remote, department, posting date or company.
- **company_jobs**: list one company's open jobs live from its own career board. Give it a website (`stripe.com`), a careers URL, or `ats:slug` (`greenhouse:airbnb`). Works with Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio and Breezy.
- **detect_ats**: find which applicant tracking system a company hires with, and its job board name.

**Price: $0.005 per successful tool call.** Failed calls are free. Apify's free plan ($5 monthly credit) covers about 1,000 calls a month.

[![Company Signals MCP search_jobs result: data engineer jobs, remote or London, posted in the last 3 days](https://raw.githubusercontent.com/TikTop-Data/apify-store-assets/main/images/company-signals-mcp-output.png)](https://console.apify.com/actors/Iaz9yc7XStSZY5lwH)

### Questions your agent can answer

- "Which startups are hiring ML engineers in Berlin this week?"
- "List Figma's open design roles."
- "Which of these 20 companies opened sales roles recently?" (a buying signal)
- "Does Notion use Greenhouse or Ashby?"

### Who uses this

- 🤖 **AI agent builders:** give an assistant up-to-date hiring data without writing a scraper.
- 💼 **Sales and RevOps:** ask your agent which target accounts are hiring for roles your product serves.
- 🤝 **Recruiters:** let an agent shortlist companies hiring for the roles you place.
- 🧭 **Job seekers:** ask for fresh roles that match your skills, location and remote preference.

### How to connect

1. Get your Apify API token from **Console → Settings → API & Integrations** (a free Apify account is enough).
2. Add the server to your MCP client. Server URL (Streamable HTTP):

```
https://tiktop--company-signals-mcp.apify.actor/mcp
```

3. Send the token as a Bearer token. Example for Claude Desktop, Cursor or any client that takes a JSON config:

```json
{
  "mcpServers": {
    "company-signals": {
      "url": "https://tiktop--company-signals-mcp.apify.actor/mcp",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

4. Ask your agent a hiring question. It picks the right tool on its own.

You can also reach these tools through Apify's own MCP server (mcp.apify.com), which lets agents discover and call Apify Actors.

### What the tools return

`search_jobs` returns `totalMatches`, `indexBuiltAt` and up to 100 jobs (newest first, at most 5 per company by default), each with company, title, department, location, workplace type, salary when published, posting date, job URL and ATS. `company_jobs` returns the company's open job count, matching jobs and the same fields. `detect_ats` returns `ats` and `boardSlug`, or `found: false` with a reason.

A real `search_jobs` response (data engineer or analytics engineer, remote or London, last 3 days, one job per company), shortened:

```json
{
  "indexBuiltAt": "2026-10-06T10:37:02.354Z",
  "totalMatches": 48,
  "returned": 8,
  "jobs": [
    {
      "company": "Jobgether",
      "title": "Senior Data Engineer, Data Management & BI",
      "department": "Security & IT",
      "location": "US",
      "workplaceType": "remote",
      "salary": null,
      "postedAt": "2026-10-06T09:44:08.070Z",
      "url": "https://jobs.lever.co/jobgether/8389a752-c409-42c8-ba60-f15d4be74035",
      "ats": "lever",
      "companySlug": "jobgether"
    },
    {
      "company": "Valtech",
      "title": "Senior Data Engineer",
      "department": null,
      "location": "Portugal - Remote",
      "workplaceType": "remote",
      "salary": null,
      "postedAt": "2026-10-06T07:05:12.000Z",
      "url": "https://job-boards.eu.greenhouse.io/valtech/jobs/4989690101",
      "ats": "greenhouse",
      "companySlug": "valtech"
    },
    "..."
  ]
}
```

A real `detect_ats` response for `notion.so`:

```json
{ "company": "notion.so", "found": true, "ats": "ashby", "boardSlug": "notion", "detectedVia": "https://notion.so/careers" }
```

### Data and limits

- Jobs come from each company's official public job-board API. Company and job data only; no personal data about recruiters or employees.
- The search index is rebuilt daily; `company_jobs` reads live.
- Coverage: companies on Greenhouse, Lever and Ashby in our index (it grows over time). Workday and iCIMS aren't covered.

### How much does it cost?

- **Tool call:** $0.005 per successful call, whatever the number of jobs it returns. Failed calls are free.
- 100 calls cost about $0.50; 1,000 calls about $5.
- Apify's free plan includes $5 of credit every month, enough for about 1,000 calls. Paid Apify plans get Store discounts of up to 25%.

### FAQ

**Is this legal?** The tools read public job-board APIs that companies publish so their jobs get syndicated. Only job and company data is returned.

**Which clients work?** Any MCP client that supports Streamable HTTP with an `Authorization` header, such as Claude Desktop, Claude Code, Cursor and VS Code.

**Do I need bulk exports, schedules or alerts instead of agent calls?** Use [Startup Jobs Search](https://apify.com/tiktop/jobs-index) or [ATS Jobs Scraper](https://apify.com/tiktop/ats-jobs-scraper).

### Related Actors

- [Startup Jobs Search](https://apify.com/tiktop/jobs-index): the same index as a bulk search with monitoring mode.
- [ATS Jobs Scraper](https://apify.com/tiktop/ats-jobs-scraper): live jobs from any company on 8 ATS.
- [Website Tech Stack Detector](https://apify.com/tiktop/tech-stack-detector): what a company's website is built with.

### Credits

The starting company list comes from the open-source [job-board-aggregator](https://github.com/Feashliaa/job-board-aggregator) project (MIT licence). See `NOTICE`.

# Actor input Schema

## Actor input object example

```json
{}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("tiktop/company-signals-mcp").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("tiktop/company-signals-mcp").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 '{}' |
apify call tiktop/company-signals-mcp --silent --output-dataset

```

## MCP server setup

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

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/Iaz9yc7XStSZY5lwH/builds/KBas6DJVmPcVhlcIN/openapi.json
