Skip to main content
Glama
felipfr
by felipfr

search_jobs

Search LinkedIn jobs using keywords, location, company, salary, experience level, and other filters to find relevant opportunities tailored to your criteria.

Instructions

Search LinkedIn jobs with advanced filters and criteria

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
companyNoCompany name
datePostedNoDate posted filter
experienceLevelNoExperience level
functionIdNoFunction ID
industryIdNoIndustry ID
jobTypeNoJob type (full-time, part-time, etc.)
keywordsNoJob search keywords
locationNoJob location
salaryNoSalary range

Implementation Reference

  • src/server.ts:105-122 (registration)
    Registers the 'search-jobs' MCP tool with input schema from linkedinApiSchemas and a handler that logs the request, calls clientService.searchJobs, and returns formatted response.
    this.server.tool( 'search-jobs', 'Search for LinkedIn job postings based on various criteria', linkedinApiSchemas.searchJobs, async (params) => { this.logger.info('Executing LinkedIn Job Search', { keywords: params.keywords, location: params.location }) try { const jobs = await this.clientService.searchJobs(params) return this.createResourceResponse(jobs) } catch (error) { this.logger.error('LinkedIn Job Search Failed', error) throw error } } )
  • Core handler function that builds query parameters from input and makes authenticated GET request to LinkedIn /jobs/search endpoint using shared makeRequest method.
    public async searchJobs(params: SearchJobsParams): Promise<SearchJobsResult> { 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, { 'company-name': params.companies, 'job-type': params.jobType }) return this.makeRequest<SearchJobsResult>('get', `/jobs/search?${queryParams.toString()}`) }
  • Zod schema defining the input parameters for the search-jobs tool, used in MCP tool registration.
    searchJobs: { companies: z.array(z.string()).optional().describe('Filter by companies'), jobType: z.array(z.string()).optional().describe('Filter by job type (e.g., Full-Time, Contract)'), keywords: z.string().optional().describe('Keywords to search for in job postings'), location: z.string().optional().describe('Filter by location') },
  • TypeScript interface defining the SearchJobsParams for type safety in the handler.
    export interface SearchJobsParams { keywords?: string location?: string companies?: string[] jobType?: string[] }
  • TypeScript interface defining the expected SearchJobsResult from LinkedIn API.
    export interface SearchJobsResult { jobs: { id: string title: string companyName: string location: string description?: string listedAt: number expireAt?: number }[] paging: { count: number start: number total: number } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/felipfr/linkedin-mcpserver'

If you have feedback or need assistance with the MCP directory API, please join our Discord server