My Marketing Stack is a Terminal
I run marketing for a dozen websites, a newsletter, and a Twitter account. My marketing stack is a terminal window.
No Hootsuite. No Buffer. No HubSpot. No browser tabs open to five different dashboards. Just Claude Code, a handful of skills, and an MCP server that pulls live SEO data straight into my workflow.
This isn't a flex. It's a survival strategy. When you're a solo developer shipping across multiple properties, every context switch is a tax. I got tired of paying it.
Why I Ditched the Dashboard
Here's how marketing used to work for me: open a keyword tool, research terms, copy them into a doc. Open a blog editor, write a draft, paste in the keywords. Open a social scheduler, write tweet copy, schedule it. Open analytics, check what's working, go back to the keyword tool.
Every tool had its own login, its own UI quirks, its own subscription fee. And none of them talked to each other unless I paid for a Zapier integration that broke every third month.
The real cost wasn't money — it was attention. Every dashboard switch meant reloading context. I'd lose the thread of what I was writing to fiddle with a scheduling interface. By the time I got back to the actual content, the momentum was gone.
So I asked a simple question: what if all of this happened in the same place I already work?
The AI Marketing Automation Stack
My entire marketing workflow now runs through Claude Code. Here's the stack:
| Layer | Tool | What It Does |
|-------|------|-------------|
| SEO Data | DataForSEO MCP Server | Keyword research, SERP analysis, search volume, keyword difficulty |
| Blog Writing | /blog-post skill | SEO-optimized posts with front matter, internal cross-links, structured headings |
| Social Media | /twitter skill | Tweet and thread drafts tailored to each product's audience and voice |
| Copywriting | /marketing skill | Campaign copy, brand messaging, content strategy across properties |
| Orchestrator | Claude Code | Ties it all together — one conversation, one context, one terminal |
That's it. Five components. Zero browser tabs. The whole thing lives in my dotfiles and a .mcp.json config.
The key insight is that Claude Code isn't just a coding assistant — it's a general-purpose agent runtime. Skills are just prompt files that give it specialized capabilities. MCP servers are just data connections. Put them together and you have AI marketing automation that runs wherever your terminal runs.
MCP Servers: Live SEO Data in Your Terminal
The foundation of any marketing stack is data. You need to know what people are searching for, what's already ranking, and where the gaps are.
MCP servers solve this by giving Claude Code direct access to external APIs. I'm using the DataForSEO MCP server, which exposes keyword research, SERP analysis, backlink data, and content analysis — all accessible from inside a conversation.
Here's what a typical research session looks like:
me: What's the search volume and difficulty for "AI marketing tools"?
Claude: [calls DataForSEO keyword data API]
"AI marketing tools" — 5,400/mo, difficulty 56, CPC $24.94
Related: "ai marketing automation" — 880/mo, difficulty 30
Related: "claude code tools" — 720/mo, difficulty 48 (growing 122% MoM)
No browser. No copy-paste. The data flows directly into the conversation where I'm planning the content. When I ask Claude to write the post, it already has the keyword context loaded. It can naturally weave in primary and secondary keywords without me manually tracking a spreadsheet.
I found this post's primary keyword — "AI marketing automation" — during one of these sessions. Low difficulty, decent volume, and nobody on the first page is writing about terminal-based workflows. That's the kind of gap you spot when research and writing happen in the same context.
Claude Code Skills for Content at Scale
Skills are where this stack gets interesting. A Claude Code skill is a markdown file that gives Claude specialized instructions for a specific task. Think of it as a reusable prompt with structure, guardrails, and domain knowledge baked in.
I built three skills for marketing:
/blog-post handles the full blog writing workflow. It knows the front matter format for each of my sites, runs SEO research before outlining, structures posts with keyword-targeted H2s, and adds cross-links between properties. It won't let me publish without a meta description or a proper heading hierarchy.
/twitter drafts tweets and threads. It knows each product's audience and adjusts voice accordingly — technical and precise for developer tools, casual and enthusiastic for game dev content. It generates hooks, CTAs, and thread structures. I review and post manually, but the drafting happens in seconds.
/marketing is the general-purpose copywriting skill. Campaign briefs, landing page copy, email sequences, brand messaging. It holds the full portfolio context so it can reference the right product for the right audience without me re-explaining everything each session.
The power move is chaining them. I'll research keywords, write a blog post, and draft the tweet thread to promote it — all in one terminal session, all with shared context. The tweet skill knows what the blog post says because it was written in the same conversation.
If you want to explore what kinds of skills exist for Claude Code, SkillShelf is building a directory of them.
The Workflow: From Keyword to Published Post
Let me walk through how this post was actually created. Not a hypothetical — the literal workflow that produced the words you're reading.
Step 1: Keyword Research
I asked Claude to research keywords around "marketing automation terminal" and related terms. The DataForSEO MCP server returned volumes, difficulty scores, and SERP analysis. We identified "AI marketing automation" as the primary target — 880 monthly searches, difficulty 30, low competition.
Step 2: SERP Gap Analysis
Claude pulled the top organic results for "AI marketing tools." The entire first page was listicles and SaaS product pages. Nobody was writing about terminal-first marketing. That's the angle.
Step 3: Outline
Using the /blog-post skill, Claude generated a structured outline with keyword-targeted H2s, planned cross-links, and a meta description under 160 characters. I reviewed it, made one adjustment, and approved.
Step 4: Write
Claude wrote the full post with front matter, SEO structure, internal links, and natural keyword placement. I edited for voice and accuracy.
Step 5: Tweet Thread
After the post, I'll run /twitter to draft a promotion thread. Same conversation, same context. It already knows the key points because it wrote them.
Step 6: Publish
The post is a markdown file. I commit it to git, push, and Vercel deploys it. No CMS login. No rich text editor. Just git push.
Total time from "I should write about my marketing stack" to published post: one session. One terminal. The context never left.
What This Stack Can't Do (Yet)
I'm not going to pretend this replaces everything. Here's what's still manual or missing:
Publishing is manual. There's no reliable, trustworthy MCP server for posting to Twitter/X yet. I draft in the terminal and publish by hand. Honestly, I prefer this — it's a human checkpoint before anything goes live.
No scheduling. I can't queue up posts for next Tuesday at 9am. This is a write-now-publish-now workflow. For my scale, that's fine. If you're managing dozens of accounts, you'll still want a scheduler.
Analytics happen elsewhere. Traffic data still lives in browser dashboards. There's no MCP server pulling analytics into my terminal yet. When one exists, I'll add it.
Image creation is basic. I have a /nano-banana skill that generates visuals via the Gemini API, but it's not deeply integrated into the blog workflow yet. Complex graphics and diagrams still happen outside the terminal.
It requires Claude Code. This isn't a generic "terminal marketing" setup. It's specifically built on Claude Code's skill system and MCP protocol. If you're not using Claude Code, the skills won't work. The MCP servers would, but you'd lose the orchestration layer.
These are real limitations, not just caveats I'm listing to sound balanced. But for a solo developer managing multiple properties, the tradeoffs are worth it. I spend my time on content instead of tool management.
Build Your Own Terminal Marketing Stack
If you want to try this yourself, here's the starting point:
- Install Claude Code if you haven't already. It's the foundation everything else plugs into.
- Add an SEO MCP server. DataForSEO is what I use. Configure it in your
.mcp.jsonand you'll have keyword data in every conversation. Browse MCPAtlas for other options. - Write your first skill. Start with a blog post skill tailored to your site's front matter format. A skill is just a markdown file in
.claude/skills/— no build step, no dependencies. - Ship a post. The best way to learn the workflow is to use it. Pick a keyword, research it, outline it, write it, and publish it. One session.
I'll be writing more about specific parts of this stack. If you're interested in which MCP servers work best for marketing, or how Claude Code skills compare to MCP servers and plugins, those posts are coming.
The tools you already use for coding — the terminal, git, markdown — are good enough for marketing too. You just need the right skills plugged in.
And maybe fewer browser tabs.