Turn one recorded podcast episode into a full, publish-ready content pack — with a fleet of AI agents working in parallel.
pod-pack is a Claude Code skill. Point it at a finished episode and it produces the YouTube title, description and tags; the Spotify description; a blog post; and social posts for LinkedIn, Instagram, TikTok, and a YouTube community post — plus cleaned-up captions — all in your show's voice, filed neatly into a repo. The content pieces are generated by spawning one background agent per deliverable, so eleven pieces of copy get written at once instead of one after another.
Nothing about the skill is tied to any one podcast. All the show-specific facts — name, host, links, voice, where files get filed — live in a single
show-profile.yamlyou fill in once. Then it works for your show.
- What it does
- Why use it
- Requirements
- Install
- Set up your show
- Usage
- The four phases
- What's in the box
- Using the SRT fixer on its own
- Customizing
- Limitations
- Contributing
- License
Give it a recorded episode and it walks four phases (do all four, or just the one you need):
| Phase | What happens | Who drives |
|---|---|---|
| 1. Edit (browser editors only) | Tighten the episode in Riverside's web transcript editor — driven through Chrome — cutting tangents, credibility-denting asides, production artifacts. | You + the skill |
| 2. Captions | Clean the exported .srt: strip hesitation markers, fix mis-heard names/brands/jargon, keep every timestamp. |
The skill |
| 3. Content pack | Spawn a parallel agent per deliverable to write all the copy at once, in your voice, SEO/AEO/GEO-optimized. | The skill |
| 4. File | Commit the whole pack into your content repo, one folder per episode, so past episodes are easy to diff. | The skill |
The content pack (phase 3) is the core. From one clean transcript it produces:
- YouTube title options (≤100 chars, with character counts)
- YouTube description (templated, with timestamps + link blocks)
- YouTube tags (≤500 chars, highest-value first)
- Spotify description (Spotify-safe HTML)
- Blog post (Markdown + frontmatter, ~700–900 words, with an FAQ for answer engines)
- LinkedIn, Instagram, TikTok posts
- YouTube community post
- Newsletter blurb
- Pull-quotes for quote-card graphics
- Timestamps / chapters
Turn any of these off in your show profile.
- Parallel, not serial. One background agent per deliverable, spawned in the same turn. Eleven pieces of copy are drafted concurrently.
- Your voice, not generic AI slop. Tone, copy rules ("no em dashes"), and guest-framing rules are read from your profile and enforced on every agent.
- Optimized on purpose. Every text piece is written for SEO, answer engines (featured snippets, FAQ schema), and generative engines (citable, entity-rich phrasing) — see
seo-aeo-geo.md. - Honest by default. It flags uncertain guest/brand spellings and legal-risk claims instead of guessing, and never fabricates a quote.
- Filed and diffable. Every episode's pack lands in your repo in a consistent layout.
- Claude Code (the skill runs inside it).
python3for the caption fixer (standard library only, no dependencies).- For phase-1 editing only: a browser-based transcript editor open in Chrome, plus the Claude in Chrome browser tools. Phase 1 drives the editor through your browser (clicking words in the on-screen transcript), so it only works with web editors like Riverside — not desktop apps (Premiere, Descript desktop, DaVinci). Skip this phase and phases 2–4 work with any editor.
Copy the skill into your Claude Code skills directory:
git clone https://github.com/gigikenneth/pod-pack.git
cp -r pod-pack/skill ~/.claude/skills/pod-pack(Or drop it in a project's .claude/skills/pod-pack to scope it to one project.) Claude Code discovers it automatically. See the skills docs for details.
Copy the example profile and fill it in — once:
cp ~/.claude/skills/pod-pack/show-profile.example.yaml ~/.claude/skills/pod-pack/show-profile.yamlOpen show-profile.yaml and set your show name, host, voice rules, standard links, and the repo where packs get filed. Anything you leave blank is skipped. That's the whole configuration — no code to touch.
In Claude Code, just describe what you're doing. The skill triggers on natural phrasing:
"Help me produce this week's episode with <guest>."
"Fix the SRT I just downloaded."
"Write the descriptions and social posts for episode 12."
"Just the YouTube title and tags."
You don't have to run all four phases or do them in one sitting — ask for one deliverable or the whole pack. The skill reads your show profile, gathers the episode facts once, and fans out.
Each phase has a focused reference the skill reads as it gets there:
- Edit →
references/riverside-editing.md— the mechanics of Riverside's canvas editor that actually work (word-boundary selection, zoom-verify before cutting, the black-preview red herring). Optional phase. - Captions →
references/srt-fixes.md— building a correction map and running the fixer. - Content pack →
references/content-formats.md(exact format per deliverable) +references/seo-aeo-geo.md(optimization applied to each). - File → the skill commits the pack to
repo.pathfrom your profile, one folder per episode.
Full pipeline logic lives in skill/SKILL.md.
pod-pack/
├── README.md ← you are here
├── LICENSE ← MIT
├── CONTRIBUTING.md
└── skill/ ← copy this to ~/.claude/skills/pod-pack
├── SKILL.md ← the pipeline: four phases + guardrails
├── show-profile.example.yaml ← your show's facts, voice, links, repo (fill once)
├── references/
│ ├── riverside-editing.md ← editing mechanics for Riverside
│ ├── srt-fixes.md ← caption-cleanup workflow
│ ├── content-formats.md ← exact format for every deliverable
│ └── seo-aeo-geo.md ← SEO / answer-engine / generative-engine optimization
└── scripts/
└── fix_srt.py ← strip ~ markers + apply a correction map (stdlib only)
fix_srt.py is a standalone, dependency-free script — useful even outside Claude Code. It strips ~
hesitation markers and applies a JSON correction map, preserving every cue number and timestamp
(corrections work even when a phrase spans two caption lines inside one cue):
python3 skill/scripts/fix_srt.py episode.srt --map corrections.json
# → writes episode-corrected.srtcorrections.json is just {"exact phrase heard wrong": "correct phrase"}. Short tokens that
must not match inside other words go under "__word_boundary__":
{
"Jan Gunther": "Jen Gunter",
"C V G therapy": "CBT therapy",
"__word_boundary__": { "LV": "Elvie" }
}Run with no --map to only strip the ~ markers.
- Voice & rules: edit the
voice:block in your profile. Every agent honorscopy_rulesandframing_rules. - Which deliverables: toggle them in the
deliverables:block. - Formats: the templates in
content-formats.mdare derived from real published episodes. Adjust them to your platforms. - Blog schema: if your site has its own content schema, the skill reads an existing post and matches it; otherwise it uses the default frontmatter in the reference.
- Editing help is browser-based and Riverside-specific. Phase 1 works by driving a web transcript editor through Chrome — clicking words in the rendered transcript — so it only applies to browser editors like Riverside, not desktop apps. It knows Riverside's editor in detail; other web editors aren't covered yet. Phases 2–4 (captions, content pack, filing) are editor-agnostic and work with any
.srtand transcript, browser or desktop. - You still make the calls. It confirms non-obvious cuts, the final title, and anything with legal or reputation weight, and never does the billed/irreversible steps (Riverside export, publishing, PRs) without asking.
- Best with a guest interview format, though solo episodes work too — just skip the guest fields.
Issues and PRs welcome — new platform formats, other transcript editors, better templates. See CONTRIBUTING.md.
MIT © 2026 Gigi Kenneth. Use it, fork it, adapt it to your show.
Keywords: podcast automation · podcast production · Claude Code skill · AI agents · content repurposing · show notes generator · SRT / caption cleanup · YouTube description generator · Spotify description · podcast SEO · Riverside