AEO Analytics Free

Track AI visibility — measure whether a brand is mentioned and cited by AI assistants (Gemini, ChatGPT, Perplexity) for target prompts. Runs scans, tracks me...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 707 · 2 current installs · 2 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The SKILL.md explicitly names a Gemini API key (GEMINI_API_KEY) as the primary method and describes grounding via Google Search, which is coherent with the skill's purpose. However the registry metadata declares no required environment variables or primary credential and no config paths. The skill also writes per-domain JSON files (aeo-analytics/<domain>.json) yet no storage/config path was declared in metadata. These inconsistencies mean the declared capabilities do not match the metadata advertised to the platform.
!
Instruction Scope
Runtime instructions tell the agent to: call the Gemini API with grounding, use web_search and optional web_fetch, search response text for brand names, and create/append a local JSON data file per domain. The scope is otherwise focused on scanning and reporting and does not ask to read arbitrary host files, but it does instruct persistence of scan history and suggests storing an API key in environment variables or the agent keychain. The SKILL.md's instructions therefore require access to external network services and local file write; those actions are reasonable for analytics but the metadata did not declare them.
Install Mechanism
Instruction-only skill with no install spec or code files. This minimizes installation risk because nothing is downloaded or executed on install.
!
Credentials
SKILL.md requires GEMINI_API_KEY (and suggests storing it in env or keychain), yet the registry lists no required env/primary credential. Requesting an API key is proportionate to the described Gemini-grounding functionality, but the platform metadata should declare this. Additionally, local storage of scan history (which may include excerpts of AI responses and cited URLs) implies persistent sensitive data — the skill asks for no deliberate data-scope limits in metadata.
Persistence & Privilege
always:false (normal) and the skill does not request elevated platform privileges. It will persist scan history to disk (aeo-analytics/<domain>.json) and suggests storing API keys in the agent keychain or env. Persisting user data and API keys locally is expected for this use case, but users should be aware that scan results and possibly API keys will be stored unless they change defaults.
What to consider before installing
Before installing, verify the skill's source and update metadata: confirm the publisher and check the GitHub repo referenced in SKILL.md. Expect that the skill will (a) call external services (Gemini + web searches), (b) persist scan history to a local JSON file (aeo-analytics/<domain>.json), and (c) needs a GEMINI_API_KEY stored in env or the agent keychain. Ask the publisher to update registry metadata to declare GEMINI_API_KEY and the config/storage path. If you proceed, limit exposure by: using a scoped or revocable API key, choosing a safe data-file location, reviewing any stored scan contents for sensitive info, and testing on non-production data first. If you cannot verify the source or metadata, do not install.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk974kvsjr7s53tppp7pcpjtrt9816njq

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

AEO Analytics (Free)

Source: github.com/psyduckler/aeo-skills Part of: AEO Skills SuitePrompt ResearchContent → Analytics

Track whether AI assistants mention and cite your brand — and how that changes over time.

Requirements

  • Primary: Gemini API key (free from aistudio.google.com) — enables grounding with source data
  • Fallback: web_search only — weaker signal but zero API keys needed
  • web_fetch — optional, for deeper analysis of cited pages

Input

  • Domain (required) — the brand's website (e.g., tabiji.ai)
  • Brand names (required) — names to search for in responses (e.g., ["tabiji", "tabiji.ai"])
  • Prompts (required for first scan) — list of target prompts to track. Can come from aeo-prompt-research-free output.
  • Data file path (optional) — where to store scan history. Default: aeo-analytics/<domain>.json

Commands

The skill supports three commands:

scan — Run a new visibility scan

Execute all tracked prompts against the AI model and record results.

report — Generate a visibility report

Analyze accumulated scan data and produce a formatted report.

add-prompts / remove-prompts — Manage tracked prompts

Add or remove prompts from the tracking list.


Scan Workflow

Step 1: Load or Initialize Data

Check if a data file exists for this domain. If yes, load it. If no, create a new one. See references/data-schema.md for the full JSON schema.

