When I first launched my podcast, I was entirely focused on the audio. I spent weeks researching microphones, treating my closet for acoustic panels, and obsessing over intro music. But once the recording stopped, the real work began.
I was struggling with the post-production admin. Staring at 45-minute raw transcripts, trying to pull out timestamps, writing show notes, and brainstorming titles was taking me three hours per episode. I was burning out before I even hit publish.
So I decided to build something.
The Hidden Cost of Podcast Admin
The hidden cost of podcasting isn't the gear or the hosting fees; it's the cognitive load of repurposing content. When you finish recording, your brain is usually fried. Asking it to suddenly switch to SEO and marketing mode to write descriptions and titles is brutal.
If you ignore this friction, you end up with one of two outcomes: you publish terrible, generic show notes, or you don't publish at all. Consistency drops. The actual quality of your episode gets buried because the packaging becomes an afterthought. I needed a way to bridge the gap between recording and publishing without losing my mind.
Building an Edge AI Pipeline
I needed to automate this workflow without spinning up heavy, expensive virtual machines or dealing with complex orchestration. I turned to Cloudflare Workers and their AI inference capabilities. The goal was to run large language models at the edge, keeping latency low and costs predictable.
The first hurdle was prompt engineering. Generating podcast titles is deceptively hard. If you just ask an AI to give you some titles, it defaults to generic, clickbaity fluff. I had to build a structured prompt that enforced constraints.
Here is the function I use to build the title generation prompt:
// Prompt engineering for podcast title generation
function buildTitlePrompt(topic, tone, count) {
return {
system: `You are an expert podcast producer. Generate compelling titles.
Rules:
- 5-10 words each
- Use curiosity gaps, numbers, or strong hooks
- Match the tone: ${tone}
- No clickbait that overpromises
- Format as numbered list`,
user: `Episode topic: ${topic}
Generate ${count} title options that make someone want to click play.`
};
}
// Example: generate 5 titles for a bootstrapping episode
const prompt = buildTitlePrompt(
"How to start a podcast with zero budget",
"inspirational",
5
);
By explicitly defining the rules in the system prompt, the output quality improves dramatically. The tone variable allows me to shift the angle without rewriting the core logic.
The second part of the pipeline was generating structured show notes from raw transcripts. Here is the core Cloudflare Worker that handles this:
// Show notes generation pipeline (Cloudflare Workers + AI)
export default {
async fetch(request, env) {
const { transcript } = await request.json();
// Call AI model for structured show notes
const response = await env.AI.run('@cf/meta/llama-3-8b-instruct', {
messages: [
{
role: 'system',
content: `Convert podcast transcripts to show notes:
## Episode Summary (2-3 sentences)
## Key Takeaways (5-7 bullet points)
## Timestamps (estimate from content flow)
## Resources Mentioned`
},
{ role: 'user', content: transcript }
],
max_tokens: 800,
});
return new Response(JSON.stringify(response), {
headers: { 'Content-Type': 'application/json' },
});
},
};
Using the edge AI model means I don't have to manage GPU infrastructure. The system prompt forces the LLM to output strict Markdown headings, so the frontend can parse the response directly.
Beyond titles and show notes, I also integrated SEO keyword suggestions directly into the worker pipeline. By extracting core entities from the transcript, the tool suggests relevant keywords for the episode pages, aiding discoverability without manual guessing. I also built out an episode script outline generator to help plan future recordings, keeping the whole workflow inside one platform.
Practical Results and Lessons Learned
What worked exceptionally well was the speed of the edge inference. For standard episode lengths, the show notes generate in seconds. The structured prompts also saved me from writing custom parsers for every AI response.
What surprised me was how much the tone parameter in the title generator changed my brainstorming sessions. Instead of staring at a blank page, I generate options in different tones and just pick the one that feels right. It shifted the process from creation to curation.
If I were to change one thing, I'd add a more robust pre-processing step to clean up transcript formatting before it hits the LLM. Raw auto-generated transcripts often include weird artifacts and filler words that can sometimes confuse the timestamp estimation logic.
Try the Title Generator
If you're dealing with the same podcast admin fatigue, I've packaged the title generation logic into a free, standalone tool. You can try the Podcast Title Generator at podcrisp.com/free-tools/title-generator to see how different tones affect the output for your own episodes.
Full disclosure: I'm the developer of PodCrisp. I built this because I needed it myself.
Top comments (0)