# SaaS Competitor Intelligence Monitor (`cancap/competitive-intel-actor`) Actor

Track competitor pricing, feature launches, hiring signals & product updates. Works on any SaaS site. $0.05/site. No API keys needed.

- **URL**: https://apify.com/cancap/competitive-intel-actor.md
- **Developed by:** [CANCAP](https://apify.com/cancap) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 competitor analyzeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## SaaS Competitive Intelligence Monitor

Monitor your SaaS competitors automatically. Track pricing changes, feature launches, job postings, and product updates.

### What this actor does

Automatically scrapes your competitors' websites and extracts:

- **Pricing information** — pricing pages, plan tiers, feature comparison
- **Product features** — extracted feature lists and benefits
- **Hiring signals** — job postings (indicates growth or expansion)
- **Blog/changelog activity** — product updates and announcements
- **Social presence** — LinkedIn, Twitter, GitHub links (company size indicator)

### Use cases

1. **Sales teams** — Build battle cards with latest competitor positioning
2. **Product managers** — Track feature launches and roadmap trends
3. **Investors** — Monitor competitive landscape for portfolio companies
4. **Marketing** — Stay informed on competitor messaging and campaigns
5. **Recruiting** — See if competitors are hiring (growth signal)

### How to use

#### Basic example

```json
{
  "competitors": [
    "https://www.intercom.com/",
    "https://www.drift.com/",
    "https://www.hubspot.com/"
  ]
}
```

#### Input parameters

- **competitors** (required) — Array of competitor URLs
  - Format: `["https://competitor1.com/", "https://competitor2.com/"]`
  - Can include or exclude `https://` prefix
  - Max 50 URLs per run

- **maxDepth** (optional) — How deep to crawl (default: 1)
  - 1 = homepage only
  - 2 = homepage + pricing page + about page
  - 3 = go deeper for more content

- **checkJobBoard** (optional) — Monitor hiring (default: true)
  - Extracts job postings and careers pages
  - Tracks if competitor is actively hiring

- **trackPricingChanges** (optional) — Extract pricing (default: true)
  - Captures pricing page content
  - Useful for price comparison

- **extractFeatures** (optional) — Get feature list (default: true)
  - Pulls feature mentions from marketing copy
  - Useful for competitive positioning

### Output example

```json
{
  "competitor": {
    "domain": "www.intercom.com",
    "url": "https://www.intercom.com/",
    "scrapedAt": "2026-06-24T10:30:00Z"
  },
  "content": {
    "pageTitle": "Customer Communications Platform | Intercom",
    "h1": "The complete customer communications platform",
    "metaDescription": "Intercom is the complete customer communications platform...",
    "hasChangelog": true,
    "hasBlog": true,
    "hasAnnouncements": true
  },
  "pricing": {
    "visibleElements": [
      "Starting at $0/month",
      "Pro plan $99/month",
      "Enterprise custom pricing"
    ]
  },
  "features": {
    "extractedFeatures": [
      "Live chat",
      "Automated messages",
      "Customer data platform",
      "Ticketing system"
    ]
  },
  "engagement": {
    "ctaButtons": ["Start free", "Schedule demo", "Get started"],
    "jobLinks": ["careers.intercom.com"],
    "socialLinks": {
      "linkedin": "https://www.linkedin.com/company/intercom/",
      "twitter": "https://twitter.com/intercom"
    }
  },
  "signals": {
    "isHiring": true,
    "activelyUpdating": true,
    "makingAnnouncements": true,
    "hiringSignal": "High"
  }
}
```

### Pricing

This actor uses **pay-per-event pricing**:

- **$0.05** per competitor website scanned
- Monitor 10 competitors = $0.50 per run
- Monitor 50 competitors = $2.50 per run
- Includes all extracted data (pricing, features, hiring signals, etc.)

**Recommended usage:**

- Small teams (1-5 competitors): Run weekly = $0.25-1.25/week
- Medium teams (5-20 competitors): Run daily = $1.75-10/week
- Enterprise (20+ competitors): Bulk discount available

### How it works

1. You provide competitor URLs
2. Actor scrapes public-facing content (HTML pages only)
3. Extracts structured data (pricing, features, job links)
4. Returns clean JSON dataset
5. You integrate into CRM, Slack, or dashboard

**No API keys needed** — we scrape public web pages just like you would manually.

### Common questions

#### Will this get me blocked?

- We use respectful rate limiting (2-3 second delays between requests)
- Target only your competitor's public pages
- No login credentials required
- Compliant with robots.txt
- **No warranty** — scraping always carries legal risk; use responsibly

#### How often should I run this?

- Competitors' pricing: Weekly or monthly
- Job postings: Weekly (hiring can change fast)
- Blog/changelog: Daily or weekly (depends on how active they are)

#### Can I monitor internal pages?

- No, we only scrape publicly visible HTML
- We do not bypass logins or paywalls
- We do not extract private/proprietary data

#### Is this legal?

- We only extract publicly visible data
- Falls under fair use in most jurisdictions
- User is responsible for compliance with local laws and company ToS

### Troubleshooting

#### "No results returned"

- Check competitor URLs are correct
- Verify websites are accessible (not blocked in your region)
- Try increasing `maxDepth` to 2-3 for deeper crawling

#### "Slow results"

- Large websites take longer to process
- Set `maxDepth` to 1 for faster results
- Consider running fewer competitors per job

#### "Competitor site not found"

- Verify URL is correct (use full URL including https://)
- Some sites may have robots.txt restrictions
- Check if site is geographically restricted

### Support

Found a bug? Have a feature request? Submit in Apify comments section.

***

**Made for SaaS teams who want to stay ahead of competitors.**

Build battle cards. Track hiring. Monitor pricing. Automate the research.

# Actor input Schema

## `competitors` (type: `array`):

List of competitor websites. Include full URL (https://). Max 50 per run.

## `maxDepth` (type: `integer`):

1 = homepage only (fast). 2 = homepage + pricing/careers/features pages (recommended). 3 = deep crawl (slow).

## `checkJobBoard` (type: `boolean`):

Find job postings and career page links (useful for spotting growth signals).

## `trackPricingChanges` (type: `boolean`):

Extract pricing tiers, dollar amounts, free trial mentions, enterprise plans.

## `extractFeatures` (type: `boolean`):

Pull feature mentions, h2 headings, and benefit bullets from marketing copy.

## `useProxy` (type: `boolean`):

Enable Apify proxy rotation. Useful if competitors block direct requests.

## Actor input object example

```json
{
  "competitors": [
    "https://www.intercom.com/",
    "https://www.drift.com/",
    "https://www.hubspot.com/"
  ],
  "maxDepth": 1,
  "checkJobBoard": true,
  "trackPricingChanges": true,
  "extractFeatures": true,
  "useProxy": false
}
```

# 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 = {
    "competitors": [
        "https://www.intercom.com/",
        "https://www.drift.com/",
        "https://www.hubspot.com/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("cancap/competitive-intel-actor").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 = { "competitors": [
        "https://www.intercom.com/",
        "https://www.drift.com/",
        "https://www.hubspot.com/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("cancap/competitive-intel-actor").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 '{
  "competitors": [
    "https://www.intercom.com/",
    "https://www.drift.com/",
    "https://www.hubspot.com/"
  ]
}' |
apify call cancap/competitive-intel-actor --silent --output-dataset

```

## MCP server setup

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

```

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/y4NPcKcrhkjQhXmjM/builds/dpOfyPx5aD94pZ39Q/openapi.json
