Skip to content
SEO
Skill

/ai-visibility-audit

Audit how a brand shows up in AI answers about its market and deliver a short report on the few changes most likely to get it mentioned or cited, such as a third-party page to get onto, an owned page to improve, or an access problem to fix. Use when the user asks for an AI

BOOST
From plugin
open-seo
23k12 skills1 MCP
Install
$ npx -y skills add every-app/open-seo --skill ai-visibility-audit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ai-visibility-audit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Audit how a brand shows up in AI answers about its market and deliver a short report on the few changes most likely to get it mentioned or cited, such as a third-party page to get onto, an owned page to improve, or an access problem to fix. Use when the user asks for an AI

SKILL.md

ai-visibility-audit.SKILL.md
name: ai-visibility-audit
description: Audit how a brand shows up in AI answers about its market and deliver a short report on the few changes most likely to get it mentioned or cited, such as a third-party page to get onto, an owned page to improve, or an access problem to fix. Use when the user asks for an AI visibility audit, a GEO or AEO audit, why AI recommends competitors instead of them, or how to show up in ChatGPT, Gemini or Google AI answers.

AI Visibility Audit

Goal

Find the work most likely to get a brand named or cited in AI answers about its market, and explain it so a non-expert can act on it. Research broadly; recommend selectively. The report leads with one to three recommendations, each tied to the answers and cited pages that justify it.

This skill reads saved answers, adds the pages behind them, and decides what to do. For demand research alone, use `ai-prompt-research`.

Project context

The project-context tools are free and shared with the app and other agents.

1. External MCP clients: resolve the project with `list_projects`, ask only if the match is ambiguous, then call `get_project_context`. In SAM, use the current project and context already injected into the conversation; SAM has no `get_project_context` tool and needs no project selection or connection setup. 2. This skill needs `business_overview`, the website and the main competitors. If the overview is empty, infer it from the site, confirm it in one question, and save it with `update_project_context`. 3. Read `get_ai_visibility_tracker`. Its prompts, competitors, engines, market and latest runs decide which path below applies. Check the tracker's own brand, the `brands` row with `own: true`. Its name is the project name. If that is not how people write the brand (for example a project named "Acme website"), answers that name the brand are not counted as mentions and brand questions are not treated as branded. Ask the user to rename the project in the app before collecting or interpreting answers. 4. Reuse research-log findings under 30 days old for discovery. A claim that drives a recommendation still needs evidence from a run or a page read during this audit. 5. On finish, write back the pages the report names with `addKeyPages` and append `{ updates: [{ appendResearchLog: { summary: "AI visibility audit: <run id>. Verdict: <conclusion>" } }] }`.

OpenSEO MCP tools

  • `get_ai_visibility_results`, `get_ai_visibility_sources`, `get_ai_visibility_answer`: the evidence. Read one run-wide results call, one run-wide sources call with the same `runId`, then answers you need to verify.
  • `get_ai_visibility_trend`: whether visibility is moving, when the tracker has comparable history. Never compute a trend yourself from separate result calls.
  • `research_ai_visibility_prompts`: the questions around a prompt group and the sources ChatGPT cites for them (US English only).
  • `explore_prompt`: asks ChatGPT one prompt through its API and returns the answer, citations and `fanOutQueries`, the web searches the model ran before answering. Charged at actual usage per uncached answer; cached answers are free for seven days. Requires a paid plan in hosted mode.
  • `estimate_ai_visibility_cost`, `save_ai_visibility_tracker`, `run_ai_visibility_check`, `get_ai_visibility_run`: only for the first-run path below.
  • `get_ranked_keywords`, `get_serp_results`, `get_backlinks_overview`: optional context when an owned page's search performance or authority could change a recommendation.
  • Web reading (fetch, scrape or search): `robots.txt`, the owned pages that should be cited, and the pages AI answers cite instead.

Workflow

1. Get evidence

  • **Tracker with a completed run**: use the latest completed baseline or scheduled run, or the latest completed manual check when `recentRuns` has no other. Do not buy new answers.
  • **Run in progress**: when `recentRuns` shows a pending or partially finished run, follow it with `get_ai_visibility_run`, respecting `pollAfterSeconds`. Do not start another. A failed or partial run still supplies whatever answers it completed; report its coverage.
  • **Tracker with active prompts but no runs**: saved prompts that were never collected, for example because the schedule was never enabled. Estimate one check of the saved active prompts with `estimate_ai_visibility_cost`, get approval once, then call `run_ai_visibility_check` with the approved cost as `maxCostUsd`. Follow the returned run. Do not change the schedule.
  • **Tracker with no active prompts** (every topic or prompt paused or archived): ask whether to resume the existing prompts or add new ones, then take the matching path. Do not unpause anything without the user's direction.
  • **No tracker**: propose 10–15 neutral prompts across two or three topics the business sells into, preferring real prompts from `research_ai_visibility_prompts`. Show one plan with the cost from `estimate_ai_visibility_cost`, get approval once, save through `save_ai_visibility_tracker` with each prompt's `topic`, and run one check with the approved cost as `maxCostUsd`. Do not enable a schedule. If the user declines the spend, run the audit on prompt research alone and say the report has no observed answers.

2. Read where the brand stands

Results and sources return 25 rows by default. Pass `limit: 50`, and when `totalCount` is larger than the rows returned, follow `nextCursor` before counting.

The default results and sources reads cover only baseline and scheduled runs. When the evidence is a manual check, including one this skill started, pass its `runId` to every results and sources read; otherwise the read returns no rows.

Read neutral prompts (the default) for the run. For each topic and engine record: answers collected, brand mentioned, own site cited, and which competitors appear. Rates count answered collections only. Report failed and no-answer collections separately; they are not absence.

Then derive the gap: prompts wher

Read more
Ships withopen-seo

Open source alternative to Semrush and Ahrefs OpenSEO is an SEO tool for the people. If tools like Semrush or Ahrefs are too expensive or bloated, OpenSEO is a pay-as-you-go alternative that you actually control. All-in-one SEO tool for you and your AI agent.

Get the whole plugin
Stats
22,668
Stars
2,940
Forks
Active
Maintenance
TypeScript
Language
MIT
License
1d ago
Last commit
7mo ago
Created
9h ago
Added

Repo: every-app/open-seo

Other skills on open-seo.