search_candidates
Search the talent graph. Returns ANONYMOUS match cards — headline, skills (with skills_matched showing which of YOUR terms hit), seniority, location, availability, salary range, and a short snippet — but NO name, full resume, or contact. Call get_candidate (a metered reveal) for the deeper anonymous profile. Filter by skills, location, seniority, salary, experience, availability, and more; sort by recency (default) or skill_match. Always paginated (max 25 per page).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page. | |
| sort | No | Result order. When `skills` are supplied the default is skill_match: candidates matching MORE of your skills terms first (ties by most recently updated) — pure arithmetic over your own criteria, no fit scoring. Pass "recency" to order purely by recent updates; searches without `skills` are always recency-ordered. | |
| limit | No | Results per page (max 25). | |
| skills | No | Skills to match (any of). Case-insensitive partial match — use plain terms like "React", "Node", "Postgres"; they also match versioned/variant skills ("React 19", "Node.js", "PostgreSQL"). | |
| location | No | City with state ("Schaumburg, IL") or a 5-digit zip ("60133" — most precise). Geocoded locally; combine with radius_miles for distance search. Unresolvable text falls back to substring match. | |
| remote_ok | No | Only candidates open to remote/hybrid. | |
| salary_max | No | ||
| salary_min | No | ||
| availability | No | ||
| radius_miles | No | With location: include candidates within this many miles (e.g. 5, 10, 25, 50; max 100). Omit for exact-place matching. | |
| updated_since | No | ISO timestamp — only resumes updated since. | |
| employment_types | No | Engagement types to match (any of): full-time, part-time, contract, freelance, internship. Synonyms/variants are normalized. | |
| seniority_levels | No | Seniority levels to match (any of): entry, junior, mid, senior, staff, principal, manager, director, executive. | |
| open_to_relocation | No | Only candidates willing to relocate for the right role. | |
| work_authorization | No | Filter by work authorization: "authorized" (no sponsorship needed) or "sponsorship-required". | |
| work_location_types | No | Work-location preferences to match (any of): remote, hybrid, onsite. | |
| experience_years_max | No | ||
| experience_years_min | No |