DEV Community

Lukas Fryc
Lukas Fryc

Posted on

I Replaced My Marketing Team with Claude Code

I don't have a marketing team. I have 49 slash commands.

I run 6 SaaS projects solo. I'm a developer — 15 years of writing code. Marketing? I couldn't tell you the difference between TOFU and tofu until my AI explained it. (Top-of-funnel, apparently.)

But my blog is publishing SEO-optimized content, tracking keyword rankings, building backlinks, running outreach campaigns, and monitoring Reddit and Hacker News for opportunities — all from my terminal.

Here's exactly what I built and how it works.

The Problem

Solo founders have two options for marketing:

  1. Learn it yourself — spend months studying SEO, content strategy, funnel design, and email marketing. Time you could be building product.
  2. Hire someone — $3K-5K/month for a part-time marketing person. Multiply that by 6 projects.

I wanted option 3: build an AI that does it for me.

Not a chatbot that suggests blog topics. An actual system — with strategy, data pipelines, content production, and analytics — that runs from my terminal.

What I Actually Built

I built Marketing OS — a Claude Code project that turns slash commands into an autonomous marketing team. The file structure looks like this:

marketing-os/
├── .claude/
│   ├── commands/        # 49 marketing commands
│   ├── guides/          # Step-by-step workflows
│   ├── knowledge/       # SEO, GEO, conversion expertise
│   └── settings.json    # Permissions and hooks
├── config/
│   ├── strategy.md              # 90-day marketing plan
│   ├── product-context.md       # Brand voice, audience, positioning
│   ├── content-inventory.json   # Keyword tracking (14 keywords, 3 funnels)
│   └── brand-voice-examples.md  # Real writing patterns
├── content/
│   ├── drafts/          # Content pipeline
│   └── published/       # Archive
├── data/
│   ├── keywords/        # Ahrefs research cache
│   ├── rankings/        # Google Search Console data
│   └── competitors/     # Competitive analysis
└── outreach/
    ├── templates/       # Email templates
    └── campaigns/       # Outreach tracking
Enter fullscreen mode Exit fullscreen mode

This isn't a toy. It's a production system with real integrations — Ahrefs for SEO intelligence, Google Search Console for rankings, ForumScout for social listening. Every piece of data is cached, tracked, and version-controlled in git.

The Roles It Replaces

Here's what each "marketing person" does and the commands that replace them.

SEO Specialist → /keywords, /rankings, /opportunities

When I type /keywords "claude code", the system:

  1. Checks my domain's competitive position (DR 0 — brand new)
  2. Pulls keyword data from Ahrefs (volume, difficulty, traffic potential)
  3. Filters for keywords I can actually rank for (winnability score)
  4. Shows me the 3 best options with reasoning

Real output from my system:

Priority 1 — Start Now
┌──────────────────────────┬────────┬────────┬─────┬─────────────┐
│ Keyword                  │ Vol US │ Global │ KD  │ Winnability  │
├──────────────────────────┼────────┼────────┼─────┼─────────────┤
│ claude code vs cursor    │ 3,300  │ 11,000 │  2  │ 92 ✅       │
│ claude code hooks        │ 1,700  │  4,900 │  —  │ 78 ✅       │
│ claude code best practices│ 1,100 │  3,300 │  —  │ 85 ✅       │
│ seo for developers       │   600  │  1,000 │ 20  │ 80 ✅       │
└──────────────────────────┴────────┴────────┴─────┴─────────────┘
Enter fullscreen mode Exit fullscreen mode

That's real data. "Claude code vs cursor" has 3,300 monthly searches in the US, keyword difficulty of 2, and a DR 17 blog sitting at #3 in Google. Beatable.

I didn't research any of this. The AI did. I just typed /keywords.

Content Writer → /draft

/draft is a 12-step content pipeline in a single command:

  1. Check if I already wrote about this topic (dedup)
  2. Load my product context, brand voice, and claims
  3. Research the keyword with Ahrefs (I choose the depth: 5, 15, or 30 credits)
  4. Analyze search intent from the SERP
  5. Find authoritative external sources and verify every URL exists
  6. Generate an outline for my approval
  7. Write the full post with SEO optimization
  8. Add GEO elements (answer boxes, FAQ, citable stats) for AI chatbot citations
  9. Verify every single link — internal and external
  10. Enforce hard limits: title ≤60 chars, description ≤160 chars, 2+ internal links
  11. Save draft and update the content inventory
  12. Find a cover image on Unsplash

The output is publish-ready MDX. Not a rough draft I need to rewrite — actual content that matches my brand voice, follows my SEO rules, and links to my existing posts.

If you're curious about the kind of content guidelines I use, I wrote up my 15 best practices for Claude Code — tip #1 (write a CLAUDE.md file) is what makes all of this work.

Content Strategist → /setup, /mode, /report

/setup runs a marketing interview:

  • Analyzes my landing page and existing content
  • Asks 7 questions about my target audience and value proposition
  • Extracts brand voice patterns from my real writing
  • Creates a 90-day content calendar with Ahrefs-validated keywords
  • Generates strategy.md — a complete marketing plan

Then /mode lets me switch between three strategies:

  • Traffic mode — 50% educational content, grow audience fast
  • Conversion mode — 50% bottom-of-funnel, get customers now
  • Balanced mode — full-funnel, sustainable growth

/report shows where I am:

Progress Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mode: BALANCED ⚖️

Keywords: 14 tracked (Ahrefs-validated)
Posts:    7 (5 published, 2 drafts)

