
Competitor Profiling
Turn a list of competitor URLs into structured competitive-intelligence markdown profiles for positioning, validation, and later comparison pages.
Overview
competitor-profiling is an agent skill most often used in Idea (also Validate, Launch) that researches competitor URLs and writes structured competitor profile markdown files.
Install
npx skills add https://github.com/coreyhaines31/marketingskills --skill competitor-profilingWhat is this skill?
- Accepts competitor URLs and produces structured competitor profile markdown files
- Combines live site review with SEO and market context (depth: quick scan vs deep dive per user choice)
- Reads `.agents/product-marketing.md` (or legacy paths) when present to avoid redundant questions
- Explicit handoff: use `competitors` skill for comparison/alternative pages; `sales-enablement` for battle cards
- Triggers on phrasing like competitor dossier, competitive audit, and competitor landscape
- Skill metadata version 2.0.0
Adoption & trust: 28.3k installs on skills.sh; 32.4k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You know who might beat you in the market but only have scattered notes and tab clutter—not reusable profiles your agent can cite later.
Who is it for?
Indie SaaS founders with 3–20 named competitor URLs who want dossiers before positioning, pricing, or SEO comparison content.
Skip if: Pure technical architecture decisions with no market actors—or when you only need a single battle card without full site profiles (use sales-enablement).
When should I use this skill?
User mentions competitor profile, competitor research, competitive intelligence, competitor landscape, or provides competitor URLs to analyze.
What do I get? / Deliverables
You get versioned competitor profile markdown aligned to your product context, ready to drive comparison pages via the competitors skill or battle cards via sales-enablement.
- Structured competitor profile markdown files per URL
- Documented depth level (quick scan vs comprehensive) in the run
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Competitor URL profiling is the canonical first shelf in Idea when you are mapping the landscape before committing to build. Outputs are dossier-style competitor profiles—not your own landing copy—so the primary subphase is competitors, not audience or pricing.
Where it fits
Profile five direct rivals from URLs before you pick a wedge feature for v1.
Re-read profiles to cut scope where incumbents already ship table-stakes capabilities.
Feed accurate competitor claims into comparison keywords before invoking the competitors skill for `/vs` pages.
How it compares
Deep URL-to-profile intelligence for your repo; pair with the competitors skill when you need customer-facing alternative pages, not one generic chat brainstorm.
Common Questions / FAQ
Who is competitor-profiling for?
Solo builders and small teams doing product marketing who need structured competitor dossiers from real URLs before positioning and launch copy.
When should I use competitor-profiling?
In Idea when mapping rivals; in Validate when scope depends on competitive gaps; in Launch when SEO comparison pages need accurate source profiles.
Is competitor-profiling safe to install?
It may guide live site research via your agent’s browsing tools—review the Security Audits panel on this Prism page and avoid sending secrets in prompts.
Workflow Chain
Then invoke: competitors, sales enablement
SKILL.md
READMESKILL.md - Competitor Profiling
# Competitor Profiling You are an expert competitive intelligence analyst. Your goal is to take a list of competitor URLs and produce comprehensive, structured competitor profile documents by combining live site scraping with SEO and market data. ## Initial Assessment **Check for product marketing context first:** If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered. Before profiling, confirm: 1. **Competitor URLs** — the list of competitor website URLs to profile 2. **Your product** — what you do (if not in product marketing context) 3. **Depth level** — quick scan (key facts only) or deep profile (full research) 4. **Focus areas** — any specific dimensions to prioritize (e.g., pricing, positioning, SEO strength, content strategy) If the user provides URLs and context is available, proceed without asking. --- ## Core Principles ### 1. Facts Over Opinions Every claim in a profile should be traceable to a source — scraped page content, review data, or SEO metrics. Label inferences clearly. ### 2. Structured and Comparable All profiles follow the same template so they can be compared side by side. Consistency matters more than completeness on any single profile. ### 3. Current Data Profiles are snapshots. Always include the date generated. Flag anything that looks stale (e.g., "pricing page last updated 2023"). ### 4. Honest Assessment Don't exaggerate competitor weaknesses or downplay their strengths. Accurate profiles are useful profiles. --- ## Saving Raw Data Before synthesizing the profile, persist all raw scrape, SEO, and review data to disk so it can be re-read, audited, or re-used later without re-running expensive API calls. **Directory layout** (relative to project root): ``` competitor-profiles/ ├── raw/ │ └── <competitor-slug>/ │ └── <YYYY-MM-DD>/ │ ├── scrapes/ # one .md file per scraped page (homepage.md, pricing.md, ...) │ ├── seo/ # one .json file per DataForSEO call (backlinks-summary.json, ranked-keywords.json, ...) │ └── reviews/ # one .md or .json file per review source (g2.md, capterra.md, ...) ├── <competitor-slug>.md # final synthesized profile └── _summary.md # cross-competitor summary ``` Rules: - `<competitor-slug>` is lowercase, hyphenated (e.g. `responsehub`, `safe-base`) - `<YYYY-MM-DD>` is the date the data was pulled — supports re-running and diffing snapshots over time - Save each Firecrawl scrape as raw markdown to `scrapes/<page-name>.md` - Save each DataForSEO response as raw JSON to `seo/<endpoint-name>.json` - Save each review source to `reviews/<source>.md` (cleaned text) or `.json` (raw) - Always create the date folder fresh on a new run; never overwrite a prior date's data The synthesized profile (`<competitor-slug>.md`) should reference the raw data folder it was built from in its `## Raw Data Sources` section. --- ## Research Process ### Phase 1: Site Scraping (Firecrawl) For each competitor URL, scrape key pages to extract positioning, features, pricing, and messaging. #### Step 1: Map the site Use **Firecrawl