Step 2: Run Prompts

For each tracked prompt:

Method A — Gemini API with grounding (preferred): See references/gemini-grounding.md for API details.

  1. Send prompt to Gemini API with googleSearch tool enabled

  2. From the response, extract:

    • Response text — the AI's answer
    • Grounding chunks — the web sources cited (URLs + titles)
    • Web search queries — what the AI searched for
  3. Analyze the response:

    • Mentioned? — Search response text for brand names (case-insensitive, word-boundary match)
    • Mention excerpt — Extract the sentence(s) containing the brand name
    • Cited? — Check if brand's domain appears in any grounding chunk URI
    • Cited URLs — List the specific brand URLs cited
    • Sentiment — Classify the mention context as positive/neutral/negative
    • Competitors — Extract other brand names and domains from response + citations

Method B — Web search fallback (if no Gemini API key):

  1. web_search the exact prompt text
  2. Check if brand's domain appears in search results
  3. Record as "web-proxy" method (less direct than grounding)

Step 3: Save Results

Append the scan results to the data file. Never overwrite previous scans — history is the whole point.

Step 4: Quick Summary

After scanning, output a brief summary:

  • Prompts scanned
  • Current mention rate and citation rate
  • Change vs. last scan (if applicable)
  • Any notable changes (new mentions, lost citations)

Report Workflow

Per-Prompt Detail

For each tracked prompt, show:

1. "[prompt text]"
   Scans: [total] (since [first scan date])
   Mentioned: [count]/[total] ([%]) — [trend arrow] [trend description]
   Cited: [count]/[total] ([%])
   Latest: [✅/❌ Mentioned] + [✅/❌ Cited]
   Sentiment: [positive/neutral/negative]
   Competitors mentioned: [list]

If mentioned in latest scan, include the mention excerpt. If not mentioned, note which sources were cited instead and rate the opportunity (HIGH/MEDIUM/LOW).

Summary Section

VISIBILITY SCORE
  Brand mentioned: [X]/[total] prompts ([%]) in latest scan
  Brand cited: [X]/[total] prompts ([%]) in latest scan

TRENDS (last [N] days, [N] scans)
  Mention rate: [%] → [trend]
  Citation rate: [%] → [trend]
  Most improved: [prompt] ([old rate] → [new rate])
  Most volatile: [prompt] (mentioned [X]/[N] scans)
  Consistently absent: [list of prompts never mentioned]

COMPETITOR SHARE OF VOICE
  [Competitor 1] — mentioned in [X]/[total] prompts
  [Competitor 2] — mentioned in [X]/[total] prompts
  [Brand] — mentioned in [X]/[total] prompts

NEXT ACTIONS
  → [Prioritized recommendations based on gaps and trends]

Recommendations Logic

  • High opportunity: Prompt has 0% mention rate + no strong owner in citations → create content
  • Close to winning: Prompt has mentions but no citations → refresh content for citation-worthiness
  • Volatile: Mention rate between 20-60% → content exists but needs strengthening
  • Won: Mention rate >80% + citation rate >50% → maintain, monitor for decay

Data Management

  • Data file location: aeo-analytics/<domain>.json
  • Schema: see references/data-schema.md
  • Each scan appends to the scans array — never delete history
  • Prompts can be added/removed without affecting historical data
  • When adding new prompts, they start with 0 scans (no backfill)

Tips

  • Run scans at consistent intervals (weekly or biweekly) for meaningful trend data
  • After publishing new AEO content, wait 2-4 weeks for indexing before expecting changes
  • Gemini's grounding results can vary run-to-run — that's normal. Aggregate data over multiple scans is more reliable than any single result
  • Track 10-20 prompts max for a focused view. Too many dilutes the signal
  • This skill completes the AEO loop: Research (aeo-prompt-research-free) → Create/Refresh (aeo-content-free) → Measure (this skill) → repeat

Files

3 total
Select a file
Select a file to preview.

Comments

Loading comments…