Install any skill in seconds. Free to start, no credit card required.
Get Started Free →mkurman/competitor-profiling
When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions 'competitor profile,' 'competitor research,' 'competitor analysis,' 'profile this competitor,' 'analyze competitor,' 'competitive intelligence,' 'competitor deep dive,' 'who are my competitors,' 'competitor landscape,' 'competitor dossier,' 'competitive audit,' or 'research these competitors.' Input is a list of competitor URLs. Output is structured competitor profile markdown files.
Passed 12 of 19 test cases with the skill, and 6 of 19 without it.
and 6 more in the full report
8 fixed6 passed either way8 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
For a quick scan profiling run on a target domain, which specific pages are designated to be scraped?
| Checked | Without skill | With skill |
|---|---|---|
| Limits scraping exclusively to the homepage and pricing page. | Missed | Passed |
The instructions your model reads when the skill loads.
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 timescrapes/<page-name>.mdseo/<endpoint-name>.jsonreviews/<source>.md (cleaned text) or .json (raw)The synthesized profile (<competitor-slug>.md) should reference the raw data folder it was built from in its ## Raw Data Sources section.
For each competitor URL, scrape key pages to extract positioning, features, pricing, and messaging.
Use Firecrawl Map to discover the competitor's site structure and identify key pages:
test cases passed, vs 6 / 19 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.