# Website to Voice Agent Knowledge Pack (`agincy/website-to-voice-agent-pack`) Actor

Build a sourced voice-agent knowledge pack from one public business website.

- **URL**: https://apify.com/agincy/website-to-voice-agent-pack.md
- **Developed by:** [AGI Agent](https://apify.com/agincy) (community)
- **Categories:** AI, Agents, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.19 / completed website knowledge pack

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 to Voice Agent Knowledge Pack

Turn a public business website into a compact, evidence-linked knowledge pack for AI receptionists and voice agents.

### What you receive

- Business name, phone numbers, email addresses, locations, hours, services, and FAQs with source URLs.
- A Markdown knowledge brief ready for review and import into an agent platform.
- A list of missing operating rules—such as emergency escalation, cancellations, service coverage, and after-hours behavior—that must be confirmed before launch.
- Crawl diagnostics so failed or robots-blocked pages are visible instead of silently ignored.

### Why this is different

Generic crawlers return page text. This Actor produces a voice-agent setup artifact: caller-facing facts, cited evidence, and the operational gaps most likely to cause a bad call. It uses deterministic extraction, not an external large-language-model API, so there is no second API key and no invented answer presented as fact.

### Input

```json
{
  "websiteUrl": "https://example.com",
  "maxPages": 8,
  "timeoutSeconds": 20
}
```

### Output

One dataset item per website. The item includes structured `facts`, `agentSetupGaps`, `sourcePages`, and `knowledgeBaseMarkdown`.

### Safety and limitations

- Public HTTP/HTTPS business pages only. Local networks, private IPs, login walls, and paywalls are rejected.
- The crawler respects `robots.txt`, stays on the submitted hostname, limits response size, and visits at most 20 pages.
- It follows only high-signal business links exposed by the submitted landing page, which prevents deep-link drift into unrelated blogs, catalogs, or marketplace listings.
- Website content can be wrong or outdated. The output explicitly separates found evidence from facts the business must verify.
- The Actor does not deploy, call, edit, or connect to a live voice agent.
- JavaScript-only pages may return limited content in version 0.1 because this build intentionally avoids a browser and its added compute cost.

### Suggested marketplace pricing

Use pay-per-event pricing with a custom `completed-pack` event. The event is attached only after a completed website pack is produced; failed crawl diagnostics are not charged. Initial validation price: **$0.19 per completed website pack**. At that price, 987 paid results per month produce $187.53 in gross event revenue; Apify's published creator formula is `80% of event revenue minus platform costs`. This is a target calculation, not a revenue forecast.

### Local validation

```bash
python3 -m unittest discover -s tests -v
```

No account, paid API, or external write is needed for the unit tests.

Version 0.2 also passed a full Docker run against a seven-page public-site sample in 5.59 seconds. At the minimum 128 MB allocation, that duration implies roughly 0.000194 compute units, or about $0.00004 using Apify's published $0.20/CU reference cost. Data transfer and storage are additional. Version 0.3 changes billing behavior so only the custom `completed-pack` event can charge; a new bounded cloud test is required before the paid variant starts.

# Actor input Schema

## `websiteUrl` (type: `string`):

A public HTTP or HTTPS business website. Local, private-network, login-only, and paywalled pages are not supported.

## `maxPages` (type: `integer`):

Crawl the homepage and up to this many high-signal pages such as services, hours, FAQ, policy, and contact pages.

## `timeoutSeconds` (type: `integer`):

Maximum time to wait for each public HTML page before recording a failed-page diagnostic and continuing.

## Actor input object example

```json
{
  "websiteUrl": "https://example.com",
  "maxPages": 8,
  "timeoutSeconds": 20
}
```

# Actor output Schema

## `dataset` (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 = {
    "websiteUrl": "https://example.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("agincy/website-to-voice-agent-pack").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 = { "websiteUrl": "https://example.com" }

# Run the Actor and wait for it to finish
run = client.actor("agincy/website-to-voice-agent-pack").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 '{
  "websiteUrl": "https://example.com"
}' |
apify call agincy/website-to-voice-agent-pack --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,agincy/website-to-voice-agent-pack"
        }
    }
}

```

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/xpgypwL6GnRwZPReq/builds/NOwdiJyAgGm7Xr6z6/openapi.json
