← SearchFitCONTENT HISTORY

Update to SearchFit

Snapshot Sep 30, 2026 · 23:00 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "ai-visibility-report",
  "description": "Report how a brand appears in AI assistant answers (ChatGPT, Perplexity, Gemini, Claude, Google AI). Use for AI visibility, AI search ranking, share of voice in AI answers, tracked prompts, running a visibility scan, competitor comparison in AI results, or sentiment in AI answers. Do not use for classic Google rankings, clicks or impressions, which belong to google-search-console-report.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 2396
    }
  ],
  "skill_md_contents": "---\nname: ai-visibility-report\ndescription: Report how a brand appears in AI assistant answers (ChatGPT, Perplexity, Gemini, Claude, Google AI). Use for AI visibility, AI search ranking, share of voice in AI answers, tracked prompts, running a visibility scan, competitor comparison in AI results, or sentiment in AI answers. Do not use for classic Google rankings, clicks or impressions, which belong to google-search-console-report.\n---\n\n# AI visibility report\n\nAnswer the question \"when someone asks an AI assistant about this category, does the brand come up, and how does it compare to competitors?\"\n\nEvery tool here is scoped to one brand and takes `brand_id`.\n\n## Step 1: resolve the brand\n\nCall `list_brands`. It is the only tool that takes no id, so it is always the entry point.\n\n- One brand: use it.\n- Several: ask which one, listing name and website. Never guess.\n- None: tell the user to create a brand at /dashboard/brands and stop.\n\nKeep `brand_id` for every later call.\n\n## Step 2: establish what is tracked\n\nCall `list_tracked_prompts` with `brand_id`.\n\nA tracked prompt is a question a real buyer would type into an AI assistant, for example \"best AI SEO tool for agencies\". Visibility is measured against these, so if there are none, there is nothing to report.\n\nIf the list is empty:\n1. Call `suggest_tracking_prompts` to propose prompts from the brand's site and category.\n2. Show the suggestions and ask which to track. Do not track them silently.\n3. Call `create_tracked_prompts` with the approved list.\n4. Say that results appear only after a scan, then go to step 3.\n\n## Step 3: decide whether to scan\n\nScans cost credits and take minutes, so do not scan by reflex.\n\nCall `get_visibility_overview` first. If it returns recent results, report those.\n\nScan only when the user asks for fresh data, or the newest result is stale for their purpose.\n\nBefore a large scan, call `get_workspace_details` to check the plan's remaining usage. Telling the user they are out of credits before a scan is useful. Discovering it halfway through is not.\n\nTo scan:\n\n1. Call `run_prompt_scan` with the `prompt_ids` to scan.\n2. Poll `get_scan_status` with the returned `scan_id`. Do not poll faster than every 20 seconds.\n3. When it completes, call `get_scan_results`.\n\nIf the user changes their mind, `cancel_prompt_scan` stops it. `list_scans` shows scan history.\n\n## Step 4: assemble the report\n\nCombine these, skipping any that return nothing rather than padding the report:\n\n- `get_visibility_overview` for the headline: how often the brand appears across tracked prompts.\n- `get_prompt_analytics` for per prompt detail, including which prompts the brand loses.\n- `get_competitor_analysis` for how rivals place on the same prompts. Manage the comparison set with `manage_tracked_competitors`.\n- `get_sentiment_analysis` for how the brand is characterised when it does appear.\n- `get_visibility_insights` for the specific gaps worth acting on.\n\n## Step 5: report honestly\n\nLead with the number the user cares about: the share of tracked prompts where the brand appears.\n\nRules:\n\n- 0% visibility is a real, common and useful finding. Report it plainly. Never soften it and never present an absence of data as if it were zero visibility, or the reverse.\n- Never invent a trend. A single scan is a point, not a direction. Only describe movement when two or more scans exist.\n- Name the engines the result covers. Visibility differs sharply between assistants, so an aggregate alone can mislead.\n- Attribute every number to the prompt it came from, so the user can verify it.\n\nClose with the two or three highest value actions from `get_visibility_insights`. Where an insight has been acted on, `update_visibility_opportunity` records that.\n\n## Boundaries\n\n- Do not create, edit or delete tracked prompts without explicit approval. `update_tracked_prompt` and `delete_tracked_prompt` change what is measured, which breaks comparability with earlier scans.\n- Do not start a scan without saying it consumes credits.\n- If the user wants content written to close a gap, hand off to the content-production skill rather than doing it here.\n"
}

SHA-256: 15215367991e60319a03b58feca7c5cd02889ea5c490f1786fc175ae02429a1f