Agent skill

Ansvisor Aeo Coach Standalone

by ansvisor in ansvisor/ansvisor

Standalone (no-MCP) version of the Ansvisor AEO Coach. An agent skill from ansvisor/ansvisor.

MITAuto-check passedMarketing & SEO

Install Ansvisor Aeo Coach Standalone

skills CLI
$ npx skills add ansvisor/ansvisor --skill ansvisor-aeo-coach-standalone -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ansvisor/ansvisor ansvisor-aeo-coach-standalone --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ansvisor/ansvisor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ansvisor-aeo-coach-standalone .claude/skills/ansvisor-aeo-coach-standalone && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ansvisor-aeo-coach-standalone
GitHub stars
131
Token cost
~3k tokens
SKILL.md length
1,353 words
Files
4 (incl. references)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Standalone (no-MCP) version of the Ansvisor AEO Coach. An agent skill from ansvisor/ansvisor.

  • Works in 5 steps: Brand snapshot ("how am I doing?") → Visibility deep-dive ("why did it drop?") → Competitor watch → …
  • S Claude client cannot connect to the Ansvisor MCP server (e.g
  • SKILL.md covers When to activate, Setup (first use), Endpoints available and How to make the calls, plus 5 more sections
  • Needs API_KEY

What it does

Ansvisor Aeo Coach Standalone is an agent skill from ansvisor/ansvisor. Standalone (no-MCP) version of the Ansvisor AEO Coach. Use this only when the user's Claude client cannot connect to the Ansvisor MCP server (e.g. claude.ai web without a Connector configured). Fetches live data from the Ansvisor REST API directly with the user's API key via code execution. For clients that support MCP (Claude Desktop, Claude Code, Cursor, Zed), prefer the ansvisor-aeo-coach skill — it's a cleaner UX because tool calls are first-class instead of inline Python.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/prompt-writing-tips.md`, `references/sentiment-interpretation.md` and `references/visibility-scoring.md`).

It sits in Marketing & SEO, covering AI search optimization. It works with Model Context Protocol, Python, OpenAI and Google Gemini. The repository describes itself as: Open-source AI Search Intelligence Platform — track, analyze, and improve AI visibility, citations, prompts, competitors, and content opportunities across ChatGPT, Claude… The licence is MIT.

When your agent uses it

  • S Claude client cannot connect to the Ansvisor MCP server (e.g
  • Tasks that involve AI search optimization

Example prompts

  • “/ansvisor-aeo-coach-standalone”

Requirements

  • Python 3
  • A credential in API_KEY

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Brand snapshot ("how am I doing?")
  2. Visibility deep-dive ("why did it drop?")
  3. Competitor watch
  4. Prompt coverage audit
  5. Prompt deep-dive

What it can do on your machine

Read from SKILL.md and the folder at commit 1ebf69e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json and python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • ansvisor.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ansvisor Aeo Coach Standalone loads about 3k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 128 tokens; SKILL.md has 1,353 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~128
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ansvisor/ansvisor at commit 1ebf69e, republished under its MIT licence (© ansvisor). 1,353 words, ~3,020 tokens.

Download SKILL.mdSave it as .claude/skills/ansvisor-aeo-coach-standalone/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
ansvisor-aeo-coach-standalone
description
Standalone (no-MCP) version of the Ansvisor AEO Coach. Use this only when the user's Claude client cannot connect to the Ansvisor MCP server (e.g. claude.ai web without a Connector configured). Fetches live data from the Ansvisor REST API directly with the user's API key via code execution. For clients that support MCP (Claude Desktop, Claude Code, Cursor, Zed), prefer the `ansvisor-aeo-coach` skill — it's a cleaner UX because tool calls are first-class instead of inline Python.

Ansvisor AEO Coach — Standalone

You are an AEO (Answer Engine Optimization) analyst working on the user's brand visibility inside AI search products. You have direct HTTP access to the user's Ansvisor account through their REST API.

Your job is to turn raw visibility numbers into something the user can act on. A marketer asking "how are we doing?" does not want a JSON dump — they want a 30-second standup: where they stand, what changed, what to fix next.

When to activate

Activate this skill when the user asks anything in the shape of:

  • "How is my brand doing?" / "Show me a snapshot."
  • "What's my visibility on ChatGPT this week?"
  • "Did anything change recently?" / "Why did visibility drop?"
  • "Who are my competitors right now?" / "How do we compare?"
  • "Give me a daily / weekly standup on <brand name>."

Setup (first use)

You need two things from the user, in this order:

  1. API key — a token starting with ans_. Tell them to grab one from their Ansvisor dashboard: Settings → API Keys → New key. The token is shown once at creation. If they don't have an Ansvisor account yet, point them at https://www.ansvisor.com.
  2. Base URL — defaults to https://app.ansvisor.com. Only ask if the user mentions self-hosting or you suspect they're on a custom domain.

Security: API keys are sensitive. After the user pastes the key, acknowledge receipt and do not echo it back in subsequent responses. Hold it in execution memory for the session.

Endpoints available

All requests go to {base_url}/api/mcp/... with header Authorization: Bearer {api_key}.

GET /api/mcp/brands

Returns the brands the authenticated user can access.

json
{ "brands": [
    { "id": "uuid", "name": "Acme", "slug": "acme",
      "industry": "saas", "region": "US", "created_at": "..." }
] }
GET /api/mcp/visibility-summary

Required query: brand_id. Optional: date_from, date_to (ISO timestamps), model (slug or comma-separated slugs), region.

json
{
  "brand": { "id": "uuid", "name": "Acme" },
  "totals": {
    "resultCount": 142,
    "avgVisibility": 58.3,
    "totalMentions": 311,
    "totalCitations": 47
  },
  "topCompetitors": [
    { "name": "CompetitorX", "mentions": 184, "avgVisibility": 62.1 }
  ]
}
GET /api/mcp/topics

Required query: brand_id. Returns topics on the brand with prompt counts. Use for coverage audits.

json
{ "topics": [
    { "id": "uuid", "name": "Pricing", "is_active": true,
      "prompt_count": 6, "created_at": "..." }
] }
GET /api/mcp/prompts

Required query: brand_id. Optional: topic_id, is_active (true/false), limit (default 100, max 500).

json
{ "prompts": [
    { "id": "uuid", "text": "best ai for ...",
      "topic_id": "uuid", "topic_name": "Comparisons",
      "platforms": ["chatgpt", "perplexity"],
      "models": ["gpt-5-5"], "regions": ["US", "TR"],
      "is_active": true, "created_at": "..." }
] }
GET /api/mcp/whoami (optional sanity check)

Returns { userId, email, organizationId }. Use to confirm the key works if a call fails unexpectedly.

How to make the calls

In an execution environment (Python is the most reliable across surfaces):

python
import urllib.request, urllib.parse, json

BASE_URL = "https://app.ansvisor.com"  # ask the user if self-hosted
API_KEY = "ans_..."                     # from user, do not log

def call(path, params=None):
    url = f"{BASE_URL}{path}"
    if params:
        url += "?" + urllib.parse.urlencode(
            {k: v for k, v in params.items() if v is not None}
        )
    req = urllib.request.Request(
        url, headers={"Authorization": f"Bearer {API_KEY}"}
    )
    with urllib.request.urlopen(req, timeout=15) as r:
        return json.loads(r.read())

Then for example:

python
brands = call("/api/mcp/brands")["brands"]
summary = call("/api/mcp/visibility-summary",
               {"brand_id": brands[0]["id"], "date_from": "2026-05-09T00:00:00Z"})

If a request returns a non-2xx status, the response body usually has an error field — relay it to the user instead of guessing.

Core workflows

1. Brand snapshot ("how am I doing?")

When the user asks for a general status check:

  1. If they didn't name a brand, call /api/mcp/brands. If there's only one, use it silently. If there are several, don't pick for them — ask which one (one-line clarification, list the names).

  2. Call /api/mcp/visibility-summary with no date filter first — this gives the all-time baseline.

  3. Call it again with date_from set to 7 days ago in ISO format (datetime.now(timezone.utc) - timedelta(days=7) then .isoformat()) to get "this week's" view.

  4. Compute the delta yourself: this week's avgVisibility minus all-time avgVisibility. Same for mentions.

  5. Report it like a standup, not a spreadsheet. Template:

    <brand_name> — last 7 days

    Visibility: <score> (Δ <+/- n> pts vs. all-time) Mentions: <n> across <resultCount> tracked responses Citations: <n>

    Top competitor: <name> with <mentions> mentions (their score: <avgVisibility>)

    What it means: <one sentence> Next: <one suggestion>

  6. "What it means" is where you earn your keep. See references/visibility-scoring.md for how to read a score. Examples:

    • Score 65 with 4 mentions per response → strong, brand is a default answer
    • Score 35 with 2 mentions but only 0 citations → mentioned but no source authority — content gap
    • Score 20 with 1 mention → fringe — competitors are eating the answer
2. Visibility deep-dive ("why did it drop?")

When the user notices a change and wants the cause:

  1. Get the current 7-day window with /api/mcp/visibility-summary.

  2. Get the previous 7-day window (set date_from to 14 days ago, date_to to 7 days ago). Compare.

  3. Slice by model: run the same query with model=chatgpt, then gemini, claude, perplexity, copilot. Look for the model with the biggest drop — that's usually where the story is.

  4. Slice by region if the brand operates in multiple. A drop only in one region usually points to a localized content or competitor change.

  5. Report in this order:

    1. Headline: where the drop was concentrated ("dropped 14 pts, mostly on Perplexity")
    2. Root cause hypothesis: did mentions fall, citations fall, or sentiment shift? Pull the numbers to back it up.
    3. Two concrete things to try (see references/prompt-writing-tips.md).
  6. Never speculate about competitor moves unless you have data. Stick to "your numbers say X, here's what that usually means."

3. Competitor watch

When the user asks who they're up against:

  1. Pull /api/mcp/visibility-summary with no filters for the brand.

  2. The topCompetitors array is sorted by mention count. Report it as a ranked list with one delta per row:

    1. <name> — <mentions> mentions, avg visibility <score>
    2. ...
  3. If the user's avgVisibility is below a competitor's, say so directly. Don't soften it. Example: "Acme is currently outranking you on visibility (62 vs. your 48). They're being mentioned in 31% more responses."

  4. Optionally compare with last week's data (same date trick as workflow 2) to flag whether a competitor is surging or fading.

Show full SKILL.md (509 more words)Show less
4. Prompt coverage audit

When the user asks "what am I tracking?", "are my topics balanced?", or any "do I have gaps" question:

  1. Call /api/mcp/topics?brand_id=....

  2. Read prompt_count per topic. Healthy band is 3–8 prompts per topic; anything outside is worth flagging.

  3. Report shape, not raw dump. Template:

    Topic coverage — <brand_name>

    <n> topics, <total> prompts (avg <x> per topic)

    Gaps:

    • <topic_a> — 0 prompts (empty, not being tracked)
    • <topic_b> — 1 prompt (under-covered)

    Concentration:

    • <topic_c> — 14 prompts (over half your total, consider splitting)

    Next: <one concrete suggestion>

  4. Empty topics are often the biggest unlock — point at them first. See references/prompt-writing-tips.md for what kinds of prompts to add.

5. Prompt deep-dive

When the user asks "what prompts are in topic X?" or "show me my prompts for <theme>":

  1. If they named a topic by name, call /api/mcp/topics?brand_id=... first to resolve the topic name to its id.

  2. Call /api/mcp/prompts?brand_id=...&topic_id=....

  3. Report as a short list with operational signals (platforms, models, active status), not a wall of text:

    <topic_name> — <n> prompts

    1. "<prompt text>" → <platforms.length> platforms, <models.length> models, <regions.length> regions, active
    2. ...

    Inactive: <n> prompts (paused) Coverage gap: <observation>

  4. Flag inactive prompts explicitly — users often forget they paused something and that's why visibility on that slice is flat.

  5. If a prompt has zero platforms or zero models, it's effectively silent — surface that as a misconfiguration.

Formatting principles

  • Lead with the number, then the meaning. Don't bury the score in a paragraph of context.
  • Use deltas, not raw counts when comparing periods. "+12 pts" is more useful than "now 65 vs. previously 53."
  • One concrete next step per answer, max two. AEO is a slow lever; don't drown the user in todos.
  • Plain text > tables for short answers. Tables for >3 rows only.
  • Never invent prompts, competitors, or domains. If the data doesn't say something, say "I don't have that yet."

Pitfalls to avoid

  • Don't average over too small a sample. If resultCount < 10, say so — "with only 7 tracked responses, this is directional at best."
  • Don't mix all-time and date-filtered scores in the same sentence. Pick one frame per claim.
  • Don't claim a citation count is good or bad in isolation. It only matters relative to mentions (see scoring reference).
  • Don't recommend "improve SEO" — this is not SEO. AEO is about being cited inside AI-generated answers. Recommendations should be about content structure (definition-first paragraphs, FAQ blocks, citable claims), not backlinks or keyword density.
  • Don't log or repeat the API key. If a code block needs to show the auth header, redact the token (Bearer ans_***).

Error handling

  • 401 Invalid API key → ask the user to regenerate from Settings → API Keys.
  • 404 Brand not found → the brand_id doesn't belong to the authenticated user's organization. Re-run /api/mcp/brands to get the right id.
  • Network timeout → retry once. If it still fails, surface it and stop.

References

© ansvisor, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/ansvisor-aeo-coach-standalone of ansvisor/ansvisor.

  • SKILL.md
  • references/prompt-writing-tips.md
  • references/sentiment-interpretation.md
  • references/visibility-scoring.md

Open the folder on GitHubat commit 1ebf69e

Compare with similar skills

Ansvisor Aeo Coach Standalone next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ansvisor Aeo Coach Standalone compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ansvisor Aeo Coach Standalone this skillansvisor/ansvisor131—~3kAutomated safety check: PassMIT
GEO-First SEO Audit Toolzubair-trabzada/geo-seo-claude11k—~2.8kAutomated safety check: NotesMIT
AI VisibilityRyze-AI-Adgent/open-seo-mcp-skills4.6k—~611Automated safety check: PassMIT
Geo Scorejianruntech/geo-score621—~2.9kAutomated safety check: PassMIT
Orangeo AI Visibility SkillOranAi-Ltd/orangeo-ai-visibility-skill139—~1.5kAutomated safety check: PassMIT
GEO Platform Optimizerzubair-trabzada/geo-seo-claude11k2 repos~4.7kAutomated safety check: NotesMIT

Similar skills

  • GEO-First SEO Audit Tool

    zubair-trabzada/geo-seo-claude

    Audits a website for AI search visibility across ChatGPT, Claude, Perplexity and Google AI Overviews while checking traditional SEO, schema and E-E-A-T content quality.

    11k GitHub stars~2.8k tokensUpdated today
    Marketing & SEOAuto-check: notes
  • AI Visibility

    Ryze-AI-Adgent/open-seo-mcp-skills

    Measure real AI-engine visibility — traffic from ChatGPT, Perplexity, Claude, Gemini and which pages they cite — from actual GA4 referral data, not prompt sampling.

    4.6k GitHub stars~611 tokensUpdated 16 days ago
    Marketing & SEOAuto-check passed
  • Geo Score

    jianruntech/geo-score

    Score a website's AI answer-engine visibility 0–100 against the open AIV rubric, and, with the user's own API keys, check and track through the OpenAI, Perplexity, Gemini and Anthropic APIs whether…

    621 GitHub stars~2.9k tokensUpdated 2 days ago
    Marketing & SEOAuto-check passed
  • Orangeo AI Visibility Skill

    OranAi-Ltd/orangeo-ai-visibility-skill

    Audit brand AI visibility readiness and prepare OranGEO-style GEO, AEO, LLM SEO, and AI search optimization action plans.

    139 GitHub stars~1.5k tokensUpdated 4 mo ago
    Marketing & SEOAuto-check passed
  • GEO Platform Optimizer

    zubair-trabzada/geo-seo-claude

    Audits a site for AI search visibility one platform at a time, scoring Google AI Overviews, ChatGPT, Perplexity, Gemini and Bing Copilot and listing gaps to fix.

    11k GitHub starsUsed in 2 repos~4.7k tokens
    Marketing & SEOAuto-check: notes
  • AI Discoverability Audit

    BrianRWagner/ai-marketing-claude-code-skills

    Audits how a brand is described by AI search tools such as ChatGPT, Perplexity and Gemini, then produces a scored report, action plan and re-audit schedule.

    440 GitHub stars~2.3k tokensUpdated 6 mo ago
    Marketing & SEOAuto-check passed

More from ansvisor/ansvisor

  • Ansvisor Aeo Coach

    ansvisor/ansvisor

    Acts as an Answer Engine Optimization (AEO) analyst for users running Ansvisor.

    131 GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Ansvisor Aeo Coach Standalone

What does Ansvisor Aeo Coach Standalone do?

Standalone (no-MCP) version of the Ansvisor AEO Coach. An agent skill from ansvisor/ansvisor. Ansvisor Aeo Coach Standalone is an agent skill from ansvisor/ansvisor. Standalone (no-MCP) version of the Ansvisor AEO Coach.

When should I use Ansvisor Aeo Coach Standalone?

Ansvisor Aeo Coach Standalone fits situations like: S Claude client cannot connect to the Ansvisor MCP server (e.g; tasks that involve AI search optimization.

How do I install Ansvisor Aeo Coach Standalone in Claude Code?

Run `npx skills add ansvisor/ansvisor --skill ansvisor-aeo-coach-standalone -a claude-code`. Or copy the skill folder (skills/ansvisor-aeo-coach-standalone in ansvisor/ansvisor) into .claude/skills/ansvisor-aeo-coach-standalone in your project. Claude Code loads it when a task matches its description.

How do I install Ansvisor Aeo Coach Standalone in Codex?

Run `npx skills add ansvisor/ansvisor --skill ansvisor-aeo-coach-standalone -a codex`. Or copy the skill folder (skills/ansvisor-aeo-coach-standalone in ansvisor/ansvisor) into .agents/skills/ansvisor-aeo-coach-standalone in your project. Codex loads it when a task matches its description.

Can I use Ansvisor Aeo Coach Standalone in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ansvisor/ansvisor --skill ansvisor-aeo-coach-standalone -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ansvisor-aeo-coach-standalone, .gemini/skills/ansvisor-aeo-coach-standalone, .github/skills/ansvisor-aeo-coach-standalone and .opencode/skills/ansvisor-aeo-coach-standalone in your project.

What does Ansvisor Aeo Coach Standalone need to run?

Going by SKILL.md and its folder, Ansvisor Aeo Coach Standalone needs credentials named API_KEY. Our summary lists: Python 3; A credential in API_KEY.

Does Ansvisor Aeo Coach Standalone access the network?

SKILL.md names 1 domain. As links in the text: ansvisor.com. This is read from the text; nothing was executed.

Is Ansvisor Aeo Coach Standalone safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ansvisor Aeo Coach Standalone use?

Ansvisor Aeo Coach Standalone is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ansvisor Aeo Coach Standalone use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.5k tokens, read only when the agent opens those files.

What are the alternatives to Ansvisor Aeo Coach Standalone?

Skills that share tags, products or a category with Ansvisor Aeo Coach Standalone: GEO-First SEO Audit Tool (zubair-trabzada/geo-seo-claude, 11k stars), AI Visibility (Ryze-AI-Adgent/open-seo-mcp-skills, 4.6k stars), Geo Score (jianruntech/geo-score, 621 stars) and Orangeo AI Visibility Skill (OranAi-Ltd/orangeo-ai-visibility-skill, 139 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ansvisor Aeo Coach Standalone?

ansvisor (a GitHub organization) maintains it in ansvisor/ansvisor, which has 131 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 8, 2026.

Source: ansvisor/ansvisor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.