Podcast Show Notes Generator
Auto-generate show notes from podcast transcripts — summaries, timestamps, links, and key quotes
🧂 Ingredients
🔌 APIs
transcript_processing_or_any_audio_transcription_api
🔄 Alternatives:
find_links_for_mentioned_resources_tools_and_references
🔄 Alternatives:
verify_and_enrich_resource_links
🔄 Alternatives:
store_show_notes_and_episode_library
🔄 Alternatives:
📋 Step-by-Step Build Guide
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.
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."
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.
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.
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.
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.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.
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.