# Website Opportunity Auditor (`xxooxannn/website-opportunity-auditor`) Actor

Score business websites for visible growth opportunities, conversion gaps, and outreach-ready lead angles.

- **URL**: https://apify.com/xxooxannn/website-opportunity-auditor.md
- **Developed by:** [Jharan chaudhary](https://apify.com/xxooxannn) (community)
- **Categories:** SEO tools, Lead generation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$350.00 / 1,000 audited websites

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/platform/actors/running/actors-in-store#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

## Website Opportunity Auditor

Find websites that are worth a follow-up.

Website Opportunity Auditor reviews business websites and returns a practical opportunity score, issue summary, and outreach-ready angle for each site. It is built for people who already have a list of prospects and need to quickly separate weak websites from stronger ones.

### What You Get

- opportunity score for each website
- short reason why the site is worth attention
- visible contact and conversion gap summary
- outreach angle and first-message snippet
- CSV export for prospecting workflows
- manual-review flag when a site blocks automated checks

### Good Fits

- local service prospecting
- SEO and web design lead qualification
- niche market research
- pre-sales website triage
- batch review of existing lead lists

The Actor works best with business websites in markets such as HVAC, plumbing, roofing, electrical services, med spas, dentists, and similar local-service categories.

### Input

You can provide websites in either format:

- `startUrls`: URLs entered directly in the input form
- `csvText`: pasted CSV or plain domain list

At least one of `startUrls` or `csvText` is required.

Useful controls:

- `maxRequests`: limit how many websites are processed in one run
- `marketPreset`: tune findings for a local-service vertical
- `maxInternalPages`: sample a small number of same-site pages
- `proxyConfiguration`: optional Apify Proxy support for stricter websites
- `exportCsv`: write `OUTPUT.csv` to the key-value store

For batch runs, set Apify's `Maximum cost per run` high enough for the number of websites you want to process. At `$0.35` per website, a 20-site batch needs at least `$7.00`; a 100-site batch needs at least `$35.00`.

### Output

Each result includes:

- website URL
- review status
- opportunity score
- issue count
- primary issue codes
- lead type
- severity
- quick fix summary
- outreach angle
- outreach snippet
- positive signals

The run also stores:

- `OUTPUT`: run summary
- `OUTPUT.csv`: spreadsheet-friendly export when CSV export is enabled

### Pricing

This Actor uses pay-per-event pricing.

Billable event: `audit-result`

Price: `$0.35` per audited website

You are charged once for each website that returns an audit result.

If `Maximum cost per run` is lower than the submitted batch needs, the Actor stops before processing the unpaid remainder and writes a `billing-limit-reached` dataset item with `requestedWebsites`, `processedWebsites`, `maxChargeableAudits`, and `requiredMaxCostUsd`.

### Notes

Some websites use bot protection, strict firewalls, temporary blocking, DNS failures, TLS failures, or timeouts. Hard network failures are returned as structured audit results with homepage attempt details so dead sites still produce useful rows. Bot-protection cases that return an analyzable response are marked for manual review instead of being treated as normal website failures.

If a run stops early with `billing-limit-reached`, increase `Maximum cost per run` in Apify run options and run the remaining websites again.

This Actor is designed for fast opportunity qualification, not full technical SEO crawling or browser-based QA.

# Actor input Schema

## `startUrls` (type: `array`):

Website URLs or domains to audit. Provide this or CSV/domain list. Domains without protocol will be normalized to HTTPS first.

## `csvText` (type: `string`):

Pasted CSV or plain list of domains. Provide this or Start URLs. If CSV has headers, use a column like url, domain, website, or site.

## `maxRequests` (type: `integer`):

Safety limit for the number of websites audited in one run. For pay-per-event runs, also set Apify's Maximum cost per run high enough for this many websites.

## `requestTimeoutSecs` (type: `integer`):

Maximum time to wait for each HTTP request.

## `maxInternalPages` (type: `integer`):

How many same-site pages to sample from homepage links. Keep this low to reduce blocking risk.

## `marketPreset` (type: `string`):

Tune CTA detection and outreach wording for a niche. Start with local service businesses unless you have a specific vertical.

## `includeHtmlSnippet` (type: `boolean`):

Store a short HTML snippet in the output for debugging unusual detections.

## `exportCsv` (type: `boolean`):

Write a CSV export to the default key-value store in addition to dataset output.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy or custom proxy configuration. Useful for reducing blocking on some sites and improving audit completion rates on stricter hosts.

## `failFast` (type: `boolean`):

If enabled, the run stops after the first failed audit instead of recording a failed item and continuing.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://example.com"
    }
  ],
  "maxRequests": 25,
  "requestTimeoutSecs": 12,
  "maxInternalPages": 3,
  "marketPreset": "service-business",
  "includeHtmlSnippet": false,
  "exportCsv": true,
  "failFast": false
}
```

# Actor output Schema

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

No description

## `summary` (type: `string`):

No description

## `csvExport` (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 = {
    "startUrls": [
        {
            "url": "https://example.com"
        }
    ],
    "maxRequests": 25,
    "requestTimeoutSecs": 12,
    "maxInternalPages": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("xxooxannn/website-opportunity-auditor").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 = {
    "startUrls": [{ "url": "https://example.com" }],
    "maxRequests": 25,
    "requestTimeoutSecs": 12,
    "maxInternalPages": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("xxooxannn/website-opportunity-auditor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://example.com"
    }
  ],
  "maxRequests": 25,
  "requestTimeoutSecs": 12,
  "maxInternalPages": 3
}' |
apify call xxooxannn/website-opportunity-auditor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=xxooxannn/website-opportunity-auditor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VaC2kWx4bAqVbtO8w/builds/h9bsddBa0sOXmBfqO/openapi.json
