# Account Intel Scraper (`osaki/account-intel-scraper`) Actor

Lean B2B account intelligence from a company domain. Crawls public pages and returns one structured account-intelligence record per domain with business signals, jobs, contacts, tech stack, and outreach hooks.

- **URL**: https://apify.com/osaki/account-intel-scraper.md
- **Developed by:** [osaki](https://apify.com/osaki) (community)
- **Categories:** Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $25.00 / 1,000 company analyzeds

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

## Account Intel Scraper

**The research an SDR does in 15 minutes per account, in seconds, with sources.**

Turn a list of company domains into one research row per company. Spend less time checking websites by hand and bring account, hiring, contact, and technology signals together without paying for multiple tools.

### What you get for each company

- **Who they are:** Company name, industry or vertical, account type, summary, and available company facts.
- **Are they buying:** Products, industries served, go-to-market motion, pricing model, enterprise signals, and hiring activity—including open roles, departments, job titles, and hiring strength when visible.
- **Who to contact:** A recommended buyer persona, plus public generic emails, phone numbers, and social links where available.
- **What they run:** Public clues about their CMS, analytics, chat, forms, payments, and ecommerce technology.
- **Why now:** A 0–100 account score, hot/warm/cold tier, reasons to reach out, and personalization hooks.

Each row also includes important page URLs, evidence with source URLs and snippets for selected signals, a confidence score, warnings, and page counts.

### Use cases

- Prepare SDRs and AEs for more relevant account outreach.
- Give RevOps teams structured signals for account prioritization.
- Help outbound agencies research prospect lists at scale.
- Let founders qualify accounts before starting sales conversations.
- Give AI agents sourced company context for prospect lists.

### How to use

1. Add a list of company domains or website URLs.
2. Run the Actor. It checks up to 15 pages per company by default, including relevant pages such as pricing, careers, and contact.
3. Review the rows, evidence, and warnings, then export or connect the results to your workflow.

```json
{
  "domains": ["stripe.com", "shopify.com"],
  "maxPagesPerDomain": 15
}
```

### Example output

This illustrative row is trimmed for readability. Available fields and values depend on the website.

```json
{
  "domain": "example.com",
  "website": "https://example.com",
  "companyName": "Example",
  "summary": "Example offers workflow software for business teams.",
  "accountType": "b2b_saas",
  "vertical": "b2b_saas",
  "confidence": 95,
  "pageCounts": { "discovered": 15, "crawled": 10, "usedForIntel": 8, "failed": 0 },
  "importantPages": { "home": "https://example.com/", "careers": "https://example.com/careers" },
  "businessSignals": { "products": ["workflow automation"], "pricingSignals": ["book a demo"] },
  "jobsSignals": { "hasCareersPage": true, "ats": "greenhouse", "openRolesCount": 1, "departmentsHiring": ["sales"], "jobTitles": ["Account Executive"], "hiringSignalStrength": "medium" },
  "contactSignals": { "genericEmails": ["sales@example.com"], "phones": [], "socialLinks": [] },
  "techSignals": { "cms": "webflow", "analytics": ["google_tag_manager"], "forms": [], "chat": [], "payments": [], "ecommerce": false },
  "outboundIntel": { "accountScore": 100, "accountTier": "hot", "recommendedPersona": "Head of Sales / RevOps", "whyNow": ["Hiring sales roles suggests GTM expansion."], "personalizationHooks": ["Saw your team is hiring Account Executive — looks like GTM expansion is active."] },
  "evidence": [{ "field": "jobsSignals", "url": "https://example.com/careers", "snippet": "Account Executive" }],
  "warnings": []
}
```

### Pricing

**$0.025 per company analyzed**, billed per event, with no platform-usage charges to you. For example, 1,000 companies cost **$25**.

### Integrations

Export results as JSON, CSV, or Excel, or retrieve them through the API. Connect workflows using Apify integrations with Zapier, Make, or n8n. AI agents can use the Actor through MCP.

### FAQ

**What happens if a site blocks the crawl?**

Bot protection can block some or all pages. A row is still returned with a warning and low confidence; available signals may be limited.

**How accurate is the classification?**

Industry classification is rule-based and accurate on most company sites, but it is not perfect. Review the evidence and confidence score before acting on a result.

**How many pages are crawled?**

The default is up to 15 pages per company. You can adjust the page limit in the input.

**How fresh is the data?**

The Actor crawls the website live when you run it. Results reflect the public pages available at that time.

**Is this legal?**

The Actor uses public business websites. You are responsible for using the data in accordance with applicable laws and website terms.

Use public business data responsibly; this Actor does not provide personal data enrichment or collect data from LinkedIn.

# Actor input Schema

## `domains` (type: `array`):

Domains or URLs to analyze. Accept stripe.com, https://stripe.com, or start URLs.

## `maxPagesPerDomain` (type: `integer`):

Max successful pages to crawl per domain. Range 1-100.

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

Same-domain crawl depth after homepage. Range 0-3.

## `deepScan` (type: `boolean`):

Probe common high-value paths like /pricing, /careers, /contact, /imprint.

## `includeSitemap` (type: `boolean`):

Fetch sitemap URLs and add high-value sitemap pages to candidates.

## `includeJobs` (type: `boolean`):

Detect jobs/careers/ATS signals.

## `includeContacts` (type: `boolean`):

Extract basic emails, phones, social links.

## `includeTechSignals` (type: `boolean`):

Detect public tech/marketing stack fingerprints.

## `includeBlogSignals` (type: `boolean`):

Detect blog/news/recent activity pages.

## `maxConcurrency` (type: `integer`):

Max concurrent page requests across actor. Range 1-20.

## `requestDelayMs` (type: `integer`):

Delay between batches/domain requests.

## `proxy` (type: `object`):

Apify proxy configuration.

## `debugMode` (type: `boolean`):

Verbose logging.

## Actor input object example

```json
{
  "domains": [
    "stripe.com"
  ],
  "maxPagesPerDomain": 15,
  "maxDepth": 1,
  "deepScan": true,
  "includeSitemap": true,
  "includeJobs": true,
  "includeContacts": true,
  "includeTechSignals": true,
  "includeBlogSignals": true,
  "maxConcurrency": 5,
  "requestDelayMs": 100,
  "debugMode": false
}
```

# Actor output Schema

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

All rows produced by the run (JSON, CSV, Excel via the dataset API).

# 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 = {
    "domains": [
        "stripe.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("osaki/account-intel-scraper").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 = { "domains": ["stripe.com"] }

# Run the Actor and wait for it to finish
run = client.actor("osaki/account-intel-scraper").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 '{
  "domains": [
    "stripe.com"
  ]
}' |
apify call osaki/account-intel-scraper --silent --output-dataset

```

## MCP server setup

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

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/m3xfid8vfS2fJOlzm/builds/XfmCwf3h4vj5VeCMu/openapi.json