├── BOFU: 0/0
├── MOFU: 2/6 published (33%)
└── TOFU: 3/8 published (38%)

Next recommended: "claude code CLAUDE.md"
Reason: 300/mo, winnability 80, follow-up to best practices post.
Enter fullscreen mode Exit fullscreen mode

I don't decide what to write. The system tells me.

Social Media → /listen, /respond

/listen scans Reddit, Hacker News, and Twitter for conversations where people discuss problems my product solves. It scores each opportunity by relevance and timing.

/respond generates a genuinely helpful reply — not spam, not "check out my product." Value-first responses that happen to come from someone who built a solution.

I still post these manually. Authenticity matters. But finding the right conversations and drafting responses? Automated.

Outreach Manager → /outreach, /cold-campaign

/outreach finds link-building opportunities: guest post targets, resource pages, broken links I can replace. It generates personalized email templates.

For scale, /cold-campaign integrates with Apollo.io (contact database) and Instantly.ai (email warmup + sending) to run multi-step email sequences.

I still review every email before it goes out. But the research, personalization, and tracking are handled.

Product Marketing → /positioning, /launch, /changelog

/positioning generates messaging frameworks — value prop, elevator pitches, differentiators. /launch creates a full Product Hunt campaign with pre-launch, launch day, and post-launch checklists. /changelog turns a feature update into multi-channel announcements.

What a Real Session Looks Like

Monday morning. I open my terminal:

$ claude

Marketing OS loaded.
✓ 2 drafts ready to publish. Run /approve.
⏳ 5 days since last post. Ready to write? /draft
📊 14 keywords tracked.

> /next

Your single most important action:
Publish the "SEO for Developers" draft.
Reason: 600/mo keyword, article is ready, 5 days since last publish.

> /approve seo-for-developers

✓ Created PR to aiorg.dev repo
✓ Content inventory updated
✓ Velocity: 1 post every 3.2 days (healthy)

> /draft

Recommended: "claude code CLAUDE.md" (300/mo, winnability 80)
Write it? [Yes]

...
Enter fullscreen mode Exit fullscreen mode

That's it. I voice-command this through Wispr Flow — I don't even type. My hands are for code review.

I also run 2-3 Claude Code sessions in parallel using Warp — one session writing content, another refactoring code in a different project, a third running tests. Each session stays focused on its task.

What It Can't Do

I want to be honest. Here's what the AI still can't handle:

Creative judgment. It writes good content. Not great content. The difference between "good enough to publish" and "people will share this" still requires a human eye. I review every piece.

Relationship building. Outreach emails get opened. But building genuine connections — the follow-ups, the DMs, the "I saw your talk" messages — that's still manual. And it should be.

Taste. The system doesn't know that this particular blog post title is cringe, or that this hook sounds like every AI article on the internet. I catch that in review.

Novel strategy. It's excellent at executing established marketing playbooks. But inventing a new go-to-market approach, or spotting a cultural moment to capitalize on? That's still human territory.

The honest ratio: AI does 85% of the work. I do 15%. But my 15% is what separates "content mill" from "content marketing."

The Data Integration Stack

The system isn't just Claude Code with good prompts. It relies on real data:

  • Ahrefs ($99-199/mo) — keyword volumes, competitor analysis, backlink tracking
  • Google Search Console (free) — real ranking positions, click data, indexing status
  • ForumScout (~$30/mo) — social listening across Reddit, HN, Twitter
  • Firecrawl ($9/mo) — JavaScript-heavy page scraping fallback

Without Ahrefs, /keywords still works — just with less accurate data. Without GSC, you get estimates instead of real positions. The system degrades gracefully.

How I Set This Up

The foundation of this entire system is two things:

1. A CLAUDE.md file that teaches Claude Code your project structure, commands, and rules. I wrote a complete guide with examples on how to write one.

2. Custom slash commands — markdown files in .claude/commands/ that define multi-step workflows. Each command is a detailed specification: what data to load, what questions to ask, what output to produce, what limits to enforce.

The /draft command alone is 950 lines of specification. That's not bloat — it's the difference between "write a blog post" and a repeatable system that produces consistent, SEO-optimized, brand-aligned content every time.

If you want to go deeper on the automation layer, I wrote about Claude Code hooks — shell commands that auto-format, auto-lint, and auto-validate every file Claude Code touches.

Why This Beats Hiring

A junior marketing person costs $3K-5K/month and handles one project. They need onboarding, management, and context on your product.

My system:

  • Runs across 6 projects simultaneously
  • Has zero onboarding (it reads the CLAUDE.md)
  • Works at 2am when I have an idea
  • Never forgets the brand voice or SEO rules
  • Costs ~$250/month (Ahrefs + Claude Max + minor tools)

It won't replace a CMO with 10 years of experience and genuine strategic insight. But for a solo developer who needs marketing to happen? It's not even close.

Start Small

You don't need 49 commands. Start with three things:

  1. Write a CLAUDE.md with your product, audience, and voice
  2. Create one custom command/draft that loads your context and writes a blog post
  3. Track what you write in a content-inventory.json file

That gets you 60% of the value. The other 39 commands are refinements.


I wrote an expanded deep-dive on my blog covering the full architecture, data integrations, and Marketing as Code philosophy behind this system.


I'm building in public, so all of this evolves weekly. The system I described today is version 1.22 — it looked very different 3 months ago and will look different 3 months from now.

What does your marketing setup look like? Anyone else running marketing from the terminal?


I'm Lukas — I run 6 SaaS projects solo with Claude Code. I write about AI-native development and marketing workflows on my blog.

Top comments (0)