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

# Search

> Recruiter language and filters compile to the same query. Save the echoed query for repeat graph searches.

**Search** is the dashboard page you land on (`/dash/explore/search`). The same filters are available through MCP `search` or `GET /people`.

## Recruiter language

Type a sentence. FreshTalent compiles it to structured filters. Explicit filters always win if both are present.

Examples that parse today:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
ex-palantir FDEs, left 18mo
FDEs open-to-work
ex-palantir FDEs exploring
forward-deployed between-roles
software-engineer github-hireable San Francisco
```

Role families in the app (API values in backticks):

| Dashboard                 | Short    | API                         |
| ------------------------- | -------- | --------------------------- |
| Forward-Deployed Engineer | FDE      | `forward-deployed-engineer` |
| Software Engineer         | SWE      | `software-engineer`         |
| Deployment Strategist     | DS       | `deployment-strategist`     |
| Founding Engineer         | Founding | `founding-engineer`         |

## Filters

| Filter                                                        | Meaning                                                                                                                                                                                                                                                                                                                                  |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Company                                                       | Name or fragment (current, past, or “left N months ago”)                                                                                                                                                                                                                                                                                 |
| Left at least N months ago                                    | Alumni window                                                                                                                                                                                                                                                                                                                            |
| Currently there                                               | `company_current`                                                                                                                                                                                                                                                                                                                        |
| Minimum tenure at that company                                | months                                                                                                                                                                                                                                                                                                                                   |
| Active during                                                 | `YYYY-MM`                                                                                                                                                                                                                                                                                                                                |
| Role family                                                   | One of the four families above                                                                                                                                                                                                                                                                                                           |
| Keywords                                                      | People / name / headline (`q_in`)                                                                                                                                                                                                                                                                                                        |
| School, skill, location                                       | Graph fields                                                                                                                                                                                                                                                                                                                             |
| Languages                                                     | Spoken-language nodes only (`languages`, `language_match` any/all, `exclude_languages`). Does not match employer or headline.                                                                                                                                                                                                            |
| Certification                                                 | `certifications` is a JSON array string of up to 10 terms, each a case-insensitive literal substring of a recorded certification name or issuing authority. Terms use `any` (default) or `all` via `certification_match`; singular `certification` remains a compatibility alias. Recorded relationships do not verify current validity. |
| Open to work / Between roles / Exploring / Available for hire | Flags (`open_to_work`, `between_roles`, `exploring`, `github_hireable`)                                                                                                                                                                                                                                                                  |

Full query params: [GET /people](/api-reference/people/search).

To browse a company roster instead of a people query, use [Companies](/guides/companies).

For the source and meaning of each flag, see [Availability](/guides/availability).

## Exploring

FreshTalent's AI assesses whether someone looks open to a new employment role now, using profile text and changes observed in the last 30 days. Unchanged openness can qualify without a new edit. People marked Open to work or Between roles are excluded. Routine profile polishing or a completed job move alone is not enough.

Hover over or select the badge for an AI explanation. Highlighted text opens the supporting current snapshot or before/after change, with its observation date. See [how we detect exploration](/guides/availability#exploring) for the process, a worked example, and how to interpret the evidence.

## Compact vs full

| View    | Who uses it         | What you get                          |
| ------- | ------------------- | ------------------------------------- |
| Compact | MCP, `view=compact` | Slug, headline, current, match, flags |
| Full    | Dashboard default   | Dossier-shaped rows                   |

Open a person for coworkers and similar people (`include=coworkers,similar`).

## Role family vs Title

The search bar **Role** token has two modes:

| Mode in the editor | What it matches                                          |
| ------------------ | -------------------------------------------------------- |
| **Role family**    | One of the four families above (FDE, SWE, DS, Founding). |
| **Title**          | Job titles (`contains` or `exact`).                      |

Name + headline keywords do **not** search job titles. Use Role → **Title** for that.

## Export

On a result set, **Export** (dashboard only). CSV or JSON.

| Scope           | What you get                                              |
| --------------- | --------------------------------------------------------- |
| **This search** | The filtered set behind the match count. Capped at 1,000. |
| **This page**   | Rows currently on screen.                                 |

## Recent searches

The empty Search page shows **Recent searches** (last 8, this browser) plus recommended queries. Sharing a Search URL reuses the same filters. Persist for the org with [POST /queries](/api-reference/queries/save), or start a [Target](/guides/targets).

## The echoed query

Every search returns `query` — the snake\_case object that actually ran. That object is what you:

* save with [POST /queries](/api-reference/queries/save)
* reuse on `GET /people` for a repeat graph search
* adapt the filters for discovery; Target discovery uses a different schema and is not an exact replay of the graph search. See [Search query compatibility](/api-reference/targets/create#search-query-compatibility).

<Warning>
  Do not hand-roll filter JSON. Run a search, copy `query`.
</Warning>

## From an agent

MCP tool `search` accepts `nl` and/or the same structured filters. It returns `{slug,s}` rows plus the echoed query. See [Claude & Cursor](/mcp-setup).
