Docs

Getting started

AuditYourBrand answers one question: when a buyer asks an AI assistant about your category, does your brand come up — and if not, what specifically do you change? This page covers what we measure, how the measurement works, and how to reach all of it from an agent or a script.
For the full arithmetic — sample sizes, Wilson intervals, the significance rule and the limitations — read the methodology page.

01

What AuditYourBrand measures

Seven signals, all of them counts over things that actually happened. No estimated volumes, no model scoring another model on a 1–10 scale, no number without the evidence it came from.

AI visibility

How often answer engines name you when a buyer asks their question — with the sample size and confidence interval behind every rate.

Recommendation strength

Whether an engine actually recommends you or merely mentions you. Top pick, strong alternative, conditional, mentioned only, discouraged, not mentioned.

Share of voice

The same arithmetic applied to your tracked competitors over the identical answer set, so the comparison is like-for-like.

Citations

Every source link an engine attached, canonicalised, grouped by domain and classified into 11 categories, with weekly movers.

Accuracy

Claims an engine made about you that contradict your own facts, deduplicated per claim and marked regressed if a dismissed one returns.

GEO readiness

Seven scored dimensions of whether the engines can reach and parse you at all: per-bot robots.txt access, llms.txt, sitemap, structured data, metadata, content structure, extractability.

Classic search

Keywords, ranks, backlinks and a site crawl — joined against the AI data so you can see where you rank on Google and are still invisible in AI answers.

02

How the audit works

An audit is the starting point: one domain in, an evidence-backed picture out. It takes a few minutes and you watch it run.

  1. 1

    You enter a domain

    Nothing else. No tag to install, no analytics connection, no access to anything behind your login.

  2. 2

    We crawl the public site

    Roughly eight pages, unauthenticated — the same view an anonymous visitor and an AI crawler get.

  3. 3

    We build a Brand Genome

    What you sell, to whom, how you position, what you claim — each field backed by an evidence quote from a page we actually fetched. Anything the site does not say stays marked unknown rather than being guessed.

  4. 4

    We score six categories

    Including AI visibility, which is polled live against the answer engines rather than inferred from your content.

  5. 5

    We rank opportunities

    Each with its evidence, its impact and its confidence — and a route into a campaign, a design or an outreach sequence when you approve it.

Want to see it before you sign up? The free scan runs the same engines and the same GEO check on a smaller sample — three generic prompts, one answer each — and says so on the result.

03

How AI-visibility sampling works

Ask an answer engine the same question twice and you can get two different brand lists. That single fact determines the whole design: we sample repeatedly and publish intervals instead of a point.

answers per poll = prompts (≤12) × engines × runs per prompt (5)

rate            = k mentions / n answers
interval        = Wilson 95% around that rate
delta vs 7d ago = shown only if a two-proportion test clears it
One poll. Snapshots roll up to one row per engine per day, storing k and n — not just the rate.

Track the prompts your buyers actually type

unbranded first
Prompts that do not name you are the ones that matter: they measure whether an engine reaches for you unprompted. We suggest a starting set from your genome, roughly three-quarters unbranded, and you edit it.

Read the band, not the point

A rate from five answers has an interval roughly ±35 points wide. Early in tracking, and for any single engine on a single day, the band is the honest reading.

Polls run daily and degrade gracefully

A scheduler picks up any brand whose newest snapshot is over a day old; you can also poll on demand. A provider that errors records an error answer that still counts in the denominator, and an engine that fails twice sits out the rest of that poll.

Every formula, plus the seven limitations we cannot engineer away, is on /methodology.

04

Connect an agent over MCP

AuditYourBrand ships an MCP server: a stateless streamable-HTTP JSON-RPC endpoint exposing 21 read-only tools — 11 native tools plus 10 proxied classic-SEO tools. Auth is the same bearer token the dashboard uses.

curl -s -X POST "$AYB_API/login/" \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"…"}'

