Competitive research is one of those tasks that everyone knows they should do and almost nobody does well.
You open a dozen browser tabs. You check competitor pricing pages. You try to remember whether that headline was different last month. You throw some notes into a spreadsheet. Three hours later you have something that's already partially outdated, and you still aren't sure what any of it actually means for your business.
I got frustrated enough with this that I built a tool to do it automatically. Here's how it works.
What the tool does
You enter your company URL. That's it.
The system automatically identifies your top five competitors, analyzes each of their websites using live data, and generates a plain-English executive brief. No manual research, no spreadsheets, no guessing.
The core flow:
- Competitor detection — SnapAPI analyzes your company's URL to extract your description, positioning, and product category. Claude identifies your five most direct competitors from that context.
-
Live analysis — SnapAPI's
/v1/analyzeendpoint visits each competitor's site in a real Chromium browser and returns structured data: primary CTA, page type, word count, detected tech stack, navigation items, OG title, description. - AI-written brief — Claude turns the structured data into a plain-English intelligence report with executive-level framing.
- Delivery — The report goes to your inbox via Resend within 2-3 minutes of submission.
What's in the report
The report is structured in four sections:
Executive Summary — three bullets identifying the most important signals across your competitive landscape this week.
Competitor cards — one card per competitor with: their current CTA, headline, word count, tech stack, and a 3-4 sentence AI-written analysis of what they're doing and what it signals.
Intelligence Summary — four numbered strategic takeaways synthesized across all five competitors.
What This Means — three bullets on the direct implications for your business.
A real example
I ran this for an insurance company in Indiana. Here's one of the signals the report surfaced.
State Auto Insurance's homepage H1 has changed to:
"We are now part of Liberty Mutual."
That's a live finding. There's also a phone service outage notice active on the site, and their careers links redirect to Liberty Mutual's job board. The merger integration is publicly underway.
The AI brief for that competitor read:
State Auto is in active brand and operational transition. This typically creates 60-90 days of customer and agent uncertainty — a window for competitors with stable agent networks and clear product continuity to capture movement.
That kind of specific, actionable signal — found automatically, written clearly — is what the report delivers. No one manually checking tabs would catch the phone outage banner or the careers redirect. The tool caught both because it's doing a real browser analysis of the live page.
How it was built
The technical stack is straightforward:
// npm install snapapi-sdk @anthropic-ai/sdk
const { SnapAPI } = require('snapapi-sdk');
const client = new SnapAPI(process.env.SNAPAPI_KEY);
// Analyze competitor site — returns structured page data
const data = await client.analyze('https://competitor.com', {
screenshot: false
});
// data.primary_cta, data.og_title, data.word_count,
// data.technologies, data.page_type, data.navigation
SnapAPI (snapapi-sdk) handles all the browser work — visiting each page, rendering JavaScript, extracting structured data. No Puppeteer setup, no browser binary, no crash recovery. The /v1/analyze endpoint returns everything I need in one call per competitor.
Claude Sonnet generates the per-entry summaries and then a second Claude Haiku call synthesizes the cross-company executive sections. The prompt is straightforward: here's what each competitor is doing, write a brief that tells a business executive what matters and why.
Resend delivers the report HTML. The email is generated from a template that renders the full report inline — no attachments, no login required. The report just lands in your inbox.
LemonSqueezy handles the $49 payment. The flow is: locked report arrives in your inbox (first competitor fully visible, four locked), click unlock, pay $49, full report delivered instantly via webhook.
The locked report approach is deliberate. I wanted to show real value before asking for money. If the first competitor card is useful, the remaining four are worth $49. If it's not, nothing is owed.
The competitor detection step
The part I found most interesting to build was automatic competitor detection. Rather than asking users to manually enter competitor URLs, the tool derives them from the company URL:
// Step 1: Analyze the company's own site
const companyData = await client.analyze(companyUrl);
// Step 2: Ask Claude to identify competitors from the context
const competitors = await anthropic.messages.create({
model: 'claude-haiku-4-5-20251001',
max_tokens: 200,
messages: [{
role: 'user',
content: `Company: ${companyUrl}
Title: "${companyData.og_title}"
Description: "${companyData.og_description}"
List exactly 5 direct competitor homepage URLs, one per line, no explanation.`
}]
});
// Parse the 5 URLs from Claude's response
This works surprisingly well. For the insurance company example, Claude correctly identified State Farm, Progressive, Erie Insurance, Auto-Owners, and GEICO as the five most relevant competitors — without any manual input.
The result
The full report for five competitors takes about 2-3 minutes to generate. That includes five live SnapAPI analyze calls, five Claude summary calls, one cross-company executive synthesis call, and Resend delivery.
The output is genuinely useful. The State Auto merger signal would have taken a human analyst hours to find. The tool found it in seconds because it's doing real browser analysis — not cached data, not scraped HTML from last week, but what's actually on the page right now.
$49. One report. Delivered in minutes. No subscription.
You enter your company URL. The report arrives in your inbox.
Top comments (0)