← Work

AI Agents · Content

Content Repurposer Agent

Status

Live

Year

2026

n8nClaude APIBrand-Voice Linting
Source Repo →

Turns one piece of long-form work into platform-native posts, and gates its own output against brand-voice rules enforced in code rather than asked for in a prompt. If a draft breaks a rule, it does not ship. Prompts drift; a linter does not.

The film

Try it

A browser-side simulation of the routing logic — pick an input and watch which rule fires. The logged runs below are the receipts.

Simulation — same rules, sample inputs

Pick a sample. The inputs are fictional; the routing rules are the ones the live agent enforces in code, and the live agent averages 7.08s per run.

The voice gate — a banned-word list in a prompt is a request; in code it's a gate

  • Banned vocabulary: grind, crush it, 10x, hustle, guru, unlock, game-changer, supercharge, elevate, seamless, robust, cutting-edge, revolutionise, empower, delve, dive in, "reach out", "circle back", "touch base", "in today's fast-paced", "passionate about", "ever wondered"
  • A LinkedIn post must not end on a question
  • A LinkedIn post must land between 90 and 230 words
  • The carousel must have exactly five slides
  • Anything flagged routes to Flag for Rewrite — the draft is still saved either way

Logged runs

Each replay below animates a logged n8n execution at the speed it actually ran — the decision path, the output, and the latency come straight from the execution log. Nothing staged.

Replay of logged execution #32 — 6.91s actual

Source

Built a review-reply agent that refuses to post

Angle

counterintuitive claim

n8n execution log0.00s…

Decision · Send Drafts

Spoken version keeps the refusal as the lead and emphasizes speed and zero cost as proof of efficiency.

LinkedIn post

Built an n8n + Claude agent that reads customer reviews and refuses to post most of them. It classifies sentiment, decides what needs human eyes, drafts replies. Three live runs averaged 3.48 seconds. A 5-star got queued for one-tap approval. A 2-star alleging food poisoning went straight to escalation. A 1-star about a child's rash? The model declined to draft anything at all—then explained why in the output instead of leaving a blank. The refusal rules live in code, not prompts. Unparseable output escalates rather than guesses. Zero cost beyond tokens. Self-hosted n8n, database, Telegram alerts.

Carousel outline

This AI agent's job is to refuse. — It reads reviews. It classifies them. It drafts replies. It almost never posts. 5-star review: queued for approval. — 2-star with food poisoning claim: escalated immediately. 1-star about a rash: declined to reply at all. Speed: 3.48 seconds average. — Sentiment + topic classification + routing decision + draft, all in under 4 seconds per review. Refusal is coded, not prompted. — Escalation rules live in n8n logic. Unparseable model output escalates instead of guessing. Cost: tokens only. — Self-hosted n8n, database, Telegram alerts. No subscription fees. No guard rails you don't control.

Video script

I built a review agent that almost never posts anything. It reads incoming reviews, classifies sentiment, and decides what a human needs to see. Most replies get drafted and queued for approval. But a review alleging food poisoning? Escalated. A review about a child's rash? The model refused to draft a reply at all—then explained why. The whole thing runs in 3.48 seconds. Cost is zero beyond tokens.