For founders who don't know where to start with paid ads. Analyzes ICP, competitor ad presence, budget constraints, and product type to recommend which 1-2 paid channels to start with and provides a 90-day ramp plan. Prevents the common mistake of spreading a small budget across too many platforms.
npx gooseworks install --all # then, in Claude Code, Cursor, or Codex: /gooseworks use the paid-channel-prioritizer skill
Answer the question every early-stage founder asks: "Where should I run ads?" This skill analyzes your product, ICP, competitors, and budget to recommend the right 1-2 channels to start with — plus a 90-day plan to get there.
Core principle: A $3K/month ad budget split across Google, Meta, LinkedIn, and TikTok means $750/channel — not enough for any platform to learn and optimize. This skill picks the best 1-2 channels and concentrates budget where it'll compound fastest.
Where does your buyer look when they have a problem?
| Buyer Journey Stage | Likely Channel | Signal |
|---|---|---|
| "I need a tool for X" (active search) | Google Search | High-intent keywords exist |
| "I'm browsing and see something relevant" (passive) | Meta (FB/IG) | Visual/emotional product |
| "I need to solve this at work" (professional) | B2B decision-maker targeting | |
| "Everyone's talking about this" (social proof) | Twitter/X Ads | Category is trending |
| "I watch content about this" (education) | YouTube | Long consideration cycle |
| "I discovered it through content" (entertainment) | TikTok | B2C, young audience, visual |
Use web search to check publicly accessible ad libraries and gather competitor ad intelligence:
web_search: site:facebook.com/ads/library "[competitor name]"
web_search: "[competitor name]" Google Ads OR PPC OR paid search
web_search: "[competitor name]" LinkedIn Ads OR sponsored
web_search: "[competitor name]" advertising strategyThe Meta Ad Library (facebook.com/ads/library) and Google Ads Transparency Center (adstransparency.google.com) are publicly accessible — search them directly to see what competitors are running.
Build a competitor channel map:
| Competitor | Meta | YouTube | TikTok | |||
|---|---|---|---|---|---|---|
| [Comp A] | [Active/Not found] | [N ads] | [Active/Not found] | ... | ... | ... |
| [Comp B] | ... | ... | ... | ... | ... | ... |
Insight: Where competitors are spending = validated channel. Where they're absent = opportunity or dead end.
Score each channel for this specific product:
| Factor (Weight) | Google Search | Meta | YouTube | TikTok | ||
|---|---|---|---|---|---|---|
| Buyer intent (25%) | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] |
| Targeting precision (20%) | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] |
| Competitor validation (15%) | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] |
| Budget efficiency (15%) | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] |
| ICP reachability (15%) | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] |
| Creative requirements (10%) | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] | [1-10] |
| Weighted Score | [X/10] | [X/10] | [X/10] | [X/10] | [X/10] | [X/10] |
| Channel | Best For | Worst For | Min Viable Budget | Creative Needs |
|---|---|---|---|---|
| Google Search | High-intent capture, B2B, established category | New categories nobody searches for | $1K/mo | Text ads (low barrier) |
| Meta (FB/IG) | Visual products, B2C, retargeting, lookalikes | Niche B2B with tiny audience | $1K/mo | Images + video (medium) |
| B2B enterprise, specific titles/industries | B2C, budget-conscious startups | $3K/mo | Professional content (medium) | |
| YouTube | Education-heavy products, long consideration | Impulse purchases, tiny budgets | $2K/mo | Video production (high) |
| Twitter/X | Dev tools, trending categories, tech audiences | Mainstream B2C, precise targeting | $1K/mo | Short-form copy (low) |
| TikTok | B2C, Gen Z/millennial, visual/fun products | B2B enterprise, older audience | $500/mo | Short video (high frequency) |
Pick the #1 channel based on:
Pick channel #2 only if:
| Budget Level | Recommendation |
|---|---|
| < $1.5K/mo | 1 channel only — concentrate everything |
| $1.5K-3K/mo | 1 primary + retargeting — primary channel + Meta/Google retargeting ($300-500) |
| $3K-7K/mo | 2 channels — 65% primary, 25% secondary, 10% retargeting |
| $7K+/mo | 2-3 channels — diversify with testing budget |
Week 1: Setup
Week 2-3: Learn
Week 4: First Optimization
# Paid Channel Strategy — [Product Name] — [DATE]
## Your Profile
- Product: [Name]
- Model: [SaaS / B2C / etc.]
- ICP: [Summary]
- Monthly budget: $[X]
- Conversion goal: [Goal]
---
## Channel Scoring
| Channel | Score | Verdict |
|---------|-------|---------|
| [Top channel] | [X/10] | **PRIMARY — Start here** |
| [Second channel] | [X/10] | **SECONDARY — Add in month 2** |
| [Third channel] | [X/10] | Test later if budget grows |
| [Others] | [X/10] | Not recommended now |
---
## Why [Primary Channel]
**Top reasons:**
1. [Reason — tied to their specific product/ICP]
2. [Reason]
3. [Reason]
**What competitors are doing there:** [Evidence]
**Minimum viable budget:** $[X]/mo
**Expected cost per conversion:** $[X-Y] range (category benchmark)
---
## Why NOT [Channel They Might Assume]
[Brief explanation of why the obvious choice isn't right — e.g., "LinkedIn is too expensive for your $2K budget — you'd only reach ~500 people/month"]
---
## Budget Allocation
| Channel | Monthly Budget | Purpose |
|---------|---------------|---------|
| [Primary] | $[X] | [Prospecting / Lead gen] |
| [Retargeting] | $[X] | [Bring back visitors] |
| [Secondary — Month 2] | $[X] | [Test — evaluate after 30 days] |
---
## 90-Day Ramp Plan
### Month 1: [Primary Channel] Launch
[Specific weekly actions]
### Month 2: Optimize + Test [Secondary]
[Specific actions]
### Month 3: Scale or Pivot
[Decision criteria]
---
## Pre-Launch Checklist
- [ ] Landing page live and tested
- [ ] Conversion tracking installed and verified
- [ ] Initial audiences / keywords built
- [ ] 3 ad variants ready
- [ ] Daily budget cap set ($[X]/day)
- [ ] Weekly review scheduledSave to channel-strategy-[YYYY-MM-DD].md in the current working directory (or user-specified path).
| Component | Cost |
|---|---|
| Competitor ad research (web search) | Free |
| Channel analysis and planning | Free (LLM reasoning) |
| Total | Free |
Render a 'model comparison grid' video from a config — a fal-style "same prompt, N contenders" showcase — a dark real-DOM stage where per beat a monospace prompt fades in centered, docks to a small top strip, then a labeled 2-4 panel grid (static images OR muted video clips, mixable per cell) staggers in and holds for comparison, plus a minimal end card — frame-stepped via Playwright (video cells are frame-seeked deterministically) and encoded with FFmpeg. Deterministic assembly, FREE (cell media comes from create-image-fal / create-video-fal, music from create-music-elevenlabs), text stays pixel-crisp. Use for the model-comparison-grid format.
Render a punchy ~12s vertical (9:16) music-only direct-response OFFER ad as a 4-beat kinetic-typography film — HEADLINE slam → real PRODUCT drop → CLAIM/proof → CTA pill — from one config of copy slots, a real product photo, a brand palette, fonts, bpm, and beat split. DETERMINISTIC + FREE (a bundled Remotion project; springs + interpolate, no AI-gen for visuals). Backgrounds are engine gradient divs off the palette, props are inline SVG, the ONLY composited bitmap is the REAL product photo (objectFit:contain, never stretched), and ALL headline/claim/CTA/URL/wordmark text is typeset in the engine — never AI-rendered (the format's credibility guard). A driver binds the config to Remotion input props, renders the 9:16 master, and derives a 1:1 center-crop with ffmpeg. Two gating checks run before render (claim verbs must match the product's physical format; the claim beat needs an edge-entry mechanism prop). Use for the motion-graphics-offer-ad format.
Assemble a myth-vs-fact kinetic-typography explainer video ad (≈29.5s, 9:16) from N myth/fact pairs + hook / turn / punch copy + palette + a brand end-card PNG + a VO track — a hook, 3 red-strike MYTH cards that flip to teal-check FACT cards (per-line strikethrough that crosses EVERY wrapped line), a "what actually works" turn, an optional proof reveal, a punch line, and a static end card. DETERMINISTIC assembly with ZERO AI-gen visuals — HTML hyperframes rendered frame-exact via Playwright (`window.renderAt(t)`, animation a pure function of beat-local time), Whisper beat-snap to VO word onsets, concat at a uniform fps, karaoke `.ass` captions burned last (suppressed on the proof + end-card beats), and a VO + optional music mix (music −20 dB, `amix normalize=0`, tail fade). FREE (Python + Playwright + ffmpeg); the recipe supplies the copy / palette / end-card / VO and gates the paid VO / music / Whisper calls to their own capabilities. Use for the myth-vs-fact format.