← Back to Directory
🎧

Podcast Show Notes Generator

Auto-generate show notes from podcast transcripts — summaries, timestamps, links, and key quotes

🤖 00 ↓  |  👤 00
intermediate15 minutes🔄 11 swappable alternatives

🧂 Ingredients

🔌 APIs

transcript_processing_or_any_audio_transcription_api

🔄 Alternatives:

Deepgram Faster transcription, lower costAssembly Ai Better speaker diarizationWhisper Free, self-hosted option

find_links_for_mentioned_resources_tools_and_references

🔄 Alternatives:

Serpapi Google results via API, structured dataGoogle Search Direct Google search APIBing Search Microsoft search with good API

verify_and_enrich_resource_links

🔄 Alternatives:

Scrapingbee Handles JS renderingBrowserless Full browser for scraping

store_show_notes_and_episode_library

🔄 Alternatives:

Airtable Better for structured databasesCoda More powerful automationsObsidian Local-first, markdown-based

📋 Step-by-Step Build Guide

STEP 1

1. Input: podcast episode transcript (from Grain, Deepgram, or manual upload)

1. Input: podcast episode transcript (from Grain, Deepgram, or manual upload)

Input: podcast episode transcript (from Grain, Deepgram, or manual upload)

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 2

2. Generate episode summary — key topics, guest bios, and main takeaways

2. Generate episode summary — key topics, guest bios, and main takeaways

Compile the gathered data into a structured report.

Format as clean Markdown with:
- Title/date header
- Executive summary (2-3 sentences)
- Key metrics section with actual numbers
- Detailed sections with bullet points
- Action items or recommendations at the end

Keep it scannable — busy people read reports in 30 seconds.
Use emoji sparingly for visual anchors (📊 metrics, ✅ wins, ⚠️ concerns, 📋 action items).
Include data comparisons: "X this period vs Y last period (↑Z%)"

If any data source was unavailable, note it clearly: "⚠️ [Source] data unavailable — excluded from this report."
STEP 3

3. Create timestamps — identify topic transitions and mark time codes for each s

3. Create timestamps — identify topic transitions and mark time codes for each section

Create timestamps — identify topic transitions and mark time codes for each section

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 4

4. Extract key quotes — pull the most impactful, shareable quotes from the trans

4. Extract key quotes — pull the most impactful, shareable quotes from the transcript

Parse the input data and extract the specified fields.

Processing steps:
1. Parse the raw input (JSON response, transcript text, HTML content)
2. Identify and extract each required field
3. Normalize data formats: dates to ISO 8601, amounts to numbers, text trimmed
4. Validate extracted data — flag missing or malformed fields
5. Structure the output as a clean JSON object

For text extraction (transcripts, articles):
- Use pattern matching for structured data (dates, amounts, URLs)
- Use semantic understanding for unstructured data (key decisions, action items, sentiment)

Return both the extracted data and a confidence indicator for each field.
STEP 5

5. Identify mentioned resources — books, tools, websites, people mentioned in th

5. Identify mentioned resources — books, tools, websites, people mentioned in the episode

Identify mentioned resources — books, tools, websites, people mentioned in the episode

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 6

6. Search and verify links — use Brave Search to find URLs for all mentioned res

6. Search and verify links — use Brave Search to find URLs for all mentioned resources

Search the web using the Brave Search API.

GET https://api.search.brave.com/res/v1/web/search?q={query}&count=10&freshness=pd
Headers: X-Subscription-Token: {BRAVE_API_KEY}

Parse the results: extract title, URL, description for each result.
Deduplicate results from the same domain.
Score relevance based on: keyword match in title (high), recency (high), source authority (medium).
Return the top results with: title, 2-sentence summary, source URL, and publish date.

If the search returns no results, try broadening the query by removing the least important keyword.
STEP 7

7. Format show notes — compile everything into a structured show notes template

7. Format show notes — compile everything into a structured show notes template

Format show notes — compile everything into a structured show notes template

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 8

8. Publish — save to Notion or export as markdown for your podcast platform

8. Publish — save to Notion or export as markdown for your podcast platform

Interact with the Notion database using the Notion API.

POST https://api.notion.com/v1/pages (to create)
POST https://api.notion.com/v1/databases/{db_id}/query (to query)
Headers: Authorization: Bearer {NOTION_TOKEN}, Notion-Version: 2022-06-28, Content-Type: application/json

For creating pages: structure properties to match the database schema.
For querying: use filters and sorts to get relevant entries.
Handle rich text by wrapping content in the proper block format.

If the API returns 429 (rate limited), wait 1 second and retry. Max 3 retries.

🤖 Example Agent Prompt

Input: podcast episode transcript (from Grain, Deepgram, or manual upload)

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

Copy this prompt into your agent to get started.