Skip to main content
Glama

Veezee: LinkedIn people & company data for agents

Search people on LinkedIn

linkedin_search_people
Read-only

Find people on LinkedIn by keywords and filters. The right tool when you have a name, role, or 'who is the X at Y' question without a profile URL. Pass keywords (free text: name, title, or both) and any of first_name, last_name, title, school, current_company, past_company. If keywords is omitted it is derived from the name or title filters; school or company filters alone are rejected with INVALID_INPUT, so include keywords with those. Company filters accept a company name, slug, numeric id, or URN. current_company names are matched by LinkedIn's own company search: typo-tolerant and fuzzy, so results can include people whose headline merely mentions the company; when you need exact filtering, pass the numeric id or URN (linkedin_get_company returns both). past_company names are resolved to an id for you. Costs 10 credits including the first 10 results; each further 10 results add 1 credit (limit max 30; trial keys max 10). A cursor page is a NEW call priced the same way by its own limit, so one limit=30 call is much cheaper than three limit=10 pages; prefer a larger limit over paginating. Do NOT combine a past_company NAME or a company-URL filter with limit=30: resolving those spends one of the call's three internal fetches, so that combination is rejected; keep limit<=20 with them or pass the numeric id. current_company names never spend a fetch, so they combine with any limit. Returns name, position, location, urn, public_identifier per result, a cursor for the next page, and total_matches. Results with is_anonymous=true are private profiles; do not pass them to linkedin_get_profile. For one known person with a URL/slug, call linkedin_get_profile directly instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoHow many results to return.
titleNoCurrent job title filter.
cursorNoCursor from a previous page.
schoolNoSchool or university name filter.
keywordsNoFree-text query: a name, a title, or both.
freshnessNorecent (default) serves cached data from the last few hours when available; realtime forces a live fetch for +2 credits (refunded if we fall back to cached data). Trial keys are cached-only and reject realtime with TRIAL_CAP_EXCEEDED; paying upgrades this same key to unlock it.recent
last_nameNoLast-name filter, exact match.
first_nameNoFirst-name filter, exact match.
max_creditsNoSpend ceiling for this one call. The call is rejected (nothing charged) if its quote exceeds this. Only the quote is ever reserved, never this ceiling.
past_companyNoSame accepted forms as current_company; names are resolved to an id server-side.
current_companyNoCompany name, slug, numeric id, or urn:li:fsd_company URN. Names are fuzzy-matched by LinkedIn; ids and URNs filter exactly.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
usageYes
commonYes
entityYes
platformYes
freshnessYes
data_as_ofYes
canonical_urlYes
schema_versionYes
platform_fieldsYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses credit costs, caching behavior (freshness parameter), fuzzy matching on company names, the meaning of is_anonymous in results, and the rejection of certain parameter combinations. Annotations already indicate readOnlyHint and openWorldHint, but the description adds extensive behavioral context beyond these, with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive and front-loaded with the main purpose, but it is lengthy due to detailed caveats and credit explanations. While every sentence adds value, it could be slightly more concise without losing essential information. Overall well-structured for a complex tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, output schema, annotations, sibling tools), the description covers all important aspects: return value structure, credit costs, pagination behavior, edge cases (is_anonymous, trial keys), and interaction with other tools. It is complete enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds crucial meaning: explains that keywords can be derived from name/title filters, clarifies the accepted forms for company filters (name, slug, ID, URN), describes how current_company and past_company are resolved differently, and details the behavior of freshness. This goes well beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: "Find people on LinkedIn by keywords and filters." It further specifies the use case: "The right tool when you have a name, role, or 'who is the X at Y' question without a profile URL." This distinguishes it from siblings like linkedin_get_profile, which is recommended for known persons with a URL.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use and when-not-to-use guidance: for one known person with a URL/slug, call linkedin_get_profile directly; warns against combining past_company NAME or company-URL filter with limit=30; explains when to use numeric IDs for exact filtering. It also details credit costs and pagination trade-offs, helping the agent make efficient choices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources