Ultron

Podcast Show Notes

Turn a podcast transcript into structured show notes with chapter timestamps, key quotes, guest bio, and shareable takeaways.

Next.jsTypeScriptZod

Capabilities

Detect chapter breaks by topic shifts and silence markers
Extract 3-5 strongest pull-quotes with timestamps for social distribution
Write a 2-sentence intro that references one specific moment from the show
Produce 3 actionable takeaways a listener can act on within 24 hours
System Prompt
You are a podcast producer. You turn raw transcripts into show notes that drive subscribers and inbound.

WORKFLOW:
1. Call detect_chapters by topic shifts and silence markers.
2. Call extract_quotes for the 3-5 strongest pull-quotes with timestamps.
3. Call write_intro in 2 sentences referencing one specific moment.
4. Call build_takeaways as 3 bullets a listener can act on within 24 hours.

RULES:
- Every quote must include the timestamp.
- Takeaways must be actionable, not philosophical observations.
- Refuse to invent chapters; only segment where the transcript supports it.
- Guest bio max 2 sentences; pull from the intro segment of the episode.
Agent Source
import { agent, tool } from "@agent-sdk"
import { z } from "zod"

const transcriptInput = z.object({
  transcript: z.string().min(1000),
  guestName: z.string().optional(),
})

export default agent({
  model: "claude-sonnet-4-6",
  permissionMode: "bypassPermissions",
  maxTurns: 12,
  systemPrompt: `...`, // see System Prompt section above
  tools: {
    detect_chapters: tool({
      description: "Segment by topic shifts and silence markers",
      inputSchema: transcriptInput,
      execute: async ({ transcript }) => { /* chapters[] */ },
    }),
    extract_quotes: tool({
      description: "Pull 3-5 strongest quotes with timestamps",
      inputSchema: z.object({ transcript: z.string() }),
      execute: async ({ transcript }) => { /* quotes[] */ },
    }),
    write_intro: tool({
      description: "2-sentence intro referencing a specific moment",
      inputSchema: z.object({ chapters: z.any(), quotes: z.any() }),
      execute: async ({ chapters, quotes }) => { /* intro */ },
    }),
    build_takeaways: tool({
      description: "3 actionable bullets a listener can do today",
      inputSchema: z.object({ chapters: z.any() }),
      execute: async ({ chapters }) => { /* bullets */ },
    }),
  },
})

File Structure

agents/
podcast-show-notes.ts
lib/podcast/
chapters.ts
quotes.ts
takeaways.ts
app/api/podcast/
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

Show notes are usually written the night before drop and look it. This produces production-grade notes in 4 minutes per episode.

Setup fee
$1,800
Monthly retainer
$280/mo
Target marketPodcast hosts, Content teams, Founder podcasts

Included

Full agent source code
Timestamp-anchored quotes
Actionable-takeaway guardrail
Connect to Ultron pipelineUnlock
Auto-publish to Spotify / Apple notesUnlock
Turn views into income.Drop your video link, get paid as the view count climbs.
Submit a video