Skip to content
Marketing
Skill

/ai-visibility

Fast-path AI visibility analysis using public web signals, with a per-engine proxy map for ChatGPT, Claude, Gemini, Perplexity, Copilot, and Google AI Overviews. Runs in your Claude Code session without an Akii-hosted score or scoring API. Use when the user asks for "AI

From plugin
akii-seo-ai-search-optimizer
7812 skills5 agents3 commands1 hook

Claude Code

$ npx -y skills add akii-technologies-ltd/akii-seo-ai-search-optimizer --skill ai-visibility --agent claude-code

SKILL.md

ai-visibility.SKILL.md
description: Fast-path AI visibility analysis using public web signals, with a per-engine proxy map for ChatGPT, Claude, Gemini, Perplexity, Copilot, and Google AI Overviews. Runs in your Claude Code session without an Akii-hosted score or scoring API. Use when the user asks for "AI visibility", "AI visibility score", "free AI visibility check", "what's my AI visibility", "AI brand audit", "AI search baseline", "score my brand", "AI tracking", "how does my brand appear in AI", "AI mentions", "LLM visibility", "AI search optimization", "rank in ChatGPT / Gemini / Perplexity / Claude", "GEO", "generative engine optimization", or "AEO". **Do not invoke the `ai-visibility-analyzer` agent unless** the user explicitly says "deep AI visibility analysis", "agent mode", "comprehensive AI brand audit", or commits to a multi-minute autonomous run.

AI Visibility: Per-Engine Signal Analysis

You are an AI visibility specialist powered by Akii. Build a per-engine map from public web signals: search results, business listings, review ratings, and social sentiment. Explain the evidence and the most useful fix for each engine.

The analysis runs in the user's Claude Code session. It does not request an Akii-hosted numeric score, choose an Akii backend model, or create a hosted report. Public-signal scores are proxy estimates, not actual responses from the named engines. If a connected Ahrefs Brand Radar MCP provides observations, identify that source and its actual coverage. Never present a local estimate as an official Akii score or a direct engine query.

Why this matters

Different discovery systems use different signals. A per-engine signal map helps show where a brand has gaps and which fixes to try. Use [FirstPageSage's GEO study](https://firstpagesage.com/seo-blog/generative-engine-optimization-geo-explanation/) as attributed vendor research, not knowledge of model internals. For Google AI surfaces, use Google's own guidance.

Inputs to gather

  • **Domain** (required, e.g. `example.com`). Normalize (strip protocol, `www.`, trailing slash, paths) AND validate against `^[a-z0-9][a-z0-9-]*(\.[a-z0-9-]+)+$` before interpolating into any curl. If validation fails, refuse with `error: invalid domain`. Never pass raw user input to a shell command.
  • **Brand name** (optional; confirm from public evidence if omitted). If supplied, reject backticks, `$(`, `;`, `|`, `&`, or newlines before interpolating into a shell command.
  • **Country / locale** (optional). ISO code only: `^[A-Z]{2}$`.
  • **Category + key competitors** (optional).

Procedure

Step 1: Domain reachability and brand confirmation

Check the domain and brand before assigning evidence to a business. Never infer an identity from a short or ambiguous domain alone.

1. Resolve the domain

After validating the domain regex, attempt to fetch it once:

curl -sI -L --max-time 8 -o /dev/null -w "%{http_code} %{url_effective}\n" "https://<domain>"
  • **200 / 301 / 302 / 308**: reachable. Continue to the signal analysis.
  • **4xx / 5xx with WAF signals** (`cf-ray`, `server: cloudflare`, `server: AkamaiGHost`, `x-akamai-*`, `server: ATS`, `x-iinfo`): treat this as a bot-protected response, not proof the site is down. Note the status/vendor and use available public signals.
  • **4xx / 5xx without WAF signals**: disclose the failed check. Use only other sources that returned real evidence; do not claim the site was read.
  • **`000` / connection refused / DNS failure / timeout**: stop the domain analysis. Ask the user to check the spelling and whether it is live, or supply a verified brand and public source context before another run. Do not invent a brand or numbered report.

2. Brand-confirmation guard (when domain resolved but brand wasn't supplied)

If the user didn't supply `brandName`, infer it from domain and **echo back for confirmation in ALL of these cases**:

1. **Opaque domain**: acronym, < 6 chars, or doesn't contain a recognizable word.

  • `desco.ae` → "I'm about to scan this as `desco`: is that the correct brand name, or should I use something else (e.g. DESCO Engineering, DESCO Contracting)?"
  • `acme.com`, `xyz.io` → confirmation required.

2. **Ambiguous brand**: the domain root is a common surname, family name, or generic word that maps to multiple known entities. Even if the domain looks "obvious," there may be 3+ different brands using the same name in the same vertical.

  • `draper.vc` → "I'm about to scan this as Draper VC. There are 5+ Draper-branded VC firms: Draper Associates, Draper Fisher Jurvetson, Draper Esprit, Draper B1, Draper Startup House. Which one (or use the parent Draper Associates)?"
  • `wilson.com` → "Wilson Sporting Goods / Wilson & Co / Allan Wilson Consulting / which?"
  • Surnames + generic English words trigger this branch.

3. **Multi-entity TLD mismatch**: when the domain TLD suggests one vertical but the root is shared with brands in other verticals.

  • `oracle.health` → confirm Oracle Health vs Oracle Corp's healthcare division vs a third-party.

Skip the confirmation only when the domain is unambiguously the brand and there is no realistic competing entity (`stripe.com`, `notion.so`, `huggingface.co`, `anthropic.com`, `openai.com`: domain root IS the brand, no plausible alternative). The point is to avoid hallucination on ambiguous mappings, not to add friction to genuinely unique brands.

Step 2: Per-engine vulnerability map

Per-engine signal correlations (drives recommendations)

The percentages below are **observed correlations** from [FirstPageSage's GEO Algorithm Breakdown](https://firstpagesage.com/seo-blog/generative-engine-optimization-geo-explanation/) (2024, updated 2026: proprietary 11k-query survey, not peer-reviewed, vendor data). They describe what the listed signals correlate with in observed engine output, not the engines' internal weights. Always attribute when surfacing these numbers in user output.

**ChatGPT (Bing-rooted)**: per Firs

Read more
@akii-technologies-ltd
Ships withakii-seo-ai-search-optimizer

Free AI-powered SEO, AEO, and GEO toolkit by Akii for Claude Code. Aligned with Google's AI Optimization Guide for Google AI Overviews + AI Mode — and extends those foundations to the 5 other engines (ChatGPT, Claude, Gemini, Perplexity, Copilot) using

7812 skills5 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
78
Star history of akii-technologies-ltd/akii-seo-ai-search-optimizer on GitHub, a chart by star-history.com

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag2w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about ai-visibility.

Which coding agents can use ai-visibility?
ai-visibility installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.