Changelog

What shipped

Every release below exists in the product today. Fixes are named rather than summarised as “improvements”, because a fix you cannot recognise is not worth publishing.
Changes that alter how a historical number was computed are also recorded on the methodology page, which is the authority for measurement.
Delivery

Notifications, webhooks and a public API

The product stopped requiring you to open it. Findings now come to you, and other systems can read them.

What's new

  • Weekly digest by email — score deltas, citation movers, accuracy flags and the top five opportunities, as HTML with a plain-text alternative. Sent Mondays when at least six days have passed since the last one.
  • Slack digest via an incoming webhook, rendered as Block Kit rather than a wall of text.
  • Four alert kinds you toggle individually: visibility dropped, accuracy regressed, audit completed, budget threshold. A visibility drop only fires when a two-proportion test calls it — a raw delta never triggers an alert.
  • Outbound webhooks for six events, signed HMAC-SHA256 over the exact request body as X-AYB-Signature. A 4xx from your endpoint is treated as permanent and never retried; 5xx and network errors get three attempts.
  • A read-only public API at /api/v1/ with its own bearer tokens (read scope only, revocable, secret shown once), 120 requests/hour per token, and a hand-written /api/v1/openapi.json.
  • "Send test" for email and Slack that performs a real send and reports the provider's own error text when it fails.
Visibility

Five more answer engines, and answers by country

The engine roster became configuration you can see and toggle, and geo-capable engines can be asked to answer as a buyer in a specific country.

What's new

  • Five optional engines wired in and off by default: DataForSEO's ChatGPT, Claude, Gemini and Perplexity surfaces, plus Google AI Overview.
  • Per-brand locales. Geo-capable engines are polled once per locale; engines with no country parameter are polled once and labelled as such, because no chat API can be told "answer as a German user".
  • An engine health view: every engine with its kind, whether it is geo-capable, its status, its last error and its cost basis.
  • A per-locale breakdown of mention rate with the k/n counts and Wilson interval behind each row.

Fixed

  • A model name is now validated against the provider's own model list before any request is dispatched. DataForSEO bills tasks that fail model validation, so an unlisted model used to cost money and return nothing.
  • The free public scan is explicitly excluded from the paid engines, so anonymous traffic can never spend the SEO budget.
  • An unverified provider account now returns a specific, actionable message instead of a generic failure — and records a $0.00 ledger row, because nothing was charged.
Agents

Agent skills and an MCP server

Everything the dashboard knows became readable by a coding agent, with the judgement calls shipped alongside the data.

What's new

  • An MCP endpoint at /api/mcp/ exposing 21 read-only tools — 11 AuditYourBrand tools and 10 proxied classic-SEO tools — over stateless streamable-HTTP JSON-RPC.
  • Five agent skills installable with npx skills add: brand audit, AI visibility, search vs AI, fix the gaps, weekly review.
  • A public discovery endpoint, /api/mcp/info/, listing tool names, costs and descriptions with no brand data, so you can confirm the server is up before wiring credentials.
  • Every tool states its cost honestly, and the credit-charging ones are named as such before you call them.

Fixed

  • The SEO project id is injected server-side and is not a tool argument, so a model cannot point a proxied call at another organisation's project.
  • Tool descriptions carry no instructions to the calling model — the opinions live in the skills, where you can read and edit them.
Accuracy

Brand Memory and FactCheck

A living record of what is true about your brand, and a check that fires when an engine contradicts it.

What's new

  • Brand Memory: your site and audit evidence split into reviewable fact chunks with section breadcrumbs, review states and a risk level. The chunker splits your text — it never rewrites a fact through a model.
  • A changelog of every fact added, updated, superseded or contradicted, so you can see when the record of your own brand changed.
  • Grounded generation: poster copy and outreach drafts cite the memory chunks they used, returned as an evidence map next to the draft.
  • FactCheck: each claim gets a stable key, so a dismissed claim that reappears is marked regressed rather than filed as new.
  • A per-claim timeline showing when a wrong claim first appeared, when it was dismissed, and when it came back.

Fixed

  • Duplicate accuracy flags for the same underlying claim are deduplicated on the claim key instead of piling up on every poll.
  • High-risk chunks that have never been reviewed are excluded from retrieval, so an unverified fact cannot be quoted back into generated copy.
GEO

AI-crawler analytics, GEO readiness and the free scan

Whether the answer engines can actually reach you — measured from your own logs and from your public files.

What's new

  • AI-crawler analytics: pipe your access logs in and see which AI and search crawlers hit which pages, with a trend, a bot breakdown and top paths. Non-bot lines are discarded on ingest.
  • A best-effort join between the pages AI crawlers fetched and the pages that later showed up as citations in answers.
  • GEO readiness: seven scored dimensions — per-bot robots.txt access, llms.txt, sitemap, structured data, metadata, content structure and extractability — each with the evidence behind the score, rolled into a letter grade.
  • A free public scan at /scan: three generic prompts across the live engines plus the full GEO check, with a shareable result link and an emailed report.

Fixed

  • llms.txt detection now recognises a single-page app serving its HTML shell at /llms.txt. That used to score as a valid file.
  • Crawler classification happens at write time, so a rename of a bot pattern cannot silently rewrite history.
SEO

SEO integration and Search vs AI

Classic search data joined to AI-answer data, which is the join neither an SEO tool nor a visibility tool can do alone.

What's new

  • Keywords, rank tracking, backlink summaries and a 27-check site crawl, synced into the dashboard with their own sync runs.
  • Search vs AI: the gap list. Topics where you rank on Google and are invisible in AI answers come first, because that is the money row.
  • A budget contract for paid SEO data — every call estimates its ceiling, checks the cap before spending, and records the provider-reported cost after.
  • Site-audit issues that can be routed into the same opportunity flow as everything else.
Visibility

AI Visibility Monitor, with confidence intervals

The core of the product: repeated sampling of answer engines, published with error bars and a significance gate.

What's new

  • Daily polls — up to 12 tracked prompts against every configured engine, five answers each, rolled into one snapshot per engine per day that stores the raw k/n counts, not just the rate.
  • A Wilson 95% interval on every rate, drawn as a band on the trend chart. "3 out of 5" is never rendered as a flat 60%.
  • Delta chips gated by a two-proportion test: a change that does not clear the test renders as no significant change, with no direction implied.
  • A composite 0–100 score from four equally weighted components — visibility, position, sentiment and recommendation — published with its components and its formula.
  • Citations canonicalised and classified into 11 categories, share of voice against tracked competitors, prompt difficulty from 14-day answer-set stability, and adaptive stopping for prompts pinned at 0% or 100%.
  • Accuracy flags for wrong claims, an append-only action ledger, and an approvals queue.
  • A public /methodology page carrying the full arithmetic, including the limitations we cannot engineer away.

Fixed

  • A provider that errors now records an error answer that still counts in the denominator, and an engine that fails twice in a row sits out the rest of the poll. A poll no longer stops because one provider is down.
  • Re-running a poll on the same day updates that day's row instead of appending a second one, so the trend line stays one point per day.
Dashboard

The command center, and a long list of dead controls

Every page walked end to end, every control traced to its endpoint, and everything that turned out to be broken listed here rather than quietly patched.

What's new

  • A rebuilt /dashboard: a daily brief with live counts, brand scorecards with score dials that deep-link to the weakest category, an opportunity feed with working routing, and a snapshot band.
  • Re-audit cadences with a background scheduler that picks up due brands and stale visibility polls on its own.

Fixed

  • "Plan campaign" on an opportunity returned 405 — the endpoint did not accept the method it was being called with. It works.
  • Saving a deal sent null fields and was rejected with a 400.
  • Filtering contacts by country or search returned a 500 from a missing import.
  • Searching deals did not match a contact's full name.
  • Social analytics ignored the day range you selected, and follower labels were not platform-prefixed.
  • Opening a dismissed influencer returned a 404.
  • Poster copy failed unless a campaign object was passed in a shape it rarely had.
  • Placeholder email domains such as example.com were accepted as real contact emails.
  • Default brand-theme colours were still the previous product's palette.

Want the next one in your inbox?

The weekly digest carries what changed in your numbers. Release notes land here first.