skills/capabilities/aeo/SKILL.md
Check and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek). Set up tracking, run visibility analyses, audit your website for AI readability, and get actionable recommendations. Uses the npx goose-aeo@latest CLI.
npx skillsauth add athina-ai/goose-skills aeoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are helping a user check and improve their brand's Answer Engine Optimization (AEO) — how visible they are across AI search engines like ChatGPT, Perplexity, Gemini, Grok, Claude, and DeepSeek.
You use the npx goose-aeo@latest CLI to do everything. Always use --json for machine-readable output — never rely on interactive prompts.
Before doing anything, check the current state:
cat .goose-aeo.yml 2>/dev/null || echo "NOT_FOUND"
Then route based on state and what the user asked:
| State | User says | Action |
|-------|-----------|--------|
| No .goose-aeo.yml | Anything AEO-related | Start with Setup |
| Config exists, no runs | "run", "check", "analyze" | Go to Run Analysis |
| Config exists, has runs | "run", "check" | Go to Run Analysis |
| Config exists, has runs | "audit", "score my site" | Go to Website Audit |
| Config exists, has runs | "recommend", "what should I do" | Go to Recommendations |
| Config exists, has runs | General AEO request | Show status summary, offer all options |
If in doubt, run npx goose-aeo@latest status --json to see the full picture (company name, query count, previous runs) and ask the user what they'd like to do.
Set up AEO tracking for a domain. Have a natural conversation with the user to gather what's needed.
Ask the user for:
athina.ai) — requiredDo NOT proceed until you have at least the company domain.
Check which API keys are available:
node -e "
const keys = {
GOOSE_AEO_PERPLEXITY_API_KEY: !!process.env.GOOSE_AEO_PERPLEXITY_API_KEY,
GOOSE_AEO_OPENAI_API_KEY: !!process.env.GOOSE_AEO_OPENAI_API_KEY,
GOOSE_AEO_GEMINI_API_KEY: !!process.env.GOOSE_AEO_GEMINI_API_KEY,
GOOSE_AEO_GROK_API_KEY: !!process.env.GOOSE_AEO_GROK_API_KEY,
GOOSE_AEO_CLAUDE_API_KEY: !!process.env.GOOSE_AEO_CLAUDE_API_KEY,
GOOSE_AEO_DEEPSEEK_API_KEY: !!process.env.GOOSE_AEO_DEEPSEEK_API_KEY,
GOOSE_AEO_FIRECRAWL_API_KEY: !!process.env.GOOSE_AEO_FIRECRAWL_API_KEY,
};
console.log(JSON.stringify(keys, null, 2));
"
Tell the user which keys are set and which are missing for their chosen providers. If keys are missing, ask them to provide the values. When they do, write them to .env:
echo 'GOOSE_AEO_PERPLEXITY_API_KEY=pplx-...' >> .env
The GOOSE_AEO_OPENAI_API_KEY is also needed for query generation and analysis (not just as a monitored provider). Make sure the user knows this.
Build the flags from what the user told you:
npx goose-aeo@latest init \
--domain <domain> \
--name "<company name>" \
--providers <comma-separated-providers> \
--competitors "<comma-separated-competitor-domains>" \
--json
If the user didn't provide competitors, the tool will auto-discover them using Perplexity (if the API key is set).
Show the user the competitors and providers configured. Ask: "Do these competitors look right? Want to add or remove any?"
If the user wants changes, edit .goose-aeo.yml directly — do NOT re-run init.
Generate a small batch for review:
npx goose-aeo@latest queries generate --limit 10 --dry-run --json
Show the queries in a readable numbered list. Ask: "Do these look like the kind of things your potential customers would search for?"
If queries are off-topic, update the company description in .goose-aeo.yml and re-generate. To add specific queries: npx goose-aeo@latest queries add "<query text>" --json. To remove: npx goose-aeo@latest queries remove <id> --json.
Once approved, generate the full set:
npx goose-aeo@latest queries generate --limit 50 --json
Tell the user setup is complete and offer to run their first analysis right away. Mention approximate cost: 50 queries x 3 providers ~ $2-5 per run.
Execute queries against AI search engines and generate a visibility report.
npx goose-aeo@latest status --json
Show: company name, number of queries, number of previous runs.
npx goose-aeo@latest run --dry-run --json
Tell the user: number of queries, which providers, total API calls, estimated cost. Ask for confirmation before proceeding.
npx goose-aeo@latest run --confirm --json
This may take several minutes. Tell the user it's running.
npx goose-aeo@latest analyze --json
Note how many responses were analyzed, analysis cost, and any alerts from metric drops.
npx goose-aeo@latest report --json
Present a conversational summary — do NOT dump raw numbers:
Offer:
npx goose-aeo@latest dashboardScrape website pages and score each for AI search readability across 6 dimensions.
npx goose-aeo@latest status --json
If not set up, direct the user to setup first.
npx goose-aeo@latest audit --json
This may take a minute or two as it scrapes pages and scores each one.
Overall score: "Your site scores X.X / 10 for AI search readability"
= 7: well-optimized
Per-page highlights: Best and worst scoring pages.
Dimension breakdown — explain which are strongest and weakest:
Recommendations: Present as numbered actionable items.
Based on lowest-scoring dimensions, offer specific actions:
Analyze latest run data and produce actionable visibility improvement recommendations.
npx goose-aeo@latest status --json
If no runs exist, tell the user to run an analysis first.
npx goose-aeo@latest recommend --json
Overall summary: Big picture of the brand's AI visibility position.
Visibility gaps: For each gap — the topic, affected queries, which competitors are mentioned instead, and the specific recommendation.
Source opportunities: Domains frequently cited by AI engines, how often, and how to get featured there.
Competitor insights: Who's outperforming, on which queries, and what they might be doing differently.
npx goose-aeo@latest dashboard for visual exploration.goose-aeo.yml: Run setup first..goose-aeo.yml and whether the site is publicly accessible.content-media
Takes an existing screen recording or demo video and adds professional zoom/pan effects synchronized to the narration. Uses transcript-driven zoom targeting and Remotion for rendering. Optionally replaces audio with a soundtrack.
tools
Repurposes long-form video (podcasts, interviews, talks) into short-form vertical clips for Instagram Reels, TikTok, and YouTube Shorts. Handles transcription, moment selection, clip extraction, speaker-tracked reframing (16:9 to 9:16), and animated captions.
development
Creates talking head videos from any source material (docs, changelogs, blog posts, notes, transcripts). Produces multi-scene videos with avatar narration over screenshots/images using HeyGen v2 API. Supports Quick Shot and Full Producer modes.
tools
Generates Instagram-ready product reels from any e-commerce product page URL. Scrapes product images, classifies by type, generates AI-animated clips via Higgsfield API, creates text overlays with style presets, and composes a 15-20 second reel with music. Supports model-based and product-only reels.