A complete marketing department in one skill. Website and landing-page audits with weighted 0-100 scores, copywriting with panel scoring and AI-slop removal, an 18-tactic ad hook engine, GEO/AEO for getting cited by ChatGPT/Perplexity/AI Overviews, paid-ads creative diagnosis and production briefs, email sequences, LinkedIn/X writing, launch playbooks, positioning and offer design, competitor teardowns, app store optimization, honest analytics and test design. Use for ANY marketing task — audit, write, rewrite, diagnose, score, plan, launch, position, price, analyze — whenever the user mentions marketing, growth, conversion, copy, ads, hooks, CPM, ROAS, SEO, GEO, email, social, landing pages, funnels, launches, competitors, brand, positioning, pricing, or app stores, or says "my landing page sucks", "nobody's converting", "why are my CPMs up", "AI doesn't recommend us", "write me 20 hooks". Route via the table inside; fan out subagents for multi-dimensional work. Not for pure engineering, legal, or finance.
npx skills add https://github.com/Yuzzyuk/marketing-os --skill marketing-os
One skill, fourteen modules, the full surface a working marketer touches. Built by tearing down the most-starred marketing skill repos on GitHub (44K-star collections down to 100-star craft pieces), keeping what worked, and fixing what every one of them got wrong.
Three rules hold across every module, because they are what the existing ecosystem uniformly lacks:
Read brand-context.md if it exists (working directory, .claude/, or .agents/). It holds the product, ICP, positioning, proof, voice and constraints, and it changes nearly every judgement below. If absent: proceed, say the output is un-contextualised, and offer to generate the file from what you learn — brand-context.template.md in this skill is the blank.
Identify the task type, then open ONLY the module file(s) needed. Do not load all references — the routing below exists so you load ~1 file, not 13.
| The user wants to... | Module | Also often needed |
|---|---|---|
| Audit/review/score/roast a website, landing page, funnel; "why isn't this converting" | references/audit.md | audit-rubric.md |
| Get cited by ChatGPT/Perplexity/AI Overviews; GEO, AEO, llms.txt, "AI doesn't recommend us" | references/geo.md | geo-engines.md |
| Write/rewrite anything: headlines, ads, pages, "make this punchier", "sounds AI-written" | references/copy.md | copy-frameworks.md, slop-patterns.md |
| Hooks for ads/video: "write me 20 hooks", thumbstop problems, hook batches per segment | references/hooks.md | paid-ads.md, slop-patterns.md |
| Diagnose paid ads: CPM up, ROAS down, fatigue, "what to test next", competitor's ads | references/paid-ads.md | ads-diagnostics.md, hooks.md |
| Email: welcome/nurture/launch sequences, subject lines, deliverability | references/email.md | slop-patterns.md |
| LinkedIn/X posts, personal brand, content that doesn't read as AI | references/social.md | slop-patterns.md |
| Launch a product, feature, or Product Hunt run | references/launch.md | copy.md |
| Positioning, category, offer design, pricing page strategy | references/positioning.md | — |
| Tear down a competitor: site, ads, positioning | references/competitive.md | paid-ads.md |
| App Store / Google Play: listing, screenshots, keywords, install rate | references/app-store.md | store-specs.md |
| Read performance data honestly, design a test, "did this work?" | references/analytics.md | — |
Multi-part requests load multiple modules. "Audit my site and rewrite the homepage" = audit.md then copy.md, carrying the audit findings forward rather than re-researching.
Every de-slop pass — copy, email, social — runs slop-patterns.md before delivery. No exceptions. A reader who clocks output as AI-written discounts the claim, not just the prose.
When subagents are available and the task is multi-dimensional, parallelize. This is the difference between a 15-minute audit and a 2-hour one.
Full marketing audit — spawn six, one per scoring dimension (messaging, conversion, search, competitive, trust, growth), each with the URL set and its slice of audit-rubric.md. Synthesize their sub-scores into the weighted total yourself; never delegate the synthesis, because the pattern across dimensions is the product.
GEO audit — spawn one per target question to query engines and record who gets cited, plus one for on-page extractability.
Competitor teardown — one per competitor.
Copy generation — one per angle family (problem/outcome/contrarian/identity/mechanism/offer) generating 3-4 variants each; you run the scoring panel on the merged set.
Paid ads — one per concept cluster for classification; you do the fatigue diagnosis on the merged concept table.
Rules for fan-out: give each subagent its exact reference slice and output schema; launch all in one turn; never let a subagent write the final report. If subagents are unavailable, work the dimensions sequentially in the order listed — the sequence is deliberate.
Reports follow this skeleton, adapted per module:
# [Deliverable] — [subject]
[date] · Score: XX/100 (where applicable) · Basis: [what you had access to]
## The one thing
[The pattern behind the findings, one paragraph. If they read nothing else.]
## Scorecard / Findings
## Do these first
[3-5 items, each with the actual fix written out, effort S/M/L, confidence H/M/L]
## What's already working
[Never skip. All-negative reports read as generated.]
## What I couldn't determine
Write reports to files ([module]-[subject]-[date].md), not into the chat — these are documents people forward.
Copy deliverables lead with the copy, reasoning after. Recommended option first, scored runners-up, then the single sharpest test contrast.
[NEED: figure] and flag it. A plausible fake number in marketing copy is how a client ships a false-advertising claim.analytics.md has the discipline.references/
├── audit.md Website & funnel audit workflow
├── audit-rubric.md Scoring bands for the six dimensions
├── geo.md AI-search citability workflow
├── geo-engines.md Per-engine behavior (Google AI, ChatGPT, Perplexity), llms.txt, crawlers
├── copy.md Generate wide → panel-score → de-slop
├── copy-frameworks.md Awareness stages, 12 angles, headline groups, offer construction, channel limits
├── hooks.md Hook engine: 3-component spec, 18 tactics, diagnostic funnel, fidelity ladder
├── slop-patterns.md AI-tell catalogue — run before delivering any prose
├── paid-ads.md Concept classification, fatigue, coverage gaps, production briefs
├── ads-diagnostics.md The fatigue decision table & honest data reads
├── email.md Sequence architecture, subject lines, deliverability
├── social.md LinkedIn/X writing that survives the feed
├── launch.md Launch playbook incl. Product Hunt
├── positioning.md Positioning, offer design, pricing strategy
├── competitive.md Competitor teardown protocol
├── app-store.md ASO: diagnosis, metadata, screenshots, reviews
├── store-specs.md App Store vs Play field rules (they invert)
└── analytics.md Test design, sample honesty, attribution traps
Modules feed each other. Common chains, in order:
paid-ads.md)When chaining, carry evidence forward. Re-researching what a previous module established wastes the user's tokens and your coherence.
Take yuzzyuk/marketing-os from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.