From exa-people-search
People research using Exa search. Finds LinkedIn profiles, professional backgrounds, experts, team members, and public bios across the web. Use this skill whenever the user wants to search for people, find experts in a domain, look up professional profiles, research someone's background, find team members at a company, identify executive buyers, or do GTM people research - even if they don't explicitly mention "Exa" or "people search." Also use when the user asks to find VPs, CTOs, engineers, founders, or any role at a company or in a region.
npx claudepluginhub analyticalmonk/agent-helpersThis skill uses the workspace's default tool permissions.
This skill uses Exa's neural search API to find people across LinkedIn profiles, personal sites, and the web. Exa's `category: "people"` mode returns structured profile data (name, title, company, location, experience) that you can filter and organize for the user.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
This skill uses Exa's neural search API to find people across LinkedIn profiles, personal sites, and the web. Exa's category: "people" mode returns structured profile data (name, title, company, location, experience) that you can filter and organize for the user.
The Exa MCP server must be configured. If it's not available, tell the user to run:
claude mcp add --transport http exa "https://mcp.exa.ai/mcp?tools=web_search_advanced_exa"
Then restart Claude Code.
ONLY use web_search_advanced_exa. Do NOT use web_search_exa or any other Exa tools - they lack the category and filtering parameters needed for people search.
Never run Exa searches in main context. Always spawn Task agents to keep the main context clean:
This matters because people searches can return large payloads with full profile text, and running multiple queries in parallel compounds this.
Exa uses neural matching - describe what you're looking for in natural language rather than using keyword-style queries.
numResults)Tune to user intent rather than hardcoding:
| User says | numResults |
|---|---|
| "a few" | 10-20 |
| specific number | match it |
| 1 company, 1 city | 10-15 |
| 1 company, 2-3 cities | 25 |
| 1 company, 5+ cities | 50 |
| multiple companies | 25-50 |
| "comprehensive" or "all" | 50-100 |
| ambiguous | ask the user |
Higher counts return more results but also more noise. Since you filter for the user, erring on the high side is fine.
Exa returns different results for different phrasings. For broad searches:
Use the appropriate Exa category depending on what you need:
| Category | Use for | Notes |
|---|---|---|
people | LinkedIn profiles, public bios | Primary for discovery. Limited filter support (see below) |
personal site | Personal blogs, portfolios, about pages | Good for deeper individual research |
news | Press mentions, interviews, speaker bios | Supports date filters |
No category (type: "auto") | General web results, broader context | All filters available |
Start with category: "people" for profile discovery, then use other categories for deeper research on specific individuals.
When using category: "people", these parameters cause errors - do not use them:
startPublishedDate / endPublishedDatestartCrawlDate / endCrawlDateincludeText / excludeTextexcludeDomainsincludeDomains - only LinkedIn domains work (e.g., "linkedin.com"), and Exa already searches LinkedIn by default so this is rarely neededWhen searching without a category, all parameters are available (but includeText/excludeText only support single-item arrays).
Same-name companies. "Cohere" matches Cohere AI, Cohere Health, Cohere Consultants, and Cohere Technologies. "Anthropic" matches the AI lab and "Anthropic Softwares Pvt Ltd" in India. Always filter results to the correct entity.
Community vs. employees. Some companies have community programs (e.g., "Cohere Labs" researchers, "Claude Code Campus Ambassador"). These are community members, not employees. Filter accordingly when the user wants actual employees.
Location is not a hard filter. Exa uses neural matching, not exact filtering. A search for "engineer at OpenAI in London" may return OpenAI engineers in other cities too. Filter these out in post-processing - this is why higher numResults helps.
Profile truncation. At high result counts, individual profiles may be truncated. Name, title, and company are reliable; detailed work history may be cut off.
web_search_advanced_exa {
"query": "VP Engineering AI infrastructure",
"category": "people",
"numResults": 20,
"type": "auto"
}
web_search_advanced_exa {
"query": "machine learning engineer San Francisco",
"category": "people",
"additionalQueries": ["ML engineer SF", "AI engineer Bay Area"],
"numResults": 25,
"type": "deep"
}
web_search_advanced_exa {
"query": "Dario Amodei Anthropic CEO background",
"type": "auto",
"numResults": 15
}
web_search_advanced_exa {
"query": "Dario Amodei interview",
"category": "news",
"numResults": 10,
"startPublishedDate": "2024-01-01"
}
web_search_advanced_exa {
"query": "CTO or VP Engineering or VP Product at Stripe globally",
"category": "people",
"numResults": 50,
"type": "auto"
}
Return results as:
When the user asks for CSV or structured output, organize columns as: name, title, company, location, LinkedIn URL, and any additional fields they request.
Auto-fallback to Claude in Chrome browser when: