Customer interview library with searchable quotes and themes
Find what a customer said months ago in seconds, save the passage as a tagged quote, and export a theme with verbatim evidence to Notion.
I want a customer interview library that my product and research team can actually search months after the conversation happened, instead of scrolling recordings nobody rewatches. Build it as an app with four surfaces: an interview list, an interview reader, a themes board, and an intake queue for new recordings.
The home view is a searchable list of every interview in the library, showing the interview title, customer, date, participants and tags, with filters for date range, participant and tag. Above the list is a search box that runs AssemblyAI Word Search across the indexed transcripts and returns matching moments grouped by interview, each with its timestamp, the surrounding sentence for context, and a link that opens the interview reader at that point. Word Search runs against one transcript at a time, so cross interview search means fanning out across every indexed transcript id and merging the results into a single ranked list. Each researcher can save a search with a name, and saved searches are private to the person who created them.
Opening an interview shows a clean timestamped reader built from AssemblyAI Get Paragraphs, with AssemblyAI Get Transcript supplying the interview metadata, speaker labels and full text. Each paragraph displays its start timestamp and the speaker who said it. A researcher selects any passage and saves it as a quote with a theme tag and an optional note. A saved quote stores the verbatim text, the transcript id, the start and end timestamps and the speaker, so every quote can be traced back to the exact moment it came from. The reader also has an ask this interview box powered by AssemblyAI LLM Gateway Chat Completion, for questions like what pricing concerns came up, answered against that single transcript, with the answer pointing at the timestamps it drew from.
A separate themes board groups every saved quote by its theme tag. Each theme shows the number of quotes and, more usefully, the number of distinct interviews and customers that raised it, so the team can see how many different people said the same thing rather than how loudly one person said it. Opening a theme lists its quotes with the customer, interview date and timestamp, and quotes can be re-tagged or moved to a different theme from here.
An export button on a theme writes that theme and its verbatim quotes into a research doc, using Notion Create a Page for the document and Notion Append Block Children for the body. The page leads with the theme name, how many customers raised it and the date range covered, then renders each quote as a quoted block with the customer name, interview date and timestamp underneath it. The researcher picks the parent Notion page before exporting.
New recordings are picked up from a Google Drive folder. The intake view lists audio files in that folder with Google Drive List Files, fetches the bytes with Google Drive Download File Content, and queues each recording with AssemblyAI Submit Transcript with speaker labels enabled. The queue shows each recording as queued, processing, ready or failed, polling AssemblyAI Get Transcript until it resolves, and a failed transcription can be retried from the queue. When a recording is ready, the researcher fills in the interview title, customer name and participants, and it joins the library.
Everything the team creates persists in the app: the interview index (transcript id, title, customer, date, participants, source Drive file id and status), saved quotes, theme tags, and each researcher's own saved searches. The app must maintain its own index of transcript ids rather than relying on AssemblyAI List Transcripts at read time, because that endpoint only returns the last 90 days and this archive is meant to outlive that window. Use List Transcripts only as a backfill helper when first populating the library.
What does this prompt do?
- Search every recorded interview at once and jump straight to the moment someone said it, instead of scrubbing through recordings nobody rewatches.
- Read a clean timestamped transcript with speaker labels, highlight any passage, and save it as a quote tagged with a theme.
- See a themes board that groups every saved quote by tag, so you can tell how many different customers raised the same issue.
- Export a theme and its verbatim quotes into a Notion research doc when you need evidence for a roadmap argument.
What do I need to use this?
- An AssemblyAI account for transcribing and searching your recordings
- A Google Drive folder where your interview recordings get saved
- A Notion workspace, plus the page where research docs should be created
- Recordings with reasonably clear audio; conversations with two or more people work best, since the app labels who said what
How can I customize it?
- Change which Drive folder gets watched for new recordings, and how far back the library indexes when you first set it up
- Set your own starting theme tags, like pricing, onboarding or integrations, and rename them as your research evolves
- Point exports at a different Notion page, or change how each quote is laid out in the finished research doc
FAQs
Can I search across all my interviews at once, or only one at a time?
What happens to interviews older than a few months?
Do I have to upload each recording by hand?
Will it show me who said what?
Can two researchers use it without getting in each other's way?
Related templates
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Open one screen to find every unavailable, stale, or low-battery device in your smart home, see which hub is really at fault, and clear out the dead entries in bulk.
See every open model your teams run in production, who approved it, and whether a quiet license change means it needs another look.
One desk to pull scripts from Drive, give every line its own voice, redo the one take that missed, and share approved audio in Slack.
Stop checking a dozen agency sites by hand. Open one board of live solicitations, each scored against what your team can actually bid on.
Stop rewatching interviews to find one quote.
Build a searchable customer interview library where every quote, theme and export is a click away.