← Back to marketplace
Prompt Reporting Featured

Build a Custom Dashboard

Build a Custom GEO Dashboard

Copy & paste prompt

Run this in Claude

Create a custom interactive OtterlyAI-styled dashboard for the brand report below
and save it as a Cowork artifact.

VARIABLES
- Brand Report ID: {{REPORT_ID}}
- Country (ISO-2 lowercase, "uk" for UK): {{COUNTRY}}
- Date range: {{DATE_RANGE}}
- Workspace label: {{WORKSPACE_LABEL}}

WHAT TO BUILD
Use the otterly skill to fetch the brand report and produce a single self-contained HTML artifact in OtterlyAI brand styling (purple #7928CA
+ pink #E40072, otterly.ai logo on top, gradient pill filters). Sections, in order:
1. Header — otterly.ai logo, workspace breadcrumb, brand logo + report title,
   country pill, date-range pill.
2. Summary cards — Brand Coverage, Domain Coverage, Brand Rank vs competitors,
   Net Sentiment Score.
3. Performance Matrix — heatmap of Brand Coverage by AI engine × top 12 brands.
   Sort pills: Avg coverage / Brand-first / Name. Highlight the main brand with
   a pink ring. Purple→magenta heat scale.
4. Competitive Quadrant — SVG scatter, Y = Brand Coverage, X = Domain Coverage,
   medians split four quadrants (Cited+Mentioned / Mentioned only / Cited only
   / Neither). Engine filter pills (All + 6 engines). Main brand with pink ring.
   IMPORTANT: the per-brand `competitorBrandsAnalysis.domainCoverage` field in
   /stats is unreliable (often 0). Re-derive both Brand Coverage and Domain
   Coverage per brand × engine from the prompt-level data
   (`brandMentions` / `domainMentions` per prompt and per competitor) so both
   axes are consistent and meaningful. Lay out point labels to the right of
   each dot with collision avoidance (sort by Y, push overlapping labels down,
   draw faint leader lines) so dots clustering near x=0 don't pile up.
5. Topic-Level Coverage table — for each topic cluster, show the main brand's
   Brand Coverage % and Domain Coverage % as colored pills, plus mention/citation
   totals. Engine filter pills.
6. Topic Clusters logo grid — for each topic cluster, top 10 brands by total
   mentions as logo chips (cream tile = #1, pink ring = main brand, "Leader"
   badge if main brand is #1). Engine filter pills.
7. Brand Sentiment Matrix —
   (a) NSS comparison strip: main brand card highlighted, then competitor cards
       with NSS, positive/neutral/negative split bar, and "+X vs you" delta.
   (b) NSS heatmap: rows = engines (+ aggregate "All engines" row), columns =
       top brands; red→amber→green scale; main brand pink ring.
8. 30-day Brand Coverage Trend — Chart.js multi-line, top 7 brands. Main brand
   thicker line in OtterlyAI purple. Engine filter pills.
9. Top Cited Domains — ranked list of the top 20 cited domains across all
   engines for the selected date range. Each row shows rank, brandfetch logo,
   domain, domain category pill, total citations and citation share %.

DATA SOURCING (otterly.ai REST API, base https://data.otterly.ai)
- GET /v1/reports/brand/{{REPORT_ID}} — brand metadata, competitors, countries.
- GET /v1/reports/brand/{{REPORT_ID}}/stats?country=…&startDate=…&endDate=…
  — once for "all engines", then once per engine (engines=chatgpt, gemini,
  google, google_ai_mode, perplexity, copilot). Used for the matrix
  (sentiment/NSS only), trend (brandCoverageHistory), and sentiment
  (competitorBrandsAnalysis.brandMentions[].sentiment.nss).
- GET /v1/reports/brand/{{REPORT_ID}}/citations/stats?country=…&startDate=…&endDate=…
  — used for the Top Cited Domains list (`domainRank.citations`).
- GET /v1/reports/brand/{{REPORT_ID}}/prompts?country=…&startDate=…&endDate=…
  — once for "all", then once per engine. Used to (a) categorize prompts into
  topic clusters, (b) compute per-topic Brand Coverage / Domain Coverage as
  (% of prompts in cluster with brandMentions>0 or domainMentions>0), and
  (c) re-derive per-brand × per-engine Brand Coverage and Domain Coverage for
  the Performance Matrix and Competitive Quadrant (don't trust the per-brand
  values from /stats — see Section 4).

TOPIC CLUSTERING
Read every prompt's text. Group them into 8–12 themes that fit the brand's
domain (e.g. for a sports brand: Running Performance / Trail / Specialty
Running / Triathlon / Casual Sneakers / Workout & Gym / Court & Field / Walking
/ Apparel / Sustainability / Accessories). Use regex/keyword matching, then
verify no prompt lands in "Other"; refine patterns until every prompt is
categorized. Aggregate brand mentions per cluster from each prompt's
brandMentions field (main brand) plus competitors[].brandMentions.

OUTPUT
- Single self-contained HTML, light mode, inline CSS+JS, Chart.js loaded from
  the approved CDN, brand logos via cdn.brandfetch.io.
- Save as a Cowork artifact (mcp__cowork__create_artifact) so the user can keep
  re-opening it.
- Provide the computer:// link to the file.

Tip: replace anything in [BRACKETS] with your own values, then paste this into Claude with the OtterlyAI connector enabled.

Details

Persona Head of Marketing
Cadence Monthly
Difficulty Advanced
The question it answers
How is my brand and website performing on AI?
What you'll get
An interactive HTML page with the latest performance metrics

Ready to deploy this Prompt?

Start a free OtterlyAI trial — no card required.

Start free trial →