Skip to content

Engines ​

An engine is one AI provider aeoscope queries. Each run stores one answer per (prompt, engine) pair, so you can compare engines side by side.

EngineSetupWeb accessCitationsNotes
Mocknonenosimulatedcanned answer for trying aeoscope out
OpenAI (ChatGPT)OPENAI_API_KEYnofrom answer textgeneral assistant answers
PerplexityPERPLEXITY_API_KEYyesstructured + from textclosest to AI search; recommended core signal
GeminiGEMINI_API_KEYoptional (GEMINI_SEARCH=true)with groundingGoogle Search grounding returns live sources as citations
Anthropic (Claude)ANTHROPIC_API_KEYnofrom answer text
Ollamarunning Ollama, no keynofrom answer textlocal, zero cost
CustomCUSTOM_BASE_URLdependsfrom answer textany OpenAI-compatible server (LM Studio, llama.cpp, vLLM, ...)

How detection works ​

For every stored answer aeoscope detects:

  • Mention - does the answer contain your brand name or any alias? (case-insensitive, word-bounded, plural-tolerant)
  • Position - where the first mention occurs, as a percentage into the answer
  • Citations - every URL in the answer, plus structured citations the engine reports (Perplexity)
  • Own domain cited - whether any citation is on your domain or a subdomain
  • Competitor mentions - which of your competitors appear in the same answer

WARNING

Hosted chat models answer from training data, not live search (Perplexity excepted). Treat non-Perplexity hosted engines as "brand awareness in the model" rather than live search visibility. Local models are one step further removed.

Adding a new engine ​

Engines are small TypeScript adapters in src/lib/engines/. Implement the EngineAdapter interface (an id, a label, isConfigured(), and a run(prompt) that returns text plus optional citations), register it in src/lib/engines/index.ts, and add the engine id to the EngineId union in types.ts. PRs welcome.