Skip to main content
Search the podcast catalog by what is said in episodes — by meaning (semantic_search), by exact phrase (keyword_search), or both at once (hybrid ranking). This is THE way to retrieve relevant dialogue, segments, and clips: each result is one segment of one episode with bounded transcript windows pinpointing the highest-relevance lines, plus any highlight clips that overlap the segment, inline on the match.
This tool replaces the old search_dialogue and list_clips tools. There is no separate clip-search tool — relevant clips arrive on these matches. A known episode’s full clip list is particle_podcast_get_episode with include: ["clips"].

Segments vs clips

  • Segments tile an episode end-to-end — every minute belongs to exactly one segment. Search ranks segments and returns the matching ones.
  • Clips are sparse, engagement-ranked highlights that overlap some segments. When a clip overlaps a ranked segment, it appears under an Overlapping clips: line on that match.
Use this for “find dialogue about a topic”. For “every line naming a person or company” use particle_podcast_find_mentions instead — person_slug and company_slug here narrow ranked results, they don’t drive the ranking.

Inputs

At least one of semantic_search or keyword_search is required.
FieldTypeRequiredDefaultDescription
semantic_searchstringone ofVector-similarity search by meaning. Express the query the way you’d describe the topic to a colleague — paraphrase tolerant. Combine with keyword_search for hybrid ranking.
keyword_searchstringone ofBM25 lexical search over dialogue. Use when an exact token must appear (tickers, drug names, model numbers).
person_slugstringnoPerson slug from particle_person_resolve or particle_entity_resolve (e.g. "sam-altman"). Filters results to episodes featuring this person. Also accepts a bare entity slug for non-person entities like places. For “every line about X” use particle_podcast_find_mentions instead.
company_slugstringnoCompany slug, domain, or ID. Resolves to the company’s linked entity and applies as a filter.
podcast_slugstringnoPodcast slug, internal ID, or numeric iTunes ID.
episode_slugstringnoFilter to a specific episode by slug or ID.
segment_typestringnoSegment type filter. One of: INTRO, PERSONAL_BANTER, TOPIC_DISCUSSION, INTERVIEW, TRANSITION, AD, OUTRO.
rolestringnoSpeaker/mention role filter on the person_slug or company_slug filter. One of: guest, host, panelist, correspondent, mention.
sincestringnoOnly segments from episodes published on or after this ISO 8601 date.
untilstringnoOnly segments from episodes published on or before this ISO 8601 date.
sortstringnorelevanceSort order. One of: relevance, recency.
contextinteger (1–15)no1Lines of surrounding dialogue around each matched line. Widens each match window in place — raise it instead of fetching the full transcript when a match needs more context.
limitinteger (1–50)no10Results per page.
cursorstringnoOpaque pagination cursor.

Output

A markdown document with ## Dialogue matches (N) and one ### Segment title section per match. Each section carries bulleted KV rows: - **Episode:**, - **Podcast:**, - **Podcast slug:**, - **Published:**, - **Episode slug:**, - **Segment type:**, - **Match:** (the source: semantic, keyword, or hybrid), then one or more bullets formatted Window @ start–end (or Preview @ … for truncated windows) followed by indented dialogue lines. Every line that matched the query is rendered with the entire Speaker: text wrapped in bold (a window can contain several matched lines); surrounding context renders as **Speaker:** text. When highlight clips overlap the segment, they appear under an Overlapping clips: line as bullets formatted Title (TYPE, score N) @ start–end — clip ID: <id>. When more pages exist, a horizontal rule and a **Cursor:** <value> line are appended. Bolded lines mark the lines that ranked for the current query (a window can contain several). This is a different signal from the bolding in particle_podcast_find_mentions, where a bolded line means “this line names the resolved entity” — they answer different questions and can both be true within the same episode for different reasons. Sample (semantic_search="how AI affects the labor market", limit=2):
## Dialogue matches (2)

### Labor Market Transformation from AI

- **Episode:** Where Investment Themes Intersect and Beat Markets
- **Podcast:** Thoughts on the Market
- **Podcast slug:** thoughts-on-the-market
- **Published:** 2026-04-20
- **Episode slug:** where-investment-themes-intersect-and-beat-markets
- **Segment type:** TOPIC_DISCUSSION
- **Match:** semantic
- Window @ 108s–143s
    **Stephen Byrd: Now, at the same time, AI is reshaping the labor market.**
    **Stephen Byrd:** And on net, we see a four percent job loss driven by eleven percent of outright elimination…

### Goldman Sachs Report on AI and Job Displacement

- **Episode:** TNB Tech Minute: Thrive Capital and Andreesen Horowitz Co-lead …
- **Podcast:** WSJ Tech News Briefing
- **Podcast slug:** wsj-tech-news-briefing
- **Published:** 2026-03-03
- **Episode slug:** tnb-tech-minute-thrive-capital-and-andreesen-horowitz-co-lead-multibillion
- **Segment type:** TOPIC_DISCUSSION
- **Match:** semantic
- Window @ 43s–67s
    **Danny Lewis: Speaking of AI, a new research report by Goldman Sachs is predicting the technology will eventually displace eleven million jobs…**

Overlapping clips:
- AI to displace 11 million jobs (SHOCKING, score 84) @ 40s–72s — clip ID: e8342676-…
---

**Cursor:** r.4gfFC6
The string after - **Episode slug:** is what you can feed into particle_podcast_get_episode for the full transcript or clip list, or into particle_podcast_find_mentions (format=detail, episode_slug) for mention windows around a specific person.

Example

Agent calls: particle_podcast_search_transcripts {
  "semantic_search": "how AI affects the labor market",
  "podcast_slug": "all-in",
  "since": "2024-01-01",
  "context": 4,
  "limit": 5
}
For hybrid ranking, populate both semantic_search and keyword_search:
Agent calls: particle_podcast_search_transcripts {
  "semantic_search": "what investors think of GPT-5",
  "keyword_search": "GPT-5",
  "limit": 10
}