Competitor traffic report skill

Build an interactive competitive-traffic report for any company and its rivals — monthly visits (SimilarWeb), organic search traffic and Domain Rating (Ahrefs) — as one self-contained HTML page with ranked charts, a three-month trend, a multi-year overlay and a data table.

by OpenClaudia·MIT license·★ 705 Stars on the repo·GitHub ↗

Use now

Files of Competitor traffic report

OpenClaudia/main1 file shown
SKILL.md
Show the full text89 lines

competitor-traffic-report

Three metrics, three different questions. Do not average them or treat one as a proxy for another:

Metric Source Answers
Monthly visits SimilarWeb total demand, every channel
Organic traffic Ahrefs how much of it search is producing
Domain Rating Ahrefs backlink authority — the structural position

Visits and organic move on a single viral page. DR does not, which is why a gap in DR says more about where a company actually sits than a good traffic month does.

Run

export AHREFS_API_KEY=...   # required
export BRANDDEV_API_KEY=...  # optional, for logos
S=skills/competitor-traffic-report/scripts

node $S/fetch-traffic.js acme.com rival1.com,rival2.com,rival3.com --out /tmp/data.json
node $S/build-report.js /tmp/data.json "AI presentation tools, ranked" --out /tmp/report.html

Open the HTML, or publish it with the Artifact tool. It is self-contained — logos inlined as data URIs, no external requests — so it survives a strict CSP.

The focus domain is coloured orange and ranked in every chart; competitors take a five-step blue ramp ordered by rank, so colour carries magnitude instead of being decoration.

Choosing the competitor set

Whoever asked usually names three or four. Fill the set out to 20–40 before running: a five-company chart cannot show where anyone sits, and the interesting findings (how much of the market one player holds, how many are shrinking) need the tail. Sources for names, cheapest first:

  • the client's own "alternatives to X" and comparison pages;
  • an X alternatives / best X tools SERP, read deep enough to reach the top 100;
  • Ahrefs competitors_overview for domains ranking on the same keywords.

Drop anything that is not a real peer: a general-purpose giant (Adobe, Google) dominates every chart while competing for none of the same buyers, and its presence compresses everyone else into the bottom decile. Same for a friendly company the requester does not consider a rival — ask.

Subdomains are already counted. SimilarWeb's root-domain figure includes them, so listing both acme.com and app.acme.com double-counts and buries the real number. (Verified: wikipedia.org 3.53B vs en.wikipedia.org 0.88B.) List the root only.

Constraints worth knowing before the first run

  • SimilarWeb rate-limits by IP, roughly 15 calls per window, and the block lasts hours. The script paces at 15s and still misses on a long list — rerun to fill gaps, or spread a 40-domain set across two sessions. The X-Extension-Version header is mandatory; a browser User-Agent alone returns 403.
  • A returned 0 means "below SimilarWeb's detection floor", not "no traffic". The template drops those from the charts rather than ranking a live site last. For a domain you own, read Search Console instead.
  • Ahrefs organic uses mode=subdomains. Domain mode silently excludes the www. host, which reads as an empty site for anyone whose canonical is www..
  • The free DR endpoint costs no API units. Organic history does — one row per month per domain.

Publishing the report

The Ahrefs licence (ahrefs.com/legal/domain-rating-license) grants a royalty-free right to display and publish DR data provided the attribution Domain Rating by Ahrefs appears next to it with a live link. The template ships that line; do not remove it. The same licence prohibits reselling the data or using it to build something that competes with Ahrefs.

Reading the result

The report shows position. The story is usually in a gap between two of the three metrics:

  • Organic rank far above visits rank — search is carrying more than its share; paid, social or direct is the thin part.
  • DR far above organic — the authority is there and the content is not converting it. This is the most actionable gap, because it is a content problem, not a link-building one.
  • DR far below peers at similar traffic — the traffic is bought or borrowed, and it stops the moment spend stops.
  • A near-identical name at a fraction of the DR (brand.app at DR 87 vs brand.com.ai at 38) is a copycat domain, not a competitor.

State the denominator and the window beside any figure taken from this report. Both sources are modelled estimates, least reliable exactly where it matters most — the small end.

