Content Ops March 14, 2026 8 min read

I Built an AI Content Pipeline That Hard-Blocks Bad Copy Before It Ships

Two systems: a repurpose engine that turns TikTok winners into cross-platform drafts, and a quality enforcement layer with three automated gates. Here's how they work.

Google's March 2024 core update wiped out 40% of AI-heavy sites. The sites that survived had one thing in common: a human or a system with real quality standards in the review loop.

Most teams responded by adding more human review. I built an AI content pipeline that makes the model review itself — and hard-blocks publication when it fails.

Two weeks ago I shipped two systems that changed how content moves through my stack. One repurposes TikTok winners into cross-platform drafts in a single click. The other is an AI content pipeline operating system for every piece of marketing content I produce — blog posts, cold emails, ad copy, press releases, SEO articles. Everything runs through the same three quality gates before it goes anywhere.

The window to get this right is closing. Every week that AI content saturation increases, the bar for what Google and readers tolerate drops. Here's what I built and why it matters now.


The Problem With AI Content Tools

Every AI writing tool I've tried has the same failure mode: generate, approve, publish. The model is optimistic by default. There's no hard stop between "this looks fine" and "this is good."

The result? AI-assisted content that reads like AI-assisted content. Vague claims. Generic hooks. Hollow corporate words filling every third sentence.

I wanted a pipeline that said no. That blocked a draft until it earned a pass. That remembered what worked and fed those patterns back into the next piece.


System 1: Content Intelligence Dashboard

The dashboard sits on top of my TikTok analytics. When a video crosses a performance threshold — views, saves, shares — a "Repurpose ✨" button appears next to it.

Click it once. The system pulls the transcript, hook text, and scene analysis from that video. It sends everything to Gemini 2.0 Flash with two simultaneous instructions: write a LinkedIn post (150–300 words, professional angle) and write an Instagram caption (150 words, 10 hashtags). Both drafts save to a content_posts table in under 15 seconds.

The calendar page shows the full week, color-coded by platform. If LinkedIn or Instagram goes 5+ days without a scheduled post, a coverage gap warning fires. An unscheduled drafts sidebar lets me drag-assign dates without touching a separate app.

The logic: TikTok already found what resonates. The hook landed. The angle worked. The repurpose engine translates a proven piece into a different format for a different audience — no guessing required.

Phase 4 adds an Insights page: hook type performance by platform, format heatmaps, cross-platform multipliers. The data to build it is already captured. It's a matter of surfacing it.


System 2: Kai Harness — The AI Content Pipeline Operating System

The best analogy is CLAUDE.md. If you've used Claude Code or Codex, you know what CLAUDE.md does: it tells the coding agent what tools exist, what constraints apply, and what good output looks like. It's the config layer that separates disciplined AI usage from chaos.

MARKETING.md does the same thing for content.

Three laws govern everything:

Run the full pipeline with one command:

kai-harness run --task blog --site kaicalls --keyword "law firm answering service"

What fires: Google Search Console pulls keyword data for that query. The system builds a structured research brief — keyword cluster, persona, competitor weakness, three hook variants, recommended angle, CTA. The write agent reads the brief and the format-specific instructions and drafts the piece. Three gate scripts run automatically. The draft posts to Discord for approval. On publish, the system logs the piece and schedules a 30-day performance check.

Start to Discord post: one command.


The Three Gate Scripts

1. four_us_score.py

An LLM grades the draft on four dimensions: Unique, Useful, Ultra-specific, Urgent. Each dimension scores 0–4. Long-form content (blog, SEO, LinkedIn) needs 12/16 to pass. Ad copy needs 10/16. Hard block on fail.

The scoring is external — the model that wrote the draft doesn't grade it. That separation matters. Self-grading is how you end up with AI confidently rating mediocre output as excellent.

A recent failure report looked like this:

Urgency 2/4 — The article lacks a strong sense of urgency. Tie the system to a specific trend and quantify the cost of delay. Include a timeframe to create immediacy.

That's the feedback a human reviewer might catch on a good day. The script catches it on every draft, every time.

2. banned_word_check.py

Three tiers.

Tier 1 kills the draft — corporate buzzwords, hollow consulting-speak, and AI-generated filler phrases that appear in 40% of generated content but add zero meaning. Any Tier 1 hit returns the specific word plus a suggested replacement. Hard block. 14 words and phrases on the list.

Tier 2 flags transitional corporate filler — the phrases that signal someone padding word count rather than making a point.

Tier 3 warns on weak qualifiers — the hedging words that soften claims without adding nuance. Each one signals a sentence that could be cut or rewritten stronger.

The check takes 2 seconds and catches what a tired human eye misses at 11pm before a publish deadline.

3. seo_lint.py

Six structural checks: title contains the target keyword, first 100 words answer the query directly, at least one H2 includes a secondary keyword, two or more internal links, sentence length averages under 20 words, keyword density sits between 1–2%.

The script skips automatically for short-form ad copy — no point running keyword density checks on a 30-word Google RSA.

Gate fail on any script triggers an automated revision loop. The write agent reads the failure report, revises, re-gates. Two auto-retry attempts. Fail after two tries: the draft surfaces for human review with the failure notes attached.


Formats the Harness Supports

blog linkedin email-lifecycle cold-email tiktok-script meta-ads google-rsa pmax press-release seo

Each format has its own instructions file. The cold email format enforces a specific structure: personalization line, problem statement, social proof, low-friction CTA. No meeting ask in the first email. The Meta ads format generates three variants with different hooks — curiosity, direct, fear of missing out — so you're testing from day one rather than running one creative until it dies.


The Self-Improvement Loop

When a piece wins — search position 5 or better, CTR 5%+, average session over 90 seconds — pattern_extract.py runs on it. The script identifies structural patterns and appends to knowledge/playbooks/what-works.md.

Recent output from the Monday cron:

"Curiosity gap hooks average 6.2% CTR vs. 3.1% for contrarian hooks over the last 90 days. Posts opening with a specific data point in the first sentence average 4.8% CTR vs. 2.1% for posts opening with a question."

Those patterns feed the write agent on every subsequent run. The 50th piece the harness writes has 49 pieces of performance data informing its approach. The 100th piece has 99.

Most AI content tools start fresh every time. This one remembers.


What This Is Actually For

The harness handles research, drafting, quality gates, logging, and performance tracking. What's left for a human: editing, approving, and reading the patterns.

That's the right division. Angle, tone, and audience positioning require judgment from someone who knows the business. But research is a workflow problem. Quality gates are enforcement. Tracking is discipline.

The system removes the parts that eat time without requiring real decisions. What remains is the work that requires thinking.

There's also a timing argument here. Search results are filling with AI-generated pages that passed no quality gate, logged nothing, and will never know if they worked. The floor for "good enough" keeps rising. A pipeline that enforces standards on every piece compounds over 12 months in a way that occasional human review doesn't.


Discord Commands

Running this in a team context:


What I'd Build Next

Coverage gap detection in the dashboard is reactive — it warns when you're already behind. What I want is proactive scheduling: the system looks at the content calendar 10 days out, identifies thin coverage on high-performing topics, and generates draft briefs before the gap appears.

The pattern loop also needs a negative feedback track. Right now it learns from winners. It should learn from pieces that underperform too — what hook type, what format, what angle correlated with low CTR or short sessions. Negative signal is often more informative than positive.

If you want to see what an AI CMO looks like in production — the AI content pipeline, the repurpose engine, the pattern loop — the full system runs at meetkai.xyz. The agent skills page shows what's been shipped so far.