Research competitors, analyze their messaging, and generate a positioning document with category definition, differentiation claims, value propositions, and proof points. Chains web research, competitor site analysis, and review mining to produce a positioning doc ready for website copy and sales deck use. Use when a product marketing team needs to define or refresh positioning ahead of a launch, rebrand, or competitive shift.
npx gooseworks install --all # then, in Claude Code, Cursor, or Codex: /gooseworks use the launch-positioning-builder skill
Research the competitive landscape and produce a complete positioning document — category definition, differentiation claims, value props, proof points, and messaging hierarchy. Output is directly usable in website copy, sales decks, and investor materials.
Built for: First PMM hire at a seed/Series A startup, or a founder wearing the product marketing hat. The output should be opinionated, not a generic template.
For each competitor, research and extract:
Search: "[competitor name]" site:[competitor-url]
Search: "[competitor name]" positioning OR "we help" OR "the only"
Fetch: competitor homepage, pricing page, about pageExtract from each competitor:
If competitors have G2/Capterra reviews, scan for:
Search for competitor ad copy:
Search: "[competitor name]" advertisement OR "sponsored"Ad copy reveals what competitors believe converts — their sharpest positioning.
Build the positioning doc using April Dunford's framework adapted for early-stage:
| Approach | When to Use | Example |
|---|---|---|
| Existing category | You compete head-to-head | "CRM for startups" |
| Subcategory | You serve a niche better | "AI-native sales engagement" |
| New category | You do something genuinely different | "Revenue orchestration platform" |
Decision criteria:
What would your customer do if you didn't exist?
Map each differentiator to a customer value:
| Unique Attribute | Value to Customer | Proof Point |
|---|---|---|
| [What you have] | [Why they care] | [Evidence] |
| [What you have] | [Why they care] | [Evidence] |
| Level | Message | Use Where |
|---|---|---|
| Positioning statement | For [ICP] who [pain], [Product] is the [category] that [key differentiator]. Unlike [alternative], we [unique value]. | Internal alignment, PR |
| Primary headline | [Outcome-driven claim] | Homepage hero, ads |
| Supporting messages (3) | [Value prop 1], [Value prop 2], [Value prop 3] | Feature sections, sales deck |
| Proof line | [Metric or customer quote] | Below the fold, case studies |
Create a 2x2 positioning matrix:
[Dimension A: e.g., Ease of Use]
High
|
[You] | [Competitor A]
|
──────────────────┼──────────────────
|
[Competitor C] | [Competitor B]
|
Low
Low ──────────────────────── High
[Dimension B: e.g., Enterprise-readiness]Choose dimensions where you win on at least one axis. Avoid dimensions where you lose on both.
# Positioning Document — [Product Name]
Created: [DATE] | Trigger: [launch/rebrand/competitive shift]
---
## Positioning Statement
For [ICP] who [pain point],
[Product] is the [category]
that [key differentiator].
Unlike [primary alternative],
we [unique value that matters to ICP].
---
## Category
**Category:** [name]
**Approach:** [Existing / Subcategory / New]
**Rationale:** [1-2 sentences on why this framing]
---
## Competitive Landscape
### Direct Competitors
| Competitor | Positioning | Strength | Weakness (your wedge) |
|-----------|-------------|----------|----------------------|
| [Name] | "[Their tagline]" | [What they do well] | [Where they fall short] |
### Alternative Solutions
- [Manual process / spreadsheet / hiring]
- [Adjacent tool category]
---
## Value Propositions
### Primary: [Headline claim]
[2-sentence explanation + proof point]
### Secondary A: [Value prop]
[2-sentence explanation + proof point]
### Secondary B: [Value prop]
[2-sentence explanation + proof point]
---
## Proof Points Library
### With Metrics
- "[Customer quote with number]" — [Source]
- [Metric]: [claim] — [evidence]
### Logos & Social Proof
- [Customer logos to feature]
- [Review platform ratings]
---
## Messaging by Audience
### [Persona 1: e.g., Founder/CEO]
- **Pain:** [What keeps them up at night]
- **Hook:** "[Message that resonates]"
- **Proof:** [Evidence they'd trust]
### [Persona 2: e.g., Head of Growth]
- **Pain:** ...
- **Hook:** ...
- **Proof:** ...
---
## Positioning Map
[2x2 matrix with chosen dimensions]
---
## Where to Deploy This Positioning
| Asset | Key Message | Priority |
|-------|------------|----------|
| Homepage hero | [Primary headline] | P0 — update now |
| Sales deck slide 2-3 | [Positioning statement] | P0 |
| LinkedIn company tagline | [One-liner] | P1 |
| Cold email opening line | [Pain hook] | P1 |
| G2 profile description | [Category + differentiator] | P2 |
---
## What We're NOT Saying
(Guardrails to keep messaging consistent)
- We don't claim to be [X] — that's [competitor]'s territory
- We don't target [segment] — outside our ICP
- We avoid the word "[buzzword]" — overused, means nothingSave to the current working directory as positioning-[YYYY-MM-DD].md (or user-specified path).
| Component | Cost |
|---|---|
| Web research (competitor sites) | Free |
| Review mining (if using review-site-scraper) | ~$0.50-1.00 |
| All analysis and positioning | Free (LLM reasoning) |
| Total | Free — $1 |
review-site-scraper for review-based insightsAssemble an expert/educator motion-graphic LISTICLE video ad from a config — a spoken authoritative voiceover carries a numbered listicle while N web-animated hyperframe beats (HTML plus the Web Animations API, one branded design system of alternating tiles, big hero numerals, and glass-pill callouts) are rendered frame-by-frame via Playwright and anchored to the VO's word-level timestamps, periodic color-graded B-roll windows give visual breath, and captions burn ONLY inside those B-roll windows (2-word chunks, ASS Format header carrying a Name field so none drop) with the VO mixed under a low music bed. This is the FREE deterministic assembly stage (Playwright beat render plus ffmpeg concat plus window-masked caption burn plus VO-and-music mix plus final composite) — the VO, the music bed, and the stock B-roll come from create-vo-elevenlabs, create-music-elevenlabs, and media-proxy. Use for the vo-anchored-motion-listicle format.
Assemble a stop-motion hand-swatch-cycle product-demo ad from a config — a sequence of still PLATES (one hand swiping a single-barrel cosmetic across a cream skin-patch, the barrel + swatch changing per plate while the hand, background, crop, and lighting stay locked) is PNG→mp4 loop-encoded at each plate's own stop-motion hold (fast motion frames 150–250ms, per-shade ~380ms, hero beats 1100–1800ms), concat-demuxed with HARD cuts into a silent master, closed on a Playwright HTML-rendered branded end card (serif tagline + sans subtitle + real logo SVG over a hero BG, never AI-rendered text), and muxed with a pre-sourced music track playing under the end card with a fade tail (no VO). This is the FREE deterministic assembly stage (loop-encode + concat-demux + end-card render + music mux); the master-anchor plate, shade plates, and end-card BG come from create-image-gpt-image-fal and the track from create-music-elevenlabs. Use for the stopmotion-hand-swatch-cycle format.
Assemble a split-screen creator ad from a config — a two-zone vertical composite where a supplied AI-creator lip-sync take fills the BOTTOM ~48% while real 16:9 product/demo clips run uncropped in the TOP ~52%, each top clip contain-fit with a darkened blurred cover-scale fill of the same clip (never black bars), a 3px brand-color divider between the zones, the creator slice cover-fit per the per-scene VO timing, scenes hard-concatenated with the body audio being the concatenated creator VO slices, an end card held on the last sharp frame ~3s, then the ASSEMBLED cut transcribed with local Whisper (not the raw VO — concat drops inter-scene silence) and word-level captions burned in the chosen style. This is the FREE deterministic assembly + caption stage (two-zone composite + blurred fill + divider + hard-concat + end card + captions); the VO comes from create-vo-elevenlabs, the anchor from create-image-gpt-image-fal, and the whole-VO lip-sync from a paid VEED Fabric 1.0 take (a no-atom upstream input). Use for the split-screen-creator format.