1---
2name: competitor-traffic-report
3description: Build an interactive competitive-traffic report for any company and its rivals — monthly visits (SimilarWeb), organic search traffic and Domain Rating (Ahrefs) — as one self-contained HTML page with ranked charts, a three-month trend, a multi-year overlay and a data table. Use when asked to benchmark a product against competitors, size up a market, answer "how much traffic does X get compared to Y", build a competitive landscape, or produce a traffic/authority comparison deck or page.
4---
5 
6# competitor-traffic-report
7 
8Three metrics, three different questions. Do not average them or treat one as a proxy for another:
9 
10| Metric | Source | Answers |
11|---|---|---|
12| Monthly visits | SimilarWeb | total demand, every channel |
13| Organic traffic | Ahrefs | how much of it search is producing |
14| Domain Rating | Ahrefs | backlink authority — the structural position |
15 
16Visits and organic move on a single viral page. **DR does not**, which is why a gap in DR says
17more about where a company actually sits than a good traffic month does.
18 
19## Run
20 
21```bash
22export AHREFS_API_KEY=... # required
23export BRANDDEV_API_KEY=... # optional, for logos
24S=skills/competitor-traffic-report/scripts
25 
26node $S/fetch-traffic.js acme.com rival1.com,rival2.com,rival3.com --out /tmp/data.json
27node $S/build-report.js /tmp/data.json "AI presentation tools, ranked" --out /tmp/report.html
28```
29 
30Open the HTML, or publish it with the **Artifact** tool. It is self-contained — logos inlined as
31data URIs, no external requests — so it survives a strict CSP.
32 
33The focus domain is coloured orange and ranked in every chart; competitors take a five-step blue
34ramp ordered by rank, so colour carries magnitude instead of being decoration.
35 
36## Choosing the competitor set
37 
38Whoever asked usually names three or four. Fill the set out to **20–40** before running: a
39five-company chart cannot show where anyone sits, and the interesting findings (how much of the
40market one player holds, how many are shrinking) need the tail. Sources for names, cheapest first:
41 
42- the client's own "alternatives to X" and comparison pages;
43- an `X alternatives` / `best X tools` SERP, read deep enough to reach the top 100;
44- Ahrefs `competitors_overview` for domains ranking on the same keywords.
45 
46Drop anything that is not a real peer: a general-purpose giant (Adobe, Google) dominates every
47chart while competing for none of the same buyers, and its presence compresses everyone else into
48the bottom decile. Same for a friendly company the requester does not consider a rival — ask.
49 
50**Subdomains are already counted.** SimilarWeb's root-domain figure includes them, so listing both
51`acme.com` and `app.acme.com` double-counts and buries the real number. (Verified: wikipedia.org
523.53B vs en.wikipedia.org 0.88B.) List the root only.
53 
54## Constraints worth knowing before the first run
55 
56- **SimilarWeb rate-limits by IP**, roughly 15 calls per window, and the block lasts hours. The
57 script paces at 15s and still misses on a long list — rerun to fill gaps, or spread a 40-domain
58 set across two sessions. The `X-Extension-Version` header is mandatory; a browser User-Agent
59 alone returns 403.
60- **A returned `0` means "below SimilarWeb's detection floor", not "no traffic".** The template
61 drops those from the charts rather than ranking a live site last. For a domain you own, read
62 Search Console instead.
63- **Ahrefs organic uses `mode=subdomains`.** Domain mode silently excludes the `www.` host, which
64 reads as an empty site for anyone whose canonical is `www.`.
65- **The free DR endpoint costs no API units.** Organic history does — one row per month per domain.
66 
67## Publishing the report
68 
69The Ahrefs licence (`ahrefs.com/legal/domain-rating-license`) grants a royalty-free right to
70display and publish DR data **provided** the attribution *Domain Rating by [Ahrefs](https://ahrefs.com/)*
71appears next to it with a live link. The template ships that line; do not remove it. The same
72licence prohibits reselling the data or using it to build something that competes with Ahrefs.
73 
74## Reading the result
75 
76The report shows position. The story is usually in a gap between two of the three metrics:
77 
78- **Organic rank far above visits rank** — search is carrying more than its share; paid, social or
79 direct is the thin part.
80- **DR far above organic** — the authority is there and the content is not converting it. This is
81 the most actionable gap, because it is a content problem, not a link-building one.
82- **DR far below peers at similar traffic** — the traffic is bought or borrowed, and it stops the
83 moment spend stops.
84- **A near-identical name at a fraction of the DR** (`brand.app` at DR 87 vs `brand.com.ai` at 38)
85 is a copycat domain, not a competitor.
86 
87State the denominator and the window beside any figure taken from this report. Both sources are
88modelled estimates, least reliable exactly where it matters most — the small end.
89 

Discussion

Alternatives

Company valuationEstimate the intrinsic value of a public company using DCF, relative (peer multiple) and sum-of-parts (SOTP) methods, then triangulate to an implied share price with upside/downside versus the current market price. Use this skill whenever the user asks: what is AAPL worth", "valuation of NVDA", "fair value of TSLA", "intrinsic value", DCF for MSFT", "build a DCF", "discounted cash flow", "WACC", "terminal value", implied share price", "upside to fair value", "is X overvalued/undervalued", relative valuation", "peer comparison valuation", "EV/EBITDA target", "SOTP", sum of the parts", "how much is [company] worth", "price target from fundamentals", value this company", or any ticker in the context of computing intrinsic or relative valuation. Default to running ALL three methods (DCF + relative + SOTP-if-applicable) and presenting a blended implied price with a sensitivity table. Do not answer valuation questions from memory — always run the workflow. · MITCompetitor gapFind keywords a competitor ranks for that the user's site doesn't — the content gap, prioritized by volume and winnability. Use when asked "what does competitor.com rank for", "keyword gap vs X", "steal competitor keywords", or "why do they outrank us".Business & ops · MITAd angle minerMine the highest-converting ad angles from customer reviews, Reddit complaints, support tickets, and competitor ads. Extracts actual pain language, competitor weaknesses, and outcome phrases that real buyers use. Outputs a ranked angle bank with proof quotes and recommended ad formats per angle.Business & ops · MITX audience insightsRead your X (Twitter) audience and niche from real data. Pull a handle's recent tweets (yours or a competitor's) with likes, replies, and views, see which formats and hooks are working, read the repliers on a tweet (X gates likers, so repliers are the signal), and scan a niche query for top tweets. Powered by Apify, no login. Triggers on "analyze my tweets", "what is working on X", "read the replies", "competitor tweets", "who is engaging". Not for writing a tweet (use x-post-writer).Marketing · MIT