# AI Crawler Readiness Audit & llms.txt Draft (`hirepulse/ai-search-brand-visibility-radar`) Actor

Audits public robots.txt rules for eight crawler tokens, HTTP headers, llms.txt and JSON-LD. Produces evidence-based drafts and local readiness heuristics. Does not measure citations in AI answers or guarantee rankings.

- **URL**: https://apify.com/hirepulse/ai-search-brand-visibility-radar.md
- **Developed by:** [HirePulse](https://apify.com/hirepulse) (community)
- **Categories:** SEO tools, AI, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00 / 1,000 readiness reports

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

## AI Crawler Readiness Audit & llms.txt Draft

Inspect a public website before preparing it for AI crawlers. One domain produces one structured readiness report, an action list and an optional llms.txt draft built from observed site information.

### What you get

- robots.txt directives for eight named crawler tokens: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended and CCBot.
- Homepage response headers, llms.txt and llms-full.txt observations, JSON-LD schema types and discovered identity links.
- Local readiness scores, supporting HTTP evidence and prioritized changes to review.
- An optional llms.txt draft. Review it before publishing; the Actor never changes your website.

This is a crawler-readiness audit. It does not query paid AI models, measure citations in ChatGPT/Claude/Perplexity answers, prove accessibility from real crawler IPs, or guarantee search rankings. Autocomplete suggestions can be irrelevant to ambiguous brand names and are not AI citations. Grades are local heuristics, not certification.

### Start with one site

```json
{"domain":"linear.app","competitor_domains":[],"category_keywords":[],"generate_ready_llms_txt":true}
```

Optional competitors are limited to three and category phrases to ten. Start without them for a focused audit. The default example has been tested on Apify; the saved sample is an owner test, not a customer endorsement.

### Output and files

The default dataset contains one report for the primary domain when its homepage returns HTTP 200. Read `http_evidence`, `limitations`, `score_type` and `ai_answer_citations_verified` before interpreting scores. `OUTPUT` contains the structured report; `EXECUTIVE_SUMMARY` contains the summary and `RECOMMENDED_LLMS_TXT` the optional draft.

If the homepage is blocked or unavailable, diagnostics are saved in `OUTPUT` with `audit_status=homepage_unavailable`, and no dataset result event is emitted. A run can finish successfully with diagnostic output and an empty dataset. Other individual checks may remain unknown even when the homepage is available.

### Pilot pricing

$0.02 per returned primary-domain report, charged once via Apify's default-dataset-item event. No Actor start fee and no additional custom charge. Optional comparisons are included in the same report. See the live Pricing tab and your spending cap before running; Apify's post-run storage access rules still apply. No paid external API is used.

### Evidence and support

The October 22 owner smoke returned HTTP 200 for Linear's homepage and robots.txt. Automated tests cover parsing, public-network protections and delivery billing guards. This pilot is maintained by HirePulse. Report issues or request help at edtool79@gmail.com. Do not send credentials in the domain field.

# Actor input Schema

## `domain` (type: `string`):

Public website domain to inspect for crawler-readiness evidence; not a measurement of AI-answer citations.

## `competitor_domains` (type: `array`):

Competitor domains to run head-to-head GEO benchmarking against (e.g. 'asana.com', 'monday.com').

## `category_keywords` (type: `array`):

Optional category phrases for autocomplete suggestions. Suggestions can be ambiguous; they are not AI-answer citations.

## `generate_ready_llms_txt` (type: `boolean`):

Generate a draft using observed facts only; review before publishing. No merchant policies, pricing or certifications are inferred.

## Actor input object example

```json
{
  "domain": "linear.app",
  "competitor_domains": [
    "asana.com",
    "monday.com"
  ],
  "category_keywords": [
    "issue tracking software",
    "project management tool"
  ],
  "generate_ready_llms_txt": true
}
```

# Actor output Schema

## `reports` (type: `string`):

No description

## `diagnostic` (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 = {
    "domain": "linear.app",
    "competitor_domains": [],
    "category_keywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("hirepulse/ai-search-brand-visibility-radar").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 = {
    "domain": "linear.app",
    "competitor_domains": [],
    "category_keywords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("hirepulse/ai-search-brand-visibility-radar").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 '{
  "domain": "linear.app",
  "competitor_domains": [],
  "category_keywords": []
}' |
apify call hirepulse/ai-search-brand-visibility-radar --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hirepulse/ai-search-brand-visibility-radar"
        }
    }
}
```

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/VtIBQgeyM1hnoseIO/builds/0Efy1TG6U4tFSgPzf/openapi.json
