Skip to main content
Hero image

How I Automated My Content and Outreach Pipeline with Custom Claude Code Skills

The fifth time I pasted the same 400-word prompt into a chat box in one week, I knew something was wrong. Same instructions about my voice. Same list of links to my older posts. Same plea to stop writing like a press release. Every run, from scratch, and every run a slightly different result. I was the bottleneck, and the bottleneck was copy and paste.

So I stopped using AI as a chat box and started encoding each workflow once, as a Claude Code skill. A skill is a workflow written down with a stable interface: its own instructions, its own steps, its own rules, loaded by the agent only when the task calls for it. Today six of them run my entire content and outreach operation: blog, LinkedIn, cold email, Upwork, my Skool community and YouTube. Each one takes a job from a rough idea to a finished draft sitting in my CMS, in my voice, ready to ship.

This post is the actual architecture, not a concept piece. I will show you how the system is wired, the place where I forced the agent to stop and ask me first, and the parts of the job it still cannot do and never will.

The breaking point: re-pasting a prompt until it broke me

The work itself was fine. The process around it was the problem. I had a good prompt for drafting a blog post, but a prompt lives nowhere. It sat in a notes file, I pasted it, tweaked a word, ran it, then re-explained half my context because the model had no memory of the last run. The output drifted. The banned corporate words I keep fighting crept back in. My internal links were wrong or missing.

Any senior dev should feel the discomfort here. I was treating a repeatable process as a one-off, which is the exact thing I would never tolerate in code. A prompt you paste over and over is a copied snippet. What I needed was a function.

What a Claude Code skill actually is, and why it is not a prompt

A skill is that function. You write the workflow down once, give it a clear interface, and the agent loads it on demand instead of you re-typing the intent. My blogging skill knows my style guide. It knows the full list of posts I have already published so it can link them in context. It carries my hard rules about formatting and tone permanently. I never re-explain any of it.

That is the whole shift, from a snippet I paste to a function I call. Consistency stops being a matter of my discipline on a given afternoon and becomes a property of the system. This is the same reasoning that made me move my agent configuration out of scattered prompts in the first place, which I wrote about in Why I Switched from CLAUDE.md to AGENTS.md.

The architecture: six skills, one operating system

Each skill owns one channel from end to end:

  • blogging takes a topic from idea to a published draft in Contentful.
  • linkedin-posting turns a thought into a structured post with an image prompt.
  • cold-email researches a recipient and writes a peer-to-peer outreach email.
  • upwork analyzes a job post and writes a proposal that does not read as AI.
  • skool produces community posts, lesson plans and tool breakdowns.
  • youtube-creator handles video ideas, outlines and scripts.

On their own those would be six clever scripts. What makes them feel like one system is the shared layer underneath. They draw on the same voice rules. They all enforce a single list of AI buzzwords I refuse to publish. They save to consistent locations with consistent names. Change the voice rule once and every channel inherits it.

Inside one skill: from idea to a published CMS draft

The blogging skill is the clearest example because it produces something real at the end, not just text on a screen. It runs as a set of discrete steps I move through in order: ideas, then research, then outline, then write, then hero-image, then publish. Each step is its own resumable mode, not one giant prompt that tries to do everything and fails halfway.

The last two steps are where it stops being a writing assistant and becomes a pipeline. The hero-image step generates an image prompt and renders it through fal.ai. The publish step then pushes the finished post into Contentful through the Content Management API: it uploads the image, processes it as an asset, creates the entry and links the two together. The post you are reading went through exactly that pipeline.

The shared brain: why the output ships as me, not generic AI

The single most useful piece of the whole setup is the shared list of banned words and voice rules that every skill checks against before it hands me a draft. My blog, my LinkedIn posts and my cold emails all sound like one person because they answer to the same constraints.

I learned to hard-code those constraints because the model will not hold them on its own. Left to its defaults it drifts back to filler: the press-release adjectives, the rhetorical questions, the tidy corporate cadence. The skill is where I win that fight one time and keep the win, instead of re-fighting it on every draft.

The four human checkpoints that keep it safe

The interesting part of an automated pipeline is not the automation. It is the place where you deliberately take the automation out. My publish step does real writes to a production CMS, so I built four gates into it:

  1. It never auto-publishes. It creates a draft and stops to ask me before anything goes live.
  2. It refuses to invent a value for a missing required field. It asks instead.
  3. It checks for an existing entry with the same slug so it cannot create a duplicate.
  4. It reuses an image asset that already exists rather than uploading a second copy.

A system that looks autonomous is only safe because of where you put the human back in. That checkpoint pattern carries over to almost anything you build with agents, and it deserves its own post.

What it still cannot do

Plenty of the job did not get automated, because it should not be. Deciding what to write at all is mine. Choosing which client is worth chasing is mine. The architecture calls on real projects are mine. The actual relationship on the other end of a cold email is mine.

This is leverage, not replacement. One person doing the work that used to need a small team, without managing one. That gap between strong leverage and full autonomy is the honest center of the whole thing, and it lines up with what I argued in The Developer Divide: the people pulling ahead with AI are not the ones handing it the whole job, they are the ones who know exactly which parts to keep.

How to build your first skill this week

Do not encode your life. Pick the one workflow you already repeat by hand and re-prompt every single time, and encode that. Start with a single step, not six.

Version one needs three things: your voice rules, your short list of things the output must never do and one clear output format. Ship that, use it for a week, and expand only when the skill has earned the next mode. The compounding comes from running it daily, not from designing it perfectly up front.

Conclusion

The fix for being my own bottleneck was not learning to type faster or writing a cleverer prompt. It was writing the process down once so I never had to hold it in my head again. A senior developer plus a handful of custom skills can run a one-person content and outreach engine that used to take a small team and a real budget.

If you want the actual files, that is what I share inside my community, The Agentic Architect Lab on Skool. This post is the architecture. In the Workflows Library you get the skill templates and agent personas to drop into your own stack, and I build new ones live every week on real shipping projects. If you would rather have the working file than the description of it, that is the room for you. Come build in the open with us.

Sources

Building with AI beyond this article?

I run The Agentic Architect Lab, live builds, agent workflows, and a playbook for technical founders shipping solo. No toy demos.

Join the Lab