# Business Data MCP Server: Gov Contracts, Jobs, LinkedIn, Leads (`artificially/business-data-mcp`) Actor

MCP server for AI agents (Claude, Cursor, ChatGPT) with 13 business data tools: SAM.gov and USAspending contracts, EU tenders, Google/LinkedIn/career-site jobs, LinkedIn companies and profiles, YC startups, company contacts, tech stacks, PDF text, Google Trends.

- **URL**: https://apify.com/artificially/business-data-mcp.md
- **Developed by:** [Artificially](https://apify.com/artificially) (community)
- **Categories:** MCP servers, AI, Lead generation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 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/actors/running/actors-in-store.md#pay-per-usage

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

## Business Data MCP Server – Gov Contracts, Jobs, LinkedIn & Leads

One **MCP server** that gives Claude, ChatGPT, Cursor and any other AI agent **13 business data tools**: US federal contract opportunities and awards, EU public tenders, jobs from Google Jobs, LinkedIn and company career sites, LinkedIn company and person profiles, Y Combinator startups, company contact details, website tech stacks, PDF text extraction and Google Trends.

Each tool runs one of our dedicated [Artificially](https://apify.com/artificially) Actors on your Apify account and returns compact JSON sized for an agent's context window.

**Built by [Artificially](https://apify.com/artificially)** | Follow us on [X @artificially\_io](https://x.com/artificially_io)

### Why this MCP server

- **One connection, 13 tools** – no need to add each Actor separately. The agent sees clear tool names, short descriptions and small, typed inputs.
- **Agent-friendly output** – every tool asks the underlying Actor for its compact output, keeps result counts small by default and caps the response size, so answers fit in the context window.
- **Handles slow runs** – long runs report progress; if a run is still going when the wait limit is reached, the tool returns what is ready plus a `runId`, and the agent calls `get_run_results` later.
- **Clear errors** – failed runs, missing credit, blocked domains and unreadable documents come back as short messages the agent can act on.
- **You only pay for results** – no extra fee for the MCP layer (see Pricing).

### Tools

| Tool | What it does | Backed by |
| --- | --- | --- |
| `search_gov_contract_opportunities` | Open US federal solicitations, RFPs and sources sought on SAM.gov by keyword, NAICS, agency, set-aside and date | [SAM.gov Opportunities Scraper](https://apify.com/artificially/samgov-opportunities-scraper) |
| `search_awarded_federal_contracts` | Awarded US federal contracts (winners, amounts, agencies) from USAspending.gov | [US Federal Contracts Scraper](https://apify.com/artificially/us-contracts-scraper) |
| `search_eu_tenders` | EU/EEA public tenders and contract awards from TED by keyword, country, CPV and notice type | [EU Tenders Scraper](https://apify.com/artificially/eu-tenders-scraper) |
| `search_company_career_jobs` | Open roles from company career sites (Greenhouse, Lever, Ashby, Workable and more) | [Career Site Jobs Scraper](https://apify.com/artificially/career-site-jobs-scraper) |
| `search_google_jobs` | Google Jobs search results aggregated from job boards and company sites | [Google Jobs Scraper](https://apify.com/artificially/google-jobs-scraper) |
| `search_linkedin_jobs` | Public LinkedIn job postings by keywords, location, date, workplace type and seniority | [LinkedIn Jobs Scraper](https://apify.com/artificially/linkedin-jobs-scraper) |
| `get_linkedin_company` | LinkedIn company pages: website, industry, size, employees, followers, HQ, funding | [LinkedIn Company Scraper](https://apify.com/artificially/linkedin-company-scraper) |
| `get_linkedin_profiles` | Public LinkedIn person profiles: headline, current company, experience, education | [LinkedIn Profile Scraper](https://apify.com/artificially/linkedin-profile-scraper) |
| `find_yc_companies` | Y Combinator startups by keyword, batch, industry, status and hiring, optionally with founders | [Y Combinator Scraper](https://apify.com/artificially/ycombinator-scraper) |
| `get_company_contacts` | Emails, phone numbers, social profiles and contact pages from company websites | [Company Contact Extractor](https://apify.com/artificially/company-contact-extractor) |
| `detect_website_tech_stack` | Technologies a website uses: CMS, ecommerce, analytics, CDN, email provider, frameworks | [Website Tech Stack Detector](https://apify.com/artificially/website-tech-stack-detector) |
| `extract_pdf_text` | Clean text or Markdown from public PDF and Word (.docx) URLs, with optional OCR | [PDF Text Extractor](https://apify.com/artificially/pdf-text-extractor) |
| `google_trends` | Google Trends interest over time, regions and related queries, or what is trending now | [Google Trends Scraper](https://apify.com/artificially/google-trends-scraper) |
| `get_run_results` | Fetch or page through results of a run started by any tool above | – |

### Setup

You need an [Apify account](https://console.apify.com/sign-up) and your [Apify API token](https://console.apify.com/settings/integrations). The server uses the Streamable HTTP transport at this endpoint:

```
https://artificially--business-data-mcp.apify.actor/mcp
```

Send your token as `Authorization: Bearer <YOUR_APIFY_TOKEN>`. The exact URL is also shown on the Actor's **Endpoints** tab in Apify Console.

#### Claude Code

```bash
claude mcp add --transport http business-data \
  https://artificially--business-data-mcp.apify.actor/mcp \
  --header "Authorization: Bearer <YOUR_APIFY_TOKEN>"
```

#### Cursor, VS Code, Windsurf and other MCP clients

```json
{
  "mcpServers": {
    "business-data": {
      "url": "https://artificially--business-data-mcp.apify.actor/mcp",
      "headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
    }
  }
}
```

#### Claude (claude.ai and Claude Desktop) via Apify's MCP server

Claude's custom connectors sign in with OAuth, so connect through [Apify's hosted MCP server](https://mcp.apify.com), which loads this server's tools for you:

Settings → Connectors → Add custom connector, and paste:

```
https://mcp.apify.com?tools=artificially/business-data-mcp
```

The same URL works in any client that supports remote MCP servers with OAuth. Tools then appear with an `artificially--business-data-mcp--` prefix.

#### Clients without remote HTTP support

Use the `mcp-remote` bridge:

```json
{
  "mcpServers": {
    "business-data": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://artificially--business-data-mcp.apify.actor/mcp",
        "--header", "Authorization: Bearer <YOUR_APIFY_TOKEN>"
      ]
    }
  }
}
```

### Example prompts

- "Find open SAM.gov cybersecurity solicitations for NAICS 541512 set aside for small businesses, due in the next 30 days."
- "Who won the largest Department of Veterans Affairs cloud contracts since 2024, and for how much?"
- "List open German public tenders for software development with deadlines at least two weeks away."
- "Which engineering roles are Stripe, Notion and Airbnb hiring for in London right now?"
- "Search Google Jobs and LinkedIn for remote senior data engineer jobs posted this week."
- "Get the LinkedIn company pages of OpenAI and Anthropic and compare headcount and followers."
- "List YC W25 fintech startups that are hiring, with their founders."
- "Find the contact emails and LinkedIn pages for these 10 domains, then tell me which of them run Shopify."
- "Read this RFP PDF and summarize the evaluation criteria and deadlines."
- "Compare Google Trends interest for 'claude' and 'chatgpt' in the US over the last 12 months."

### Pricing

**You pay each underlying Actor's per-result price, and nothing extra for the MCP layer.**

- Every tool call starts one run of the matching Artificially Actor on your Apify account, billed under that Actor's own pay-per-event pricing (for example, per company, per job or per document). Check each Actor's Store page (linked in the Tools table) for current prices.
- Tools use small default limits (usually 10-20 results) and pass them to the Actor, so a typical call costs cents.
- The MCP server itself runs in Apify Standby mode with 256 MB of memory. Its small platform usage while connected is billed to your account like any Actor run; it stops automatically when idle.
- Apify's free plan includes monthly credit that covers plenty of tool calls to try it out.

### How it works

1. Your MCP client calls a tool, for example `find_yc_companies` with `{"batches": ["W24"], "limit": 5}`.
2. The server starts `artificially/ycombinator-scraper` with `compactOutput: true` and `maxResults: 5`, using your own Apify token, so the run appears in your Apify Console.
3. It waits for the run (up to 2-3 minutes depending on the tool, with progress notifications), then returns the dataset items as compact JSON:

```json
{
  "actor": "artificially/ycombinator-scraper",
  "runId": "jGdWwQx1J5blfxiom",
  "status": "SUCCEEDED",
  "itemCount": 5,
  "statusMessage": "Saved 5 Y Combinator companies (248 match in the directory). Reached maxResults.",
  "items": [
    { "name": "Indemni", "website": "http://www.indemni.com", "oneLiner": "Cargo Theft and Fraud Prevention Platform", "batch": "Winter 2024", "status": "Active", "teamSize": 7, "isHiring": false }
  ]
}
```

If the run is not finished in time, the response contains the items saved so far, a `note` and the `runId`; the agent calls `get_run_results` to get the rest. Responses are capped at about 40,000 characters, with the remainder available through `get_run_results` and `offset`.

### FAQ

**Do I need to start the Actor manually?** No. It runs in Standby mode: the first request starts it automatically and it shuts down after a period of inactivity. Starting it from the Console's Start button does nothing useful.

**Can I use my own Actor inputs?** Each tool exposes the most useful inputs. For full control, run the underlying Actor directly or add it to [Apify's MCP server](https://mcp.apify.com) by name.

**Is LinkedIn data scraped while logged in?** No. Only public pages visible to logged-out visitors are read.

**Where do I report issues or request tools?** Open an issue on the Actor's **Issues** tab.

# 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("artificially/business-data-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("artificially/business-data-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 artificially/business-data-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,artificially/business-data-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/8RRR3Cuk4qcRHfff3/builds/VNlAjTrX6W0dmAR5T/openapi.json