# → {"token":"…","username":"admin"}
Step 1 — mint a token. The gate is open when no portal password is set on a local install.
{
  "mcpServers": {
    "audityourbrand": {
      "type": "http",
      "url": "https://your-install.example.com/api/mcp/",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}
Step 2 — point your MCP client at the endpoint. $AYB_API is your install's API base; locally that is http://localhost:8010/api.

Confirm the server before wiring credentials

GET /api/mcp/info/ is public and returns tool names, costs and descriptions with no brand data attached.

Free tools vs credit-charging tools

cost stated per tool
Every native tool is free. The SEO proxies that hit a paid provider are marked cost: credits in their own description, and one of them — the site audit — queues a crawl and is explicitly not read-only.

What no agent can do

by design
Starting an audit, editing the genome, routing an opportunity, approving anything, publishing anything. Those are human actions in the app. An agent that implies it shipped your content is worse than one that does nothing.

The SEO project is injected server-side

No proxied tool accepts a project id, so a model cannot point a call at another organisation's project.

05

Install the agent skills

MCP is the data; skills are the workflow. A tool description can say what a tool returns — it cannot say which tool to reach for, in what order, or when a number means nothing at all. Five skills carry that judgement, as plain markdown you can read, edit and audit.

npx skills add https://github.com/<org>/AuditYourBrand
Run from the project where you want the skills available. Copies .agents/skills/* into it.

ayb-brand-audit

skill
What did the audit find, and what should we fix first?

ayb-ai-visibility

skill
How visible are we in AI answers, and how sure are we?

ayb-search-vs-ai

skill
Why is ChatGPT skipping us when we rank #3? The signature workflow.

ayb-fix-gaps

skill
Turn opportunities and accuracy flags into one sequenced plan.

ayb-weekly-review

skill
What actually changed this week, with significance framing.

Every skill enforces two rules. Anti-fabrication: if AuditYourBrand does not return a value, the agent writes unknown — and no bare percentage, ever, without its sample size and interval. Anti-spend: name the tool, the reason and the rough cost, then wait for a yes before any credit-consuming call.

A typical chain is ayb-brand-audit ayb-search-vs-ai ayb-fix-gaps, with the weekly review on a cadence.

06

API quickstart

The public API is read-only and lives at /api/v1/. It uses its own bearer tokens — deliberately not your dashboard session — with a read scope and a throttle of 120 requests per hour per token.

curl -s -X POST "$AYB_API/tokens/" \
  -H "Authorization: Bearer <dashboard-token>" \
  -H 'Content-Type: application/json' \
  -d '{"name":"reporting-script"}'

# → {"id":1,"name":"reporting-script","token":"ayb_…","preview":"ayb_…abcd", …}
Step 1 — mint an API token with your dashboard session. The secret is returned exactly once.
curl -s "$AYB_API/v1/visibility/summary/?brand=1" \
  -H "Authorization: Bearer ayb_…"
Step 2 — call it. Every rate comes back with its k/n counts and its Wilson interval.
EndpointReturns
GET /api/v1/brands/Every brand in the workspace.
GET /api/v1/brands/{id}/report/The full audit report — genome, score, opportunities.
GET /api/v1/visibility/summary/?brand=Latest snapshot per engine, with k/n and Wilson intervals.
GET /api/v1/visibility/snapshots/?brand=&days=The daily series behind the trend chart.
GET /api/v1/opportunities/?brand=&status=Ranked opportunities.
GET /api/v1/digest/?brand=The same payload the weekly digest is rendered from.
GET /api/v1/geo-readiness/?domain=The seven-dimension GEO check.
GET /api/v1/openapi.jsonThe schema for all of the above. No token required.

Schema

no token needed
/api/v1/openapi.json is the machine-readable contract for every endpoint above — generate a client from it rather than hand-rolling one.

Revoking

Revocation is immediate; a revoked token answers 401 with API token revoked. The row is kept so the audit trail survives.

Push instead of poll

If you want to react to events rather than poll for them, subscribe a webhook. Deliveries are signed HMAC-SHA256 over the exact body — see how to verify.

Start with your own domain

The free scan needs nothing but a domain, and it tells you its own sample size.