# Search 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. ## There is no person filter on search 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=`. See [People](/docs/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](/docs/alerts).