You finish recording at 6 pm and the episode goes out at 9 am. What is left is the boring part: show notes, chapters, a guest bio, links, a summary for the newsletter. AI prompts for podcasters are good at that boring part, with one rule: the transcript is the only source of facts about the episode, and a script checks the result.
This post gives you the prompts, a decision table for what to hand to a model, and a checker I ran on 2026-10-09. The transcript, notes and guest in the demo are made up by me. The prompts are untested templates unless I say otherwise. Clipping is covered in its own post, podcast to Shorts with a quote checker, so here the focus is the written package around the episode.
What should you give AI and what should you keep?
Not every post-production task is worth delegating. Use this as a first pass.
| Task | Hand to AI? | Why |
|---|---|---|
| Episode summary from transcript | Yes, then check | Low risk if sourced only from the transcript |
| Chapter titles | Yes | Titles are yours to edit; timestamps need a script |
| Chapter timestamps | Only from timestamped segments | Models guess times when given plain text |
| Links mentioned | Extract, then you add URLs | Models invent URLs |
| Guest bio | Draft from pasted sources, guest approves | Wrong bios are embarrassing and sometimes harmful |
| Quotes and pull-quotes | Extract verbatim, then verify | Paraphrase inside quote marks is misquoting |
| Sponsor read and disclosure | No | Must match the sponsor's wording and your local rules |
| Episode title | Brainstorm only | You know what the guest is actually known for |
How do you write podcast show notes with AI?
Start with a transcript that has timestamps and speaker labels. Fix names and numbers in it first. Everything downstream compares against this file, so errors in it get copied faithfully.
Untested template:
You are writing show notes for a podcast episode.
SOURCE (the only facts you may use). Segments have start seconds:
{{PASTE TIMESTAMPED TRANSCRIPT}}
Write:
1. A 2-sentence summary for the episode page.
2. 5 to 8 bullet takeaways. Each bullet states what a speaker said,
attributed ("Meera says...").
3. A list of every product, book, person or organisation mentioned,
spelled exactly as in the transcript, one per line.
4. Chapter suggestions as "m:ss Title", using only start times that
appear in the SOURCE, 5 to 9 chapters, first at 0:00.
Rules: no statistics, job titles, dates or places that are not in the
SOURCE. If a speaker hedges ("I don't have a clean number"), keep the
hedge. Do not invent links. If something would help but is missing, put it
under "Needs a source" and leave it out of the notes.
The "Needs a source" list does a job. It gives the model a place to put the facts it wants to add, instead of slipping them into the body.
How do you check chapters and numbers before publishing?
Chapters have mechanical rules. Per YouTube's help page on video chapters (read 2026-10-09), a manual list needs at least three timestamps, the first at 00:00, in ascending order, with each chapter at least 10 seconds long. The same page notes that chapters need access to YouTube's Advanced features if your channel does not have it yet. Check the page before you publish, because platforms change these. Other podcast apps read chapters differently, so check your host's documentation as well.
The script below tests those rules, then scans the notes for numbers and capitalised names that never appear in the transcript. Standard library only; save as check_show_notes.py and run python3 check_show_notes.py transcript.json notes.md. The transcript is a JSON array of objects with start, end and text.
import json, re, sys
segs = json.load(open(sys.argv[1]))
notes = open(sys.argv[2]).read()
duration = max(s["end"] for s in segs)
transcript = " ".join(s["text"] for s in segs)
low = transcript.lower()
problems = 0
chap = []
for line in notes.splitlines():
m = re.match(r"^\s*(?:(\d{1,2}):)?(\d{1,2}):(\d{2})\s+(.+)$", line)
if m:
h = int(m.group(1) or 0)
chap.append((h * 3600 + int(m.group(2)) * 60 + int(m.group(3)), m.group(4)))
print(f"chapters found: {len(chap)}, audio length {duration:.0f}s")
if len(chap) < 3:
print("FAIL fewer than 3 chapters"); problems += 1
if chap and chap[0][0] != 0:
print("FAIL first chapter is not 0:00"); problems += 1
for (a, ta), (b, tb) in zip(chap, chap[1:]):
if b <= a:
print(f"FAIL not ascending: '{tb}' at {b}s"); problems += 1
elif b - a < 10:
print(f"FAIL chapter '{ta}' is only {b - a}s long"); problems += 1
if chap and chap[-1][0] >= duration:
print("FAIL last chapter starts after the audio ends"); problems += 1
body = "\n".join(l for l in notes.splitlines()
if not re.match(r"^\s*(?:\d{1,2}:)?\d{1,2}:\d{2}\s", l))
t_nums = set(re.findall(r"\d+(?:\.\d+)?", transcript))
for n in sorted(set(re.findall(r"\d+(?:\.\d+)?", body))):
if n not in t_nums:
print(f"CHECK number not in transcript: {n}"); problems += 1
names = set(re.findall(r"(?<![.!?]\s)(?<!^)\b([A-Z][a-z]{2,})\b", body))
for w in sorted(names):
if w.lower() not in low:
print(f"CHECK name not in transcript: {w}"); problems += 1
print("problems:", problems)
sys.exit(1 if problems else 0)
My demo transcript is a six-segment, 600-second interview with an invented pottery-studio owner. The notes I wrote by hand contain the errors models typically make: an invented statistic, an organisation nobody mentioned, a 5-second "Quick break" chapter and a last chapter that starts after the audio ends. Real output:
chapters found: 7, audio length 600s
FAIL chapter 'Quick break' is only 5s long
FAIL last chapter starts after the audio ends
CHECK number not in transcript: 15
CHECK name not in transcript: Ceramics
CHECK name not in transcript: Guild
problems: 5
Notice what the transcript really says about breakage: it is "still the biggest headache, though she has no clean number". The notes turned that into "15 percent of orders". It reads like a normal podcast fact, which is why you want a tool to catch it.
Limits, so you don't over-trust a green run:
- It checks digits only. "Half" and "a third" pass.
- A name flagged once per word. "Ceramics Guild" shows as two lines. Treat each line as a prompt to look.
- It does not catch a real name attached to the wrong speaker. Read attribution yourself.
- A transcription error is invisible to it. If the transcript heard "fifty" for "fifteen", the notes and transcript agree and both are wrong.
How do you research a podcast guest with AI?
The safest use is organising material you pasted, not recalling facts. Models fill gaps in a bio with plausible detail: the wrong employer, a book that does not exist, an award. For a person that is a real problem, and for a private individual it is worse. Do not use this on people who have not put themselves forward publicly.
Untested template:
I am interviewing {{GUEST NAME}}. Below are pages they or their
organisation published. Use ONLY this material.
{{PASTE ABOUT PAGE, BOOK BLURB, PREVIOUS INTERVIEW TRANSCRIPTS}}
1. Make a table: Claim | Quoted evidence | Which pasted page.
Only claims with quoted evidence go in the table.
2. List 8 interview questions that follow from the material, each tied
to a row of the table. At least 3 must be questions their previous
interviews did not ask.
3. List anything a listener might assume about them that the material
does NOT support.
4. Say "not in the material" instead of guessing.
Send the claims table to the guest with the booking confirmation and ask them to correct it. They will fix what is wrong faster than you can find it, and the bio in your show notes then comes from them. Check what you are allowed to paste into a hosted model first; see what not to paste into ChatGPT.
Which prompts help with chapters and episode titles?
Chapters first, because they need timestamps. Pass the model segments with start times and ask it to choose from those start times only. If you give it plain text it will invent times that look right.
Untested template for titles, run after the notes are fixed:
Here are the summary and takeaways for an episode (verified):
{{PASTE}}
Give 8 episode titles under 70 characters. Mix: 3 that state the
guest's main point, 3 that pose the question the episode answers, 2
plain descriptive. No title may contain a number, name or claim that is
not in the text above. No "secret", "ultimate" or "you won't believe".
You pick. A title is the one line a machine should not choose for you, because you know what the audience of your show reacts to and the model does not.
What about clips and quotes?
The same rule carries over: the model proposes, a script verifies. The clipping workflow covers verbatim quote checks and cutting with ffmpeg. For the written side, pull quotes in your show notes need the same treatment: copy, check, and keep the hedge. If you also turn episodes into newsletters, see the newsletter-from-transcripts workflow. More formats are in the content repurposing prompts.
If your show is on YouTube too, the YouTube creators prompt guide covers titles and descriptions.
A 10-minute pre-publish checklist
- Transcript names and numbers fixed by ear on any passage containing them.
- Notes generated from the transcript only; "Needs a source" list read.
- Script run; every FAIL fixed, every CHECK looked at.
- Links added by you and clicked once.
- Guest bio approved by the guest.
- Sponsor lines written by you, matching the sponsor's brief.
- Anything said about a third party that could be defamatory reread by a person. This is a judgement call; ask a professional if the episode is contentious.
For meeting-style recordings with decisions and owners, the meeting notes workflow is a closer fit than show notes.
What I'd skip
Skip auto-published show notes. Skip a model-written summary of an episode you did not listen to. And skip letting the model write the guest's credentials from memory, however confident the answer sounds. The time you save on formatting is real; the time you lose after a public correction is longer.



