Search

Markdown

Search runs across post titles, body text and podcast transcripts. You can search from the web app, from Claude over MCP, or from the API.

Quote your phrases

Separate words are combined with AND, and each word can match anywhere in the document. On a two-hour transcript, comfort food will match an episode that says "comfort" in the intro and "food" an hour later.

comfort food        # both words, anywhere in the document
"comfort food"      # the exact phrase

Quote brand names, product names and anything that is really one idea. On long content this usually makes the difference between clean results and noise.

Operators

Syntax What it does
"exact phrase" Matches that sequence of words.
AND OR NOT Combines terms. These must be uppercase. Lowercase and is treated as an ordinary word.
( ) Groups terms.
field:value Searches one field: title, body, transcript or author.
"Acme Corp" OR "acme.com"
"Acme" AND (pricing OR funding OR "series b")
"Acme" NOT "acme paints"
author:altman

If your syntax is malformed, for example an unbalanced quote, we repair it and run the search anyway.

Filters

These narrow a search. Each one is a separate parameter.

Filter Values
window 24h, 48h, week, month, 3months, year, all
source_type podcast, newsletter, blog. Comma-separated for more than one.
publishing_platform rss, substack, beehiiv, bluesky, email
collection A collection slug. Restricts the search to that collection's publications.
source A publication slug.
language A two-letter code, for example en.
has_transcript true or false
has_audio true or false
min_word_count A number. Inclusive.
min_duration_seconds A number of seconds. 1200 is twenty minutes.
/api/v1/posts/search?q=%22Acme%22&source_type=podcast&has_transcript=true&window=month

Time windows roll back from the current moment. month means the last thirty-odd days. It does not mean the current calendar month.

You can also write filters into the query itself, for example source_type:podcast. The parameters are validated, so a typo gives you an error instead of an empty result. Use the parameters where you can.

Sorting

sort=relevance is the default and puts the most on-topic results first. sort=recency gives you newest first, which suits a chronological read of what has been said this week.

We credit a person on a post only when we are confident about it, which covers a minority of posts. A person filter on search would hide most of the answer. A keyword search for the name finds more.

Browsing by person does work, because it reads the credits directly: /api/v1/posts?person=<slug>. See People.

Writing a query for an alert

Run it as a search first and look at the results. An alert query that is too broad produces a stream of irrelevant hits, and those get muted. See Alerts.