search_people
Find LinkedIn professionals by applying filters for name, company, title, location, industry, and school.
Instructions
Search LinkedIn professionals with advanced filters and criteria
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | Search keywords | |
| firstName | No | First name | |
| lastName | No | Last name | |
| companyName | No | Current company name | |
| title | No | Job title | |
| location | No | Location | |
| industry | No | Industry | |
| school | No | School/university |
Implementation Reference
- src/services/client.service.ts:96-113 (handler)The core handler that executes the LinkedIn API search for people. Builds query parameters from keywords, location, currentCompany, and industries, then makes a GET request to the LinkedIn API.
public async searchPeople(params: SearchPeopleParams): Promise<SearchPeopleResult> { const queryParams = new URLSearchParams() const paramMapping: Record<string, string | undefined> = { keywords: params.keywords, location: params.location } Object.entries(paramMapping) .filter(([_, value]) => value !== undefined) .forEach(([key, value]) => queryParams.append(key, value as string)) this.appendArrayParams(queryParams, { 'current-company': params.currentCompany, 'facet-industry': params.industries }) return this.makeRequest<SearchPeopleResult>('get', `/search/people?${queryParams.toString()}`) - src/schemas/linkedin.schema.ts:18-23 (schema)Zod validation schema defining the input parameters for search-people: keywords (string), location (string), currentCompany (array of strings), and industries (array of strings).
searchPeople: { currentCompany: z.array(z.string()).optional().describe('Filter by current company'), industries: z.array(z.string()).optional().describe('Filter by industries'), keywords: z.string().optional().describe('Keywords to search for LinkedIn Profiles'), location: z.string().optional().describe('Filter by location') }, - src/server.ts:68-82 (registration)Registers the 'search-people' tool with the MCP server, linking the schema (linkedinApiSchemas.searchPeople) to the handler that calls clientService.searchPeople(params).
this.server.tool( 'search-people', 'Search for LinkedIn profiles based on various criteria', linkedinApiSchemas.searchPeople, async (params) => { this.logger.info('Executing LinkedIn People Search', { keywords: params.keywords }) try { const results = await this.clientService.searchPeople(params) return this.createResourceResponse(results) } catch (error) { this.logger.error('LinkedIn People Search Failed', error) throw error } } ) - src/types/linkedin.d.ts:5-10 (schema)TypeScript type definition for SearchPeopleParams used as input to the searchPeople handler.
export interface SearchPeopleParams { keywords?: string location?: string currentCompany?: string[] industries?: string[] } - src/types/linkedin.d.ts:88-95 (schema)TypeScript type definition for SearchPeopleResult returned by the searchPeople handler.
export interface SearchPeopleResult { people: LinkedInProfile[] paging: { count: number start: number total: number } }