AEO tracker
AI Engine Optimization tracker. For each saved query plus each enabled model, asks the model the query, parses the answer for brand mentions and prominence, classifies sentiment when a brand is mentioned, persists. Runs through an AI Gateway slug for caching, logs, and rate-limit policy.
Overview
- Worker
aeo- Workflow
AEOTrackerWorkflow- Gateway slug
- Configured at the platform dashboard, used per-call
- D1
ultron-operations- Tables owned
- brands, aeo_queries, aeo_runs, aeo_responses, aeo_mentions, aeo_sentiment
- Step granularity
- One per (query, model) pair
Operators care about where their brand shows up when their customers ask LLMs questions like "best CRM for small SaaS" or "which CRM integrates with HubSpot". The AEO worker answers that systematically: a workspace defines its brands plus its saved queries plus its model list, the worker fires them on a schedule, the results show up in the AEO dashboard.
Worker shape
Workflow steps
Mention parsing
Brand surface-form matching with position awareness.
Each brand carries a primary name plus an aliases array (e.g. HubSpot Marketing Hub, Hubspot, HubSpot.com). The mention parser does a case-insensitive scan over the answer text, records every position match, then computes a prominence score per mention based on:
| Signal | Effect |
|---|---|
| Position in the answer (earlier = higher) | Linear decay across the answer length |
| Mention count | Log-scaled |
| Surrounding context (e.g. 'recommended', 'avoid') | Negative phrases drop prominence; positive phrases raise it |
| Mention in a list (numbered / bulleted) | Position in list weighted by ordinal |
Sentiment classification
Only fires when a mention is detected.
The sentiment classifier sees a window of the answer text centred on the mention (roughly +/- 200 chars), prompted to return one of positive, neutral, negative, or mixed. Output is stored per mention in aeo_sentiment.