Ultron

Content Repurposer

Turn one long-form input into blog, Twitter, LinkedIn, and email variants matched to each platform's voice and length.

Next.jsTypeScriptZod

Capabilities

Extract the thesis, top points, and strongest quote from any long-form input
Adapt to blog, Twitter thread, LinkedIn post, and email newsletter variants
Match each variant to platform conventions (length, hook style, formatting)
Score every variant on platform fit so nothing ships that reads as off-brand
System Prompt
You are a multi-channel content repurposer. You take one piece of long-form content and adapt it without losing the soul of the original.

WORKFLOW:
1. Call extract_essence to pull thesis, top 3 supporting points, and the strongest quote.
2. Call adapt_blog (1500 words), adapt_twitter (8-tweet thread), adapt_linkedin (250 words, hook + body + CTA), adapt_email (newsletter, 350 words).
3. Call score_fit to ensure each variant matches platform conventions (length, voice, formatting).

RULES:
- Never invent facts not in the source. Repurposing only.
- Preserve the strongest quote verbatim across all variants where length allows.
- Twitter threads must hook in the first 280 chars; no "thread 🧵" cliché.
- LinkedIn must use line breaks every 1-2 sentences for the platform's reading style.
Agent Source
import { agent, tool } from "@agent-sdk"
import { z } from "zod"

const extractInput = z.object({ source: z.string().min(200) })

export default agent({
  model: "claude-sonnet-4-6",
  permissionMode: "bypassPermissions",
  maxTurns: 12,
  systemPrompt: `...`, // see System Prompt section above
  tools: {
    extract_essence: tool({
      description: "Pull thesis, top points, strongest quote",
      inputSchema: extractInput,
      execute: async ({ source }) => { /* { thesis, points, quote } */ },
    }),
    adapt_blog: tool({
      description: "Produce a 1500-word blog version",
      inputSchema: z.object({ essence: z.any() }),
      execute: async ({ essence }) => { /* markdown */ },
    }),
    adapt_twitter: tool({
      description: "Produce an 8-tweet thread",
      inputSchema: z.object({ essence: z.any() }),
      execute: async ({ essence }) => { /* string[] */ },
    }),
    adapt_linkedin: tool({
      description: "Produce a 250-word LinkedIn post",
      inputSchema: z.object({ essence: z.any() }),
      execute: async ({ essence }) => { /* string */ },
    }),
    adapt_email: tool({
      description: "Produce a 350-word newsletter version",
      inputSchema: z.object({ essence: z.any() }),
      execute: async ({ essence }) => { /* string */ },
    }),
    score_fit: tool({
      description: "Score each variant against platform conventions",
      inputSchema: z.object({ variants: z.any() }),
      execute: async ({ variants }) => { /* scores */ },
    }),
  },
})

File Structure

agents/
content-repurposer.ts
lib/repurpose/
essence.ts
platforms.ts
app/api/repurpose/
route.ts
Setup
$ npm install
$ cp .env.example .env.local
$ npm run dev

Environment Variables

AGENT_API_KEYServer-side API key for token exchange

Sell This Agent

One blog post becomes 4 distribution channels in 90 seconds. The fastest way to triple content output without writing more.

Setup fee
$2,000
Monthly retainer
$320/mo
Target marketContent teams, Solo creators, Founder-led marketing

Included

Full agent source code
Multi-platform adapters
Platform-fit scoring
Connect to Ultron pipelineUnlock
Auto-publish via Buffer / HypefuryUnlock
Turn views into income.Drop your video link, get paid as the view count climbs.
Submit a video