> ## Documentation Index
> Fetch the complete documentation index at: https://docs.particle.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# particle_person_resolve

> Resolve a person by free-text name to a canonical person slug.

Resolve a person by free-text name. Returns ranked candidates with the canonical person `slug` — the stable handle accepted by [`particle_person_get`](/mcp/tools/people/person-get) by every `person_slug` parameter ([`particle_podcast_find_mentions`](/mcp/tools/podcasts/podcast-find-mentions), [`particle_podcast_search_transcripts`](/mcp/tools/podcasts/podcast-search-transcripts), [`particle_podcast_list_episodes`](/mcp/tools/podcasts/podcast-list-episodes)), and by [`particle_podcast_get_guest`](/mcp/tools/podcast_guests/podcast-get-guest)'s `guest_slug`.

This is the people-only resolver. Name discovery rides the knowledge-graph entity index: people without a knowledge-graph link yet are not name-discoverable here (their profiles still resolve by slug via `particle_person_get`).

For organizations, places, or mixed/unknown entity kinds use [`particle_entity_resolve`](/mcp/tools/people/entity-resolve); for companies with a known ticker or domain use [`particle_company_resolve`](/mcp/tools/companies/company-resolve).

For bulk resolution, pass a comma-separated `query` — each name resolves independently in one call and `limit` applies per query.

## Inputs

| Field   | Type           | Required | Default | Description                                                                                                                                                       |
| ------- | -------------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query` | string         | yes      | —       | Free-text person name (e.g. `"sam altman"`). Case-insensitive. Comma-separated for bulk lookup — each name is resolved independently and grouped in the response. |
| `limit` | integer (1–10) | no       | 5       | Maximum candidates per query.                                                                                                                                     |

## Output

A markdown document with one section per input query, separated by horizontal rules in multi-query responses.

* **Queries with matches** render as `## Person matches for "<query>" (N)` followed by one `### Name` section per result, each carrying bulleted KV rows: `- **Slug:**` (the canonical person slug), `- **Title:**` and `- **Company:**` (current role, when known), `- **Description:**`, and a `- **Note:**` row only for person-typed entities that don't yet have a canonical person record — in that case the slug carries the entity slug, which still works in `person_slug` parameters.
* **Queries with no matches** render as a single `No people matched "<query>". ...` paragraph.

Sample (`query="Sam Altman", limit=1`):

```markdown theme={"dark"}
## Person matches for "Sam Altman" (1)

### Sam Altman

- **Slug:** sam-altman
- **Title:** CEO
- **Company:** OpenAI
- **Description:** Co-founder and CEO of OpenAI
```

The string after `- **Slug:**` is the canonical person handle. Feed it into any `person_slug` parameter or into [`particle_person_get`](/mcp/tools/people/person-get). Exception: when a `- **Note:**` row is present, the slug is an entity slug (no canonical person record yet) — it still works in `person_slug` *filters*, but neither [`particle_person_get`](/mcp/tools/people/person-get) nor [`particle_podcast_get_guest`](/mcp/tools/podcast_guests/podcast-get-guest) has a person to return for it (both resolve people only).

## Example

```text theme={"dark"}
User: What's Sam Altman's background?

Agent calls: particle_person_resolve { "query": "Sam Altman" }
            → reads "- **Slug:**" row → "sam-altman"

Agent calls: particle_person_get { "person_slug": "sam-altman", "include": ["companies"] }
```

## Related

* REST equivalent: [`GET /v1/entities`](/knowledge-graph/entities) (filtered to people).
* For mixed/unknown entity kinds, use [`particle_entity_resolve`](/mcp/tools/people/entity-resolve).
* Use the returned slug with [`particle_person_get`](/mcp/tools/people/person-get) or [`particle_podcast_get_guest`](/mcp/tools/podcast_guests/podcast-get-guest).
