AEO Tracker

Track how often your brand surfaces in answers from Perplexity, Gemini, ChatGPT, and Claude with mention rate, position, sentiment, and competitor data.

Track how often your brand surfaces in answers from Perplexity, Gemini, ChatGPT, and Claude with mention rate, position, sentiment, and competitor data. AI search now drives 30% of brand discovery and nobody is measuring it. AEO tracking is the new SEO console, first mover advantage is real.

This is the whole blueprint, nothing held back: the model, the tools, the exact prompt, the source on disk, and the setup. Everything you need to run AEO Tracker yourself is on this page, and it deploys in an afternoon.

See it running

Agents like AEO Tracker run behind a metrics and analytics dashboard. Here is that pattern, live: every action stays visible and reviewable. Click into it.

crescendo.51ultron.com/kits/observability

What it does

AEO Tracker handles the work end to end:

  • Query 6 AI search engines through a single Cloudflare AI Gateway endpoint
  • Detect brand mentions, position, sentiment, and competitor co-occurrence
  • Build per-query and aggregate visibility reports with citations
  • Alert when a competitor overtakes the brand on a tracked query

The anatomy

An agent is a composition, not a prompt: a model, the tools it is allowed to call, the integrations that give those tools reach, and the rules that keep it honest. Here is AEO Tracker on one card.

AEO Trackerblueprint
Model
claude-sonnet-4-6
Tools
query_ai_enginedetect_mentionbuild_reportsend_alert
Integrations
Cloudflare AI GatewayZod
Guardrails
always run queries through cloudflare ai gateway, never the provider directly.; cache by (provider, query) for 24h to control cost

The instructions

Every run is governed by this prompt. It is short on purpose: enough to make AEO Tracker reliable, not so much that it can misread itself. Copy it as a starting point for any agent you build.

AEO Tracker
You are an Answer Engine Optimization (AEO) analyst. You measure brand visibility across AI search engines and tell the user how to improve it. WORKFLOW: 1. Call query_ai_engine for each (provider, query) pair the user wants tracked. 2. For each raw response, call detect_mention to extract mention rate, position, sentiment, competitors mentioned, and citations. 3. Aggregate results with build_report into a structured visibility scorecard. 4. If a competitor overtakes the user's brand on a tracked query, call send_alert. RULES: - Always run queries through Cloudflare AI Gateway, never the provider directly. - Cache by (provider, query) for 24h to control cost. - Report mention rate as a percentage rounded to one decimal. - When sentiment is mixed, classify as "neutral" rather than guessing. - Never claim a brand is "winning" without comparing against at least 3 competitors.

The source, on disk

Three files carry the whole agent: the definition with its tools, the environment it expects, and the setup. Walk them.

aeo-tracker/aeo-tracker.ts1.8 KB
1import { agent, tool } from "@agent-sdk"
2import { z } from "zod"
3
4const queryEngineInput = z.object({
5 provider: z.enum(["perplexity", "gemini", "deepseek", "openai", "anthropic", "grok"]),
6 query: z.string().min(5).max(300),
7})
8
9const detectMentionInput = z.object({
10 raw: z.string(),
11 brand: z.string(),
12 competitors: z.array(z.string()).default([]),
13})
14
15export default agent({
16 model: "claude-sonnet-4-6",
17 permissionMode: "bypassPermissions",
18 maxTurns: 30,
19 systemPrompt: `...`, // see System Prompt section above
20 tools: {
21 query_ai_engine: tool({
22 description: "Run a query against an AI search engine via CF AI Gateway",
23 inputSchema: queryEngineInput,
24 execute: async ({ provider, query }) => {
25 const url = `https://gateway.ai.cloudflare.com/v1/${process.env.CF_ACCOUNT_ID}/${process.env.CF_GATEWAY_ID}/${provider}/chat/completions`
26 // POST { model, messages: [{ role: "user", content: query }] }
27 },
28 }),
29 detect_mention: tool({
30 description: "Extract brand mention metadata from a raw model response",
31 inputSchema: detectMentionInput,
32 execute: async ({ raw, brand, competitors }) => {
33 // returns { mentioned, position, sentiment, competitorsMentioned, citations }
34 },
35 }),
36 build_report: tool({
37 description: "Aggregate detections into a visibility scorecard",
38 inputSchema: z.object({ runs: z.array(z.any()) }),
39 execute: async ({ runs }) => {
40 // returns { mentionRate, avgPosition, sentimentBreakdown, competitorMatrix }
41 },
42 }),
43 send_alert: tool({
44 description: "Send alert when a competitor overtakes the brand",
45 inputSchema: z.object({ text: z.string() }),
46 execute: async ({ text }) => {
47 // POST to ALERT_WEBHOOK_URL
48 },
49 }),
50 },
51})

The business case

If you run an agency, AEO Tracker is also a product. It sells into b2b saas, agencies, content brands, and the numbers work at very small scale.

$3,500

setup you can charge

$500/mo

monthly retainer

30%

less manual work

Ship it

The whole install is a handful of commands and the keys from the env file. Run the list, then point AEO Tracker at real work.

Deploy checklist

0 of 5

That is the entire blueprint: one model, 4 tools, and a prompt. Built by hand it costs you an afternoon. Inside Ultron it costs you a sentence, because you can build this exact agent in the workforce and watch it run before you commit to anything.

Build AEO Tracker in Ultron

1
Describe what you want

Start from this blueprint or your own words. Ultron reads the intent and picks the tools.

2
It builds the agent

The model, the tools, the prompt, the console. Assembled in front of you, nothing to wire.

3
Watch it run

Test it live in the chat, then put it to work. You review what it does, it does the rest.

Keep reading