Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "particle_expertise_resolve", "particle_podcast_find_mentions", "particle_podcast_get_episode_timeseries" and 4 more
⟨116 unchanged words⟩ walk the hierarchy one level down (a SOC major group'soccupationsminor groups, then broad groups, then occupations; a division's groups); abroadgroupcodesuch as `physicians` or an everyday name such as `doctors` filters everything below it. A word no occupation names may name a field (`oncologists` finds field 3211 Oncology) or a capacity: `founders` comes back as the capacity `executive_founder`, which `capacity` on `particle_podcast_list_guests` and `guest_capacity` on the episode and mention tools take. Not for people or companies — use `particle_person_resolve` ⟨20 unchanged words⟩
⟨450 unchanged words⟩ resolve and retry rather than dropping the filter. A word no occupation names may name a capacity instead ("founders", "politicians"): pass it as `guest_capacity`. Each episode lists its identified speakers with their ⟨100 unchanged words⟩
⟨239 unchanged words⟩ ,"compact"],"type":"string"},"guest_capacity":{"description":"Only mentions spoken by a guest who knows their field in this capacity (e.g. 'public_official' for politicians). particle_expertise_resolve names the capacity an everyday word means.","enum":["researcher","licensed_professional","practitioner","executive_founder","public_official","journalist_analyst","creator_entertainer","athlete_coach","clergy","firsthand","layperson"],"type":"string"},"guest_field":{"description":"Only mentions spoken by ⟨59 unchanged words⟩ or ISCO-08 code, slug or title from particle_expertise_resolve, or a SOC group or everyday name (e.g. 'financial-and-investment-analysts' or 'physicians'). A word with no occupation filters by the field of research or capacity it names: 'investors' is field 350208, 'politicians' is capacity public_official.","type":"string"},"guest_practicing":{ ⟨9 unchanged words⟩
⟨129 unchanged words⟩ filters count episodes by their guests' expertise (resolve the words to codesfromwith `particle_expertise_resolve` first; on `unresolved_reference`, resolve and retry): `guest_field` alone charts how often a field's ⟨5 unchanged words⟩ it charts the company's episodes featuring those experts. They are episode-level and never check who spoke: with `keyword_search`, a matching segment counts when its episode had such a guest, even if the host said the words. For who said a keyword, use `particle_podcast_get_share_of_voice` with `keyword_search`.
⟨41 unchanged words⟩ for companies.","type":"string"},"guest_capacity":{"description":"Only episodes with a guest who knows their field in this capacity (e.g. 'executive_founder' for founders). It narrows the other filters; particle_expertise_resolve names the capacity an everyday word means.","enum":["researcher","licensed_professional","practitioner","executive_founder","public_official","journalist_analyst","creator_entertainer","athlete_coach","clergy","firsthand","layperson"],"type":"string"},"guest_field":{"description":"Only episodes with a ⟨59 unchanged words⟩ or ISCO-08 code, slug or title from particle_expertise_resolve
⟨81 unchanged words⟩ or `publisher_slug` narrows to one show or network. `keyword_search` splits the lines that say a word or quoted phrase instead of an entity's mentions (who talks about prior authorization?), counting a line only when its own speaker said every word in it. Its window is at most 90 days, and a word said in too many episodes is refused with a way to narrow it. This is the per-speaker answer that `particle_podcast_get_episode_timeseries` with `keyword_search` and `guest_occupation` cannot give: that counts matching segments in episodes with such a guest, whoever spoke them. Shares are of the mentions spoken by someone ⟨29 unchanged words⟩ : pass it to `particle_podcast_find_mentions` with the samesubjectentity to read what that group said. For a keyword, `particle_podcast_search_transcripts` with the same `keyword_search` finds candidate passages: its guest filters keep segments with such a guest, so check each matching line's speaker, and host lines are not reached that way. Not for the mention lines themselves (`particle_podcast_find_mentions`) ⟨10 unchanged words⟩
⟨97 unchanged words⟩ ,"month"],"type":"string"},"keyword_search":{"description":"Split the lines that say these words instead of an entity's mentions: every word in one line, case-insensitive; wrap words in double quotes to require them adjacent and in order. Words count as spoken, so a word with two meanings counts both. Window at most 90 days.","maxLength":500,"type":"string"},"
⟨122 unchanged words⟩ lists episodes with a practicing cardiologist as a guest, and `guest_capacity="executive_founder"` lists episodes with a founder as a guest.
⟨58 unchanged words⟩ for companies.","type":"string"},"guest_capacity":{"description":"Only episodes with a guest who knows their field in this capacity (e.g. 'executive_founder' for founders). It narrows the other filters; particle_expertise_resolve names the capacity an everyday word means.","enum":["researcher","licensed_professional","practitioner","executive_founder","public_official","journalist_analyst","creator_entertainer","athlete_coach","clergy","firsthand","layperson"],"type":"string"},"guest_field":{"description":"Only episodes with a ⟨59 unchanged words⟩ or ISCO-08 code, slug or title from particle_expertise_resolve, or a SOC group or everyday name (e.g. 'cardiologists', '29-1212', 'physicians' or'29-1212''doctors'). A word with no occupation filters by the field of research or capacity it names: 'oncologists' is field 3211, 'founders' is capacity executive_founder.
⟨212 unchanged words⟩ or ISCO-08 code, slug or title from particle_expertise_resolve, or a SOC group or everyday name (e.g. 'cardiologists', '29-1212', 'physicians' or'29-1212''doctors'). Directory mode only.","type":"string ⟨100 unchanged words⟩ who still work in the occupation. Needs adetailedSOC 2018 occupation or group (e.g. '29-1212' Cardiologists or 'physicians'). Directory mode only.","type":"boolean ⟨80 unchanged words⟩
⟨662 unchanged words⟩ , resolve and retry; never drop the filter. A word no occupation names may name a capacity ("founders", "politicians"): pass it as `guest_capacity`. The filters keep segments in which such a ⟨39 unchanged words⟩
⟨266 unchanged words⟩ ,"compact"],"type":"string"},"guest_capacity":{"description":"Only episodes with a guest who knows their field in this capacity (e.g. 'executive_founder' for founders). It narrows the other filters; particle_expertise_resolve names the capacity an everyday word means.","enum":["researcher","licensed_professional","practitioner","executive_founder","public_official","journalist_analyst","creator_entertainer","athlete_coach","clergy","firsthand","layperson"],"type":"string"},"guest_field":{"description":"Only episodes with a ⟨59 unchanged words⟩ or ISCO-08 code, slug or title from particle_expertise_resolve, or a SOC group or everyday name (e.g. 'cardiologists', '29-1212', 'physicians' or'29-1212''doctors'). A word with no occupation filters by the field of research or capacity it names: 'oncologists' is field 3211, 'founders' is capacity executive_founder.
Changed the definition of "particle_call", "particle_expertise_get", "particle_expertise_resolve" and 6 more
⟨49 unchanged words⟩ particle_catalog to discover tool names and input schemas. A tool particle_catalog lists but your tools/list lacks (client lists go stale after a deploy) is callable here: never report it unavailable.
⟨80 unchanged words⟩ code covers everything below it. Take codes from`particle_expertise_resolve`.`particle_expertise_resolve`, which turns free text ("doctors", "finance") into them; on `unresolved_reference` or `not_found`, resolve and retry. Guest slugs work with `particle_person_get` (`include: [ ⟨33 unchanged words⟩
Added "particle_expertise_get", "particle_expertise_resolve" and "particle_podcast_get_share_of_voice"; changed the definition of "particle_person_get", "particle_podcast_find_mentions", "particle_podcast_get_episode" and 6 more (28 tools before, 31 now)
⟨60 unchanged words⟩ leagues from Wikidata, with entity slugs for`particle_entity_get`.`particle_entity_get`, 'expertise' for what they know and how established they are (standing, seniority, the occupations and fields they are listed under — codes that `guest_occupation`/`guest_field` and `particle_expertise_get` accept). The default response is lean. For podcast-guest analytics ⟨12 unchanged words⟩
⟨37 unchanged words⟩ coached with years and leagues, from Wikidata), 'expertise' (what they know and how established they are: standing, seniority, experience, the occupations and fields they are listed under with codes the guest_ filters accept, organization, credential). Default response is lean — request only ⟨5 unchanged words⟩
Changed the definition of "particle_person_get"
⟨39 unchanged words⟩ follow-up calls), 'companies' for the full rolehistory.history, 'sports' for an athlete's or coach's sports, teams (with years and leagues) and leagues from Wikidata, with entity slugs for `particle_entity_get`. The default response is lean. For podcast-guest analytics ⟨12 unchanged words⟩
⟨23 unchanged words⟩ role history, current role included and marked), 'sports' (sports played, teams played for or coached with years and leagues, from Wikidata). Default response is lean — request only ⟨4 unchanged words⟩ {"enum":["external_links","podcast_appearances","companies","sports"],"type":"string"},"type": ⟨67 unchanged words⟩
Changed the definition of "particle_alert_delete"
⟨31 unchanged words⟩ instead of removing it, use particle_alert_update with is_active=false. Only the alert's creator or an organization OWNER or ADMIN can delete it; an API key acts as the user who created the key. Other callers get a 403.
Changed the definition of "particle_alert_create" and "particle_alert_update"
Create an alert that watches a single entity andemailssetsyouup recurring email delivery to external recipients whenever it is mentioned on a podcast episode ⟨39 unchanged words⟩ several entities, call this tool once per entity. An active alert emails future matches to its configured recipients at the selected delivery cadence until paused or deleted. Only recipients verified for your organization receive alert emails; pending recipients may be saved but stay silent until verified. When a name has no entity slug, ⟨284 unchanged words⟩
⟨624 unchanged words⟩ },"notifications":{"description":"Email addresses
Changed the definition of "particle_alert_create" and "particle_alert_update"
⟨327 unchanged words⟩ id feeds particle_alert_get, particle_alert_update, particle_alert_delete, and particle_alert_list_matches. Alerts are not covered by zero data retention: the alert's definition and its matched results are stored as part of the alerts feature.
⟨117 unchanged words⟩ it on an ENTITY_MENTION alert returns unprocessable_entity). Alerts are not covered by zero data retention: the alert's definition and its matched results are stored as part of the alerts feature.
Authorization not required, issuer https://api.particle.pro
Changed the definition of "particle_podcast_find_mentions" and "particle_podcast_search_transcripts"
⟨7 unchanged words⟩ or company is named in podcast transcripts. ##TwoThree response modes **`format="summary"` (default, wide ⟨92 unchanged words⟩ several episodes in one call. `limit`/`cursor` don't apply. **`format="compact"` (screening).** The same episodes as summary, each with its mention count, the strings it was mentioned as, and the segments carrying the mentions (id, title, type, first mention time) — no dialogue lines at all, the smallest shape. `limit` and `cursor` page it exactly as summary. Use it to fan out over many entities or a long date range and decide where to read; the segment ids are citations, and `format="detail"` with the episode slug reads the lines. ## Workflow Two patterns, depending on what ⟨264 unchanged words⟩
⟨32 unchanged words⟩ 2). Detail mode only — ignored in
Changed the definition of "particle_podcast_resolve"
⟨188 unchanged words⟩ — requires a plan with premium endpoints). 'coverage' adds how much of the show's history we know of and have transcribed: discovered episodes by transcript status and by year, and whether its back catalogue (older episodes discovered in its feed but not transcribed) has been imported and is complete. The high-level suitability_tier and bias enums are always ⟨18 unchanged words⟩ ","format","related","recommended_guests","recommended_sponsors","coverage"],"type":"string"},"type": ⟨232 unchanged words⟩
Authorization not required, issuer https://api.particle.pro
Changed the definition of "particle_podcast_list_episodes"
⟨13 unchanged words⟩ , date range, duration, or transcript availability. By default it lists the episodes we have ingested. Pass `transcript_status` with `podcast_slug` to reach the show's back catalogue — older episodes discovered in its feed but not transcribed, marked requestable. Their transcript, segments, speakers and entities do not exist until one is requested. Use this for episode-level discovery when you only ⟨24 unchanged words⟩
⟨64 unchanged words⟩ ":"Only include episodes with a completed transcript. Superseded by transcript_status=transcribed; do not pass both.","type":"boolean"},"language":{ ⟨191 unchanged words⟩ ","host","panelist","correspondent","mention"],"type":"string"},"transcript_status":{"description":"Filter by where episodes stand on the way to a transcript. Omitted lists the episodes we have ingested. any, untranscribed and requestable also list the podcast's back catalogue — episodes discovered in its feed but not transcribed — and require podcast_slug: any lists every discovered episode, untranscribed those without a transcript, requestable back-catalogue episodes whose transcript can be requested. transcribed lists episodes with a transcript.","enum":["any","transcribed","untranscribed","requestable
Changed the definition of "particle_podcast_find_mentions", "particle_podcast_get_episode", "particle_podcast_get_episode_timeseries" and 7 more
⟨136 unchanged words⟩ call. For format='summary', optional filter to one episode. A particle.pro or Radar episode link also works.","type":"string"},"format":{ ⟨186 unchanged words⟩ slug, internal ID, or numeric iTunes ID. A particle.pro or Radar show link also works.","type":"string"},"role":{ ⟨53 unchanged words⟩
⟨2 unchanged words⟩ :{"description":"Episode slug or canonical ID. A particle.pro or Radar episode link also works.
Authorization not required, issuer https://api.particle.pro
Authorization not required, issuer https://api.particle.pro
Authorization not required, issuer https://api.particle.pro
Changed the definition of "particle_alert_create", "particle_alert_preview" and "particle_alert_update"
⟨59 unchanged words⟩ entities, call this tool once per entity. When a name has no entity slug, or its entity has no podcast coverage (a startup known by a brand that differs from its legal name, a product, a drug, a code word), create a kind=KEYWORD_MENTION alert with `keyword` instead of `entities`. It fires whenever the phrase is spoken — the match particle_podcast_search_transcripts makes for a double-quoted keyword_search phrase (words adjacent and in order), not the looser unquoted match — so also set `description` to say what the phrase means; that is how same-name mentions of something else are filtered out. Use the optional `filters` object to narrow what ⟨169 unchanged words⟩
⟨76 unchanged words⟩ is echoed back in the response. Exactly one for ENTITY_MENTION and PODCAST_SPEAKER — an alert watches a single entity, so create one alert per entity. Omit for KEYWORD_MENTION.
Changed the definition of "particle_alert_create", "particle_alert_delete", "particle_alert_get" and 25 more
⟨148 unchanged words⟩ on an ENTITY_MENTION alert errors with unprocessable_entity). Billing: creating an active alert can move an eligible organization's subscription from its credit/trial phase to paid fixed-fee billing. Explain this possible billing change and obtain the user's explicit confirmation before creating an active alert. Creating a paused alert (is_active=false) does not trigger this billing transition. After creation the alert immediately backfills matches from ⟨33 unchanged words⟩
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false}
Authorization not required, issuer https://api.particle.pro
Authorization not required, issuer https://api.particle.pro
Authorization not required, issuer https://api.particle.pro
Authorization not required, issuer https://api.particle.pro
Authorization not required, issuer https://api.particle.pro
Certificate recorded, valid to 2026-11-19
Authorization not required, issuer https://api.particle.pro
Changed the definition of "particle_company_get"
⟨37 unchanged words⟩ three-level product hierarchy, 'competitors' for the competitorlist.list, 'external_links' for the company's LinkedIn, social profiles, domain, Wikidata QID, SEC CIK and tickers. The default response is lean — include only ⟨12 unchanged words⟩
⟨64 unchanged words⟩ shows it already buys that led there; premium), 'external_links' (LinkedIn, social profiles, domain, Wikidata QID, SEC CIK and tickers). Default response is lean — request only ⟨5 unchanged words⟩ :["people","products","competitors","podcast_recommendations","external_links"],"type":"string"},"type": ⟨29 unchanged words⟩
First tool surface recorded: 28 tools (server version 1.0.0)
Showing the latest 27 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Turn free text into the occupation and field-of-research codes the speaker-expertise filterstake:take. Call it first whenever a question restricts who is speaking by occupation, profession, credentials or industry ("doctors", "medical professionals", "economists", "people in finance", "lawyers") — the filters, not search wording, decide who speaks — and again when a filter returns `unresolved_reference`, then retry with the code. Codes are SOC 2018 occupations (with their ISCO-08 equivalents) ⟨97 unchanged words⟩
⟨46 unchanged words⟩ history, 'sports' for an athlete's or coach's current team (NFL, MLB and NHL rosters), sports, teams (with years and leagues) and leaguesfrom Wikidata, with entity slugs for `particle_entity_get` (only the current team says where a player is today: a team with no end year may be one they left), 'expertise' for what they know and how ⟨41 unchanged words⟩
⟨25 unchanged words⟩ current role included and marked), 'sports' (the current team of an NFL, MLB or NHL player, sports played, and teams played for or coached with years and leagues, from Wikidata), 'expertise' (what they know and how ⟨110 unchanged words⟩
⟨418 unchanged words⟩ what established finance experts said about a company.CodesWhencomethefromquestion`particle_expertise_resolve`;namesforwho speaks ("doctors", "economists", "people in finance"), resolve the words with `particle_expertise_resolve` first and filter by the code; on `unresolved_reference`, resolve and retry rather than dropping the filter. Each episode lists its identified speakers with their occupation codes, standing and seniority. For the split of all mentions across occupations or ⟨86 unchanged words⟩
⟨97 unchanged words⟩ filters list episodes by their guests' expertise (resolve the words to codesfromwith `particle_expertise_resolve` first; on `unresolved_reference`, resolve and retry): `guest_occupation="cardiologists"` with `guest_practicing=true` lists episodes ⟨7 unchanged words⟩
⟨127 unchanged words⟩ to guests appearing on episodes about that topic. `occupation`/`field` (with `standing`, `seniority`, `practicing`, `capacity`, `employer`) keep guests by what they know: resolve the words ("doctors", "economists") to codes with `particle_expertise_resolve` first, and on `unresolved_reference` resolve and retry rather than dropping the filter. Every row names the guest's occupation codes, standing and seniority; `include: ["expertise"]` adds their organization. Guest slugs ARE person slugs — feed them ⟨12 unchanged words⟩
⟨111 unchanged words⟩ {"description":"Optional per-guest sections: 'expertise' (eachwidensguest'sthestandingoccupation codes, standing and seniority,mosteveryspecificrowoccupationcarriesandtofield,theandfullerorganizationone-lineonreadonewithlinethe organization). Directory mode only.","items":{" ⟨292 unchanged words⟩
⟨355 unchanged words⟩ who they book with `guest_occupation` or `guest_field` (resolve the words to codesfromwith `particle_expertise_resolve` first) and the share floors `min_established_guest_share`, `min_in_field_guest_share` and ⟨34 unchanged words⟩
⟨602 unchanged words⟩ both and is almost always what you want.**Guests'**Whoexpertise.**isThespeaking.**`guest_`When the question restricts who speaks by occupation, profession or industry ("medical professionals", "economists", "lawyers"), resolve the words with `particle_expertise_resolve` first and pass the code as `guest_occupation`/`guest_field` (plus `guest_standing="established"` or `guest_practicing=true` when credentials matter); never stand the profession in for a filter inside `semantic_search`. On `unresolved_reference`, resolve and retry; never drop the filter. The filters keepepisodessegmentswithin which such a guestofspeaks,thatsoexpertisea(codeswindowfromcan`particle_expertise_resolve`)also carry the host's lines: each full-format match lists its identified speakers as `**Speaker:**` rows with their occupation codes,e.g.standingwhatandpracticingsenioritycardiologists—saidcheckaboutthem before attributing adrug.line to a credential.
⟨388 unchanged words⟩ openai"` directly — no summary needed. ## Who said it The `guest_` filters keep only the mentions a matching guest spoke: `guest_field="banking-finance-and-investment"` with `guest_standing="established"` reads what established finance experts said about a company. Codes come from `particle_expertise_resolve`; for the split of all mentions across occupations or fields use `particle_podcast_get_share_of_voice`. ## When NOT to use this tool For dialogue ⟨74 unchanged words⟩
⟨239 unchanged words⟩ ,"compact"],"type":"string"},"guest_field":{"description":"Only mentions spoken by a guest listed under this ANZSRC 2020 field of research: a code, slug or title from particle_expertise_resolve.","type":"string"},"guest_in_field":{"description":"Only mentions spoken by a guest speaking within their own field (the guest the other guest_ filters select, when given).","type":"boolean"},"guest_occupation":{"description":"Only mentions spoken by a guest listed under this occupation: a SOC 2018 or ISCO-08 code, slug or title from particle_expertise_resolve (e.g. 'financial-and-investment-analysts').","type":"string"},"guest_practicing":{"description":"Only mentions spoken by a guest who still works in guest_occupation, which must be a detailed SOC 2018 occupation.","type":"boolean"},"guest_seniority":{"description":"Only mentions spoken by a guest at this seniority or above.","enum":["professional","senior","distinguished"],"type":"string"},"guest_standing":{"description":"Only mentions spoken by a guest whose standing is recognized this way: 'established' (conferred by others), 'self_described', or 'unverified'.","enum":["established","self_described","unverified"],"type":"string"},"language":{"description":"Restrict to episodes of ⟨202 unchanged words⟩
⟨55 unchanged words⟩ clips, 'topics' for topic classifications with slugs, 'guest_expertise' for each guest's expertise and whether they spoke within their field, or 'transcript' for the dialogue transcript (narrow it ⟨52 unchanged words⟩
⟨83 unchanged words⟩ with the basis behind each match call particle_podcast_list_related_episodes), 'guest_expertise' (each guest's expertise read and how the episode used it: whether they spoke within their field, whether the appearance was promotional, how they were introduced). Default response is lean — request only ⟨7 unchanged words⟩ ","entities","clips","topics","related","guest_expertise"],"type":"string"},"type": ⟨53 unchanged words⟩
⟨116 unchanged words⟩ podcast_slug, person_slug, company_slug, entity_slug, keyword_search, semantic_search, guest_occupation, orsemantic_searchguest_field is required. The `guest_` filters count episodes by their guests' expertise (codes from `particle_expertise_resolve`): `guest_field` alone charts how often a field's experts are booked; with `company_slug` it charts the company's episodes featuring those experts.
⟨41 unchanged words⟩ for companies.","type":"string"},"guest_field":{"description":"Only episodes with a guest listed under this ANZSRC 2020 field of research: a code, slug or title from particle_expertise_resolve (e.g. 'banking-finance-and-investment').","type":"string"},"guest_in_field":{"description":"Only episodes with a guest speaking within their own field (the guest the other guest_ filters select, when given).","type":"boolean"},"guest_occupation":{"description":"Only episodes with a guest listed under this occupation: a SOC 2018 or ISCO-08 code, slug or title from particle_expertise_resolve (e.g. 'cardiologists' or '29-1212').","type":"string"},"guest_practicing":{"description":"Only episodes with a guest who still works in guest_occupation, which must be a detailed SOC 2018 occupation (e.g. '29-1212').","type":"boolean"},"guest_seniority":{"description":"Only episodes with a guest at this seniority or above.","enum":["professional","senior","distinguished"],"type":"string"},"guest_standing":{"description":"Only episodes with a guest whose standing is recognized this way: 'established' (conferred by others), 'self_described', or 'unverified'.","enum":["established","self_described","unverified"],"type":"string"},"has_transcript":{"description":"Only count episodes with ⟨331 unchanged words⟩
⟨94 unchanged words⟩ the pitch list; branch on each row's band), 'in_field_appearances' for the most recent appearances where they spoke within their own field of expertise (what they know is what the episode drew on; `particle_person_get` with `include: ["expertise"]` says what that field is). Returns not_found for people who exist but ⟨11 unchanged words⟩
⟨67 unchanged words⟩ the venues that led there; the pitch list), 'in_field_appearances' (most recent appearances where they spoke within their own field of expertise). Default response is the profile + lifetime ⟨3 unchanged words⟩ :["appearances","podcasts","suitability","recommended_podcasts","in_field_appearances"],"type":"string"},"type": ⟨51 unchanged words⟩
⟨87 unchanged words⟩ `particle_podcast_find_mentions`. For ranked retrieval by topic, use `particle_podcast_search_transcripts`. The `guest_` filters list episodes by their guests' expertise (codes from `particle_expertise_resolve`): `guest_occupation="cardiologists"` with `guest_practicing=true` lists episodes with a practicing cardiologist as a guest.
⟨58 unchanged words⟩ for companies.","type":"string"},"guest_field":{"description":"Only episodes with a guest listed under this ANZSRC 2020 field of research: a code, slug or title from particle_expertise_resolve (e.g. 'banking-finance-and-investment').","type":"string"},"guest_in_field":{"description":"Only episodes with a guest speaking within their own field (the guest the other guest_ filters select, when given).","type":"boolean"},"guest_occupation":{"description":"Only episodes with a guest listed under this occupation: a SOC 2018 or ISCO-08 code, slug or title from particle_expertise_resolve (e.g. 'cardiologists' or '29-1212').","type":"string"},"guest_practicing":{"description":"Only episodes with a guest who still works in guest_occupation, which must be a detailed SOC 2018 occupation (e.g. '29-1212').","type":"boolean"},"guest_seniority":{"description":"Only episodes with a guest at this seniority or above.","enum":["professional","senior","distinguished"],"type":"string"},"guest_standing":{"description":"Only episodes with a guest whose standing is recognized this way: 'established' (conferred by others), 'self_described', or 'unverified'.","enum":["established","self_described","unverified"],"type":"string"},"has_transcript":{"description":"Only include episodes with ⟨286 unchanged words⟩
{"properties":{"appeared_since":{"description":"Only guests with an appearance on or after this date (YYYY-MM-DD or ISO 8601). Directory mode only.","type":"string"},"capacity":{"description":"Only guests who know their field in this capacity. Directory mode only.","enum":["researcher","licensed_professional","practitioner","executive_founder","public_official","journalist_analyst","creator_entertainer","athlete_coach","clergy","firsthand","layperson"],"type":"string"},"cursor":{"description":"Opaque pagination cursor from a previous response.","type":"string"},"employer":{"description":"Only guests whose organization is this company (slug from particle_company_resolve, or a domain). Directory mode only.","type":"string"},"field":{"description":"Only guests listed under this ANZSRC 2020 field of research: a code, slug or title from particle_expertise_resolve (e.g. 'banking-finance-and-investment'). Directory mode only.","type":"string"},"include":{"description":"Optional per-guest sections: 'expertise' (each guest's standing, seniority, most specific occupation and field, and organization on one line). Directory mode only.","items":{"enum":["expertise"],"type":"string"},"type":"array"},"limit":{"description":"Guests per page ( ⟨48 unchanged words⟩ ,"trends"],"type":"string"},"occupation":{"description":"Only guests listed under this occupation: a SOC 2018 or ISCO-08 code, slug or title from particle_expertise_resolve (e.g. 'cardiologists' or '29-1212'). Directory mode only.","type":"string"},"output_format":{"description":"Output serialization. 'markdown' ( ⟨81 unchanged words⟩ A particle.pro or Radar show link also works.","type":"string"},"practicing":{"description":"Only guests who still work in the occupation. Needs a detailed SOC 2018 occupation (e.g. '29-1212' Cardiologists). Directory mode only.","type":"boolean"},"seniority":{"description":"Only guests at this seniority or above. Directory mode only.","enum":["professional","senior","distinguished"],"type":"string"},"standing":{"description":"Only guests whose standing is recognized this way: 'established' (conferred by others: a credential, a position, recognition in the field), 'self_described', or 'unverified'. Directory mode only.","enum":["established","self_described","unverified"],"type":"string"},"topic_slug":{" ⟨27 unchanged words⟩
⟨284 unchanged words⟩ publishing cadence, and the publish-day pattern. - `include: ["guest_expertise"]`: the show's guest mix — shares of its analyzed guest appearances by established, senior and in-field guests and promotional appearances, and the occupations and fields it books most. - `recent_episodes: N`: inline this many of each ⟨14 unchanged words⟩ when you only need the most recent tail. Find shows by who they book with `guest_occupation` or `guest_field` (codes from `particle_expertise_resolve`) and the share floors `min_established_guest_share`, `min_in_field_guest_share` and `max_promotional_guest_share`: `guest_field="banking-finance-and-investment"` with `min_established_guest_share=0.5` finds shows that book established finance experts. For the shows that booked an occupation's or field's guests most in a recent window, use `particle_expertise_get` with `include: ["top_podcasts"]`.
{"properties":{"guest_field":{"description":"Only shows whose analyzed guests include someone listed under this ANZSRC 2020 field of research: a code, slug or title from particle_expertise_resolve.","type":"string"},"guest_occupation":{"description":"Only shows whose analyzed guests include someone listed under this occupation: a SOC 2018 or ISCO-08 code, slug or title from particle_expertise_resolve.","type":"string"},"include":{"description":"Optional non-parameterized hydrations to attach to each result. ⟨220 unchanged words⟩ transcribed) has been imported and is complete. 'guest_expertise' adds the show's guest mix: the shares of its analyzed guest appearances by established, senior or in-field guests and promotional appearances, and the occupations and fields it books most (codes the guest_ filters accept). The high-level suitability_tier and bias enums are always ⟨19 unchanged words⟩ ,"related","recommended_guests","recommended_sponsors","coverage","guest_expertise"],"type":"string"},"type":" ⟨31 unchanged words⟩ ":25,"minimum":1,"type":"integer"},"max_promotional_guest_share":{"description":"Only shows where at most this share (0-1) of analyzed guest appearances are promotional; 0 keeps only shows with none.","maximum":1,"minimum":0,"type":"number"},"min_established_guest_share":{"description":"Only shows where at least this share (0-1) of analyzed guest appearances are by guests of established standing.","maximum":1,"minimum":0,"type":"number"},"min_in_field_guest_share":{"description":"Only shows where at least this share (0-1) of analyzed guest appearances are guests speaking within their own field.","maximum":1,"minimum":0,"type":"number"},"min_popularity":{"description":"Restrict candidates ⟨192 unchanged words⟩
⟨602 unchanged words⟩ both and is almost always what you want. **Guests' expertise.** The `guest_` filters keep episodes with a guest of that expertise (codes from `particle_expertise_resolve`), e.g. what practicing cardiologists said about a drug.
⟨266 unchanged words⟩ ,"compact"],"type":"string"},"guest_field":{"description":"Only episodes with a guest listed under this ANZSRC 2020 field of research: a code, slug or title from particle_expertise_resolve (e.g. 'banking-finance-and-investment').","type":"string"},"guest_in_field":{"description":"Only episodes with a guest speaking within their own field (the guest the other guest_ filters select, when given).","type":"boolean"},"guest_occupation":{"description":"Only episodes with a guest listed under this occupation: a SOC 2018 or ISCO-08 code, slug or title from particle_expertise_resolve (e.g. 'cardiologists' or '29-1212').","type":"string"},"guest_practicing":{"description":"Only episodes with a guest who still works in guest_occupation, which must be a detailed SOC 2018 occupation (e.g. '29-1212').","type":"boolean"},"guest_seniority":{"description":"Only episodes with a guest at this seniority or above.","enum":["professional","senior","distinguished"],"type":"string"},"guest_standing":{"description":"Only episodes with a guest whose standing is recognized this way: 'established' (conferred by others), 'self_described', or 'unverified'.","enum":["established","self_described","unverified"],"type":"string"},"keyword_match":{"description":"How UNQUOTED keyword_search words ⟨524 unchanged words⟩
Describe one occupation or field of research and, on request, who is booked under it: its parent, children and crosswalk by default; `include: ["top_guests"]` ranks the guests listed under it by podcast appearances in a window (default the last 30 days, at most 90), and `include: ["top_podcasts"]` ranks the shows that booked them. `standing="established"` ranks only credentialed or recognized experts — "the shows that book established finance experts" is `field` plus top_podcasts plus standing. A broad code covers everything below it. Take codes from `particle_expertise_resolve`. Guest slugs…
Turn free text into the occupation and field-of-research codes the speaker-expertise filters take: SOC 2018 occupations (with their ISCO-08 equivalents) and ANZSRC 2020 fields of research. 'cardiologist' finds SOC 29-1212 Cardiologists; 'finance' finds the finance fields. Each code comes back with its slug, level, parent and the parameters that accept it: `occupation`/`field` on `particle_podcast_list_guests` and `particle_expertise_get`, and `guest_occupation`/`guest_field` on `particle_podcast_find_mentions`, `particle_podcast_list_episodes`, `particle_podcast_search_transcripts`, `particle…
Split a person's, company's or entity's podcast mentions by who said them: the speakers' occupations (SOC 2018) or fields of research (ANZSRC 2020). Answers "who is talking about NVIDIA — investors, engineers, journalists?" in one call: each group's mention lines, share, distinct speakers and episodes over a window (default the last 30 days, at most 365), optionally bucketed by day, week or month. `speakers="guests"` leaves hosts out; `level="detailed"` splits into detailed occupations or ANZSRC groups; `podcast_slug` or `publisher_slug` narrows to one show or network. Shares are of the ment…
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false}
⟨70 unchanged words⟩ to change it, create a new alert. Notification changes affect future recurring email delivery to external recipients; resuming an alert restarts delivery to its configured destinations. Alert emails follow delivery_cadence until paused or deleted. Only recipients verified for your organization receive alert emails; pending recipients may be saved but stay silent until verified. The optional `filters` object replaces the alert's filter ⟨63 unchanged words⟩
⟨431 unchanged words⟩ string"},"notifications":{"description":"Replacementnotificationrecipients for recurring alert emails. Only recipients verified for your organization receive alert emails; pending recipients stay silent until verified. When provided, replaces the entire existing set; ⟨66 unchanged words⟩
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false}
⟨210 unchanged words⟩ in place instead of fetching the full transcript. **Screening many results?** Pass `format: "compact"`. Each match then carries only its identity — episode and podcast slugs, segment id and bounds, segment type, the segment's one-line description, and the relevance score — with no dialogue or clips, at a fraction of the size and latency of the default. Fan out compact searches over companies, themes, or dates, decide which segments matter, then read dialogue only for those: `particle_podcast_get_episode` with `include: ["transcript"]` and `transcript_start`/`transcript_end` set to the segment's bounds, or this tool again with `episode_slug` narrowed to that episode. Use this for "find dialogue *about* a topic ⟨293 unchanged words⟩
⟨50 unchanged words⟩ full transcript when a match needs more context. Ignored when format is compact.","maximum":15,"minimum":1,"type ⟨105 unchanged words⟩ A particle.pro or Radar episode link also works.","type":"string"},"format":{"description":"Response shape. 'full' (default) carries each match's bounded dialogue windows and overlapping clips. 'compact' returns the same ranked matches with no dialogue — episode and podcast slugs, segment id and bounds, segment type, the segment's one-line description, and the relevance score — at a fraction of the size and latency, because the transcript load and line scoring are skipped. Use it to screen many results (a fan-out over companies, themes, or dates) and read dialogue only for the survivors.","enum":["full","compact"],"type":"string"},"keyword_match":{" ⟨529 unchanged words⟩
⟨252 unchanged words⟩ or numeric iTunes ID. Restrict to one podcast. A particle.pro or Radar show link also works.","type":"string"},"published_after":{ ⟨111 unchanged words⟩
⟨223 unchanged words⟩ every slot. With mode=history: that podcast's chart history. A particle.pro or Radar show link also works.","type":"string"},"since":{ ⟨67 unchanged words⟩
⟨42 unchanged words⟩ listing to one episode (slug or ID). A particle.pro or Radar episode link also works.","type":"string"},"include":{ ⟨109 unchanged words⟩ , internal ID, or numeric iTunes ID). A particle.pro or Radar show link also works.","type":"string"},"speaker":{ ⟨56 unchanged words⟩
⟨217 unchanged words⟩ or numeric iTunes ID. Restrict to one podcast. A particle.pro or Radar show link also works.","type":"string"},"published_after":{ ⟨37 unchanged words⟩
⟨146 unchanged words⟩ particle_podcast_resolve. Only valid with the default directory mode. A particle.pro or Radar show link also works.","type":"string"},"topic_slug":{ ⟨27 unchanged words⟩
⟨232 unchanged words⟩ particle_podcast_resolve), internal ID, or numeric iTunes ID. A particle.pro or Radar show link also works.","type":"string"},"publishing_status":{ ⟨55 unchanged words⟩
⟨19 unchanged words⟩ particle_podcast_list_episodes, particle_podcast_get_episode, or a search result). A particle.pro or Radar episode link also works.","type":"string"},"include":{ ⟨159 unchanged words⟩
⟨160 unchanged words⟩ to a specific episode by slug or ID. A particle.pro or Radar episode link also works.","type":"string"},"keyword_match":{ ⟨333 unchanged words⟩ slug, internal ID, or numeric iTunes ID. A particle.pro or Radar show link also works.","type":"string"},"role":{ ⟨178 unchanged words⟩
⟨16 unchanged words⟩ 7, max 30) for the given entity (or keyword, for kind=KEYWORD_MENTION) and returns the total match count, a per-day ⟨34 unchanged words⟩ thing, then call particle_alert_create with the sameentity.entity slug (for KEYWORD_MENTION, the same keyword instead). Pass the same `filters` you plan to save ⟨54 unchanged words⟩
⟨13 unchanged words⟩ resolve tools), same as particle_alert_create.entities — exactlyone.one for entity kinds, omitted for KEYWORD_MENTION.","items":{"type":"string"}, ⟨346 unchanged words⟩ "array"}},"type":"object"},"keyword":{"description":"Same as particle_alert_create.keyword — required for KEYWORD_MENTION. A phrase that matched more than 700 podcast episodes in the past week is rejected as too broad, as on create.","maxLength":100,"type":"string"},"kind":{"description":"Signal to preview. Defaults to ENTITY_MENTION.","enum":["ENTITY_MENTION","PODCAST_SPEAKER","KEYWORD_MENTION"],"type":"string"},"output_format":{ ⟨59 unchanged words⟩ ,"minimum":1,"type":"integer"}},"required":["entities"],"type":"object"}
⟨33 unchanged words⟩ — an alert watches exactly one entity). A KEYWORD_MENTION alert takes a new `keyword` instead of `entities`. Use is_active to pause or resume an alert ⟨66 unchanged words⟩
⟨50 unchanged words⟩ exactly one entity; omit to leave entities unchanged. Not accepted on KEYWORD_MENTION alerts.","items":{"type":"string"}, ⟨330 unchanged words⟩ (true) the alert.","type":"boolean"},"keyword":{"description":"Replacement phrase for a KEYWORD_MENTION alert; omit to leave it unchanged. Not accepted on other kinds. Matches already recorded keep the phrase they fired on.","maxLength":100,"type":"string"},"notifications":{"description":"Replacement notification ⟨74 unchanged words⟩
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true}
⟨108 unchanged words⟩ the count is an upper bound when relevance=RELEVANT.Read-onlyStarts—a background sweep and caches its progress and results; itcreatesdoesnothing.not create an alert or send notifications.
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":truefalse}
{"destructiveHint":true,"openWorldHint":false,"readOnlyHint":false}
{"destructiveHint":true,"openWorldHint":true,"readOnlyHint":false}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true}