MCP server for LinkedIn job search with comprehensive filtering - search jobs, filter by location, experience, remote work, and more
npm install linkedin-mcp-searchA Model Context Protocol (MCP) server for LinkedIn job search. Search jobs, filter by location, experience level, remote work, and more. Works with any MCP-compatible client including Claude Desktop, Cursor, VS Code, and other AI assistants.


Add to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.):
Claude Desktop (claude_desktop_config.json):
``json`
{
"mcpServers": {
"linkedin": {
"command": "npx",
"args": ["-y", "linkedin-mcp-search"]
}
}
}
Cursor (.cursor/mcp.json in your project or global config):
`json`
{
"mcpServers": {
"linkedin": {
"command": "npx",
"args": ["-y", "linkedin-mcp-search"]
}
}
}
`bash`
npm install -g linkedin-mcp-search
Then configure:
`json`
{
"mcpServers": {
"linkedin": {
"command": "linkedin-mcp"
}
}
}
`bash`
git clone https://github.com/yourusername/linkedin-mcp-search.git
cd linkedin-mcp-search
npm install
npm run build
Then configure with full path:
`json`
{
"mcpServers": {
"linkedin": {
"command": "node",
"args": ["C:/path/to/linkedin-mcp-search/dist/index.js"]
}
}
}
| Platform | Config File Location |
|----------|---------------------|
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |%APPDATA%\Claude\claude_desktop_config.json
| Claude Desktop (Windows) | |.cursor/mcp.json
| Cursor (Project) | in your project root |~/.cursor/mcp.json
| Cursor (Global) | |
| VS Code | Via MCP extension settings |
| Other MCP Clients | Check your client's documentation for MCP server configuration |
MCP (Model Context Protocol) is an open standard that works with various AI assistants and tools:
- Claude Desktop - Free desktop app from Anthropic
- Cursor - AI-powered code editor
- VS Code - Via MCP extensions
- Custom MCP Clients - Any tool that implements the MCP protocol
- Programmatic Use - Can be used directly via stdio transport
You don't need a paid subscription to use MCP servers. The protocol is open and free to use with any compatible client.
`json`
{
"mcpServers": {
"linkedin": {
"command": "npx",
"args": ["-y", "linkedin-mcp-search"],
"env": {
"LINKEDIN_CLIENT_ID": "your_client_id",
"LINKEDIN_CLIENT_SECRET": "your_client_secret"
}
}
}
}
| Tool | Description |
|------|-------------|
| search_jobs | Comprehensive job search with all filters |get_job_details
| | Get full job description and details |search_remote_jobs
| | Quick search for remote positions |search_entry_level_jobs
| | Search entry-level & internship jobs |
| Tool | Description |
|------|-------------|
| get_company | Get company information |search_companies
| | Search for companies |get_company_jobs
| | Get all jobs from a specific company |
| Tool | Description |
|------|-------------|
| get_popular_locations | List locations with LinkedIn geo IDs |get_industries
| | List industry categories |get_job_functions
| | List job function categories |build_job_search_url
| | Generate shareable LinkedIn search URL |
| Tool | Description |
|------|-------------|
| linkedin_login | Start OAuth flow (opens browser) |linkedin_logout
| | Clear stored credentials |linkedin_status
| | Check authentication status |
Once configured, you can use it with any MCP-compatible client:
`
"Search for remote software engineer jobs"
"Find entry-level data science positions in New York"
"Show me Python developer jobs posted in the last 24 hours"
"Get details for this LinkedIn job"
"Search for product manager jobs at Google"
"Find senior DevOps positions with remote work options"
`
| Parameter | Type | Description |
|-----------|------|-------------|
| keywords | string | Search terms (e.g., "React Developer") |location
| | string | City, state, or country |geoId
| | string | LinkedIn geographic ID (more precise) |distance
| | number | Radius in miles (5, 10, 25, 50, 100) |jobType
| | array | full-time, part-time, contract, temporary, internship, volunteer |experienceLevel
| | array | internship, entry-level, associate, mid-senior, director, executive |workplaceType
| | array | remote, hybrid, on-site |datePosted
| | string | past-24-hours, past-week, past-month, any-time |easyApply
| | boolean | Only show Easy Apply jobs |companyIds
| | array | Filter by company IDs |sortBy
| | string | most-relevant, most-recent |start
| | number | Pagination offset |limit
| | number | Max results (default: 25, max: 50) |
- No data stored - All searches are stateless
- Public API only - Uses LinkedIn's guest job search (no scraping of private data)
- Rate limiting - LinkedIn may temporarily block if too many requests are made. Add delays between searches if needed.
You can use the MCP server directly in your own applications:
`javascript
import { jobService } from 'linkedin-mcp-search';
const results = await jobService.searchJobs({
keywords: 'Software Engineer',
location: 'San Francisco',
limit: 10
});
`
MCP is an open protocol. Any client that supports MCP can use this server:
- VS Code - Install an MCP extension and configure the server
- Custom Clients - Implement MCP client protocol to connect
- CLI Tools - Use via stdio transport
The server communicates via stdio using JSON-RPC, following the MCP specification.
`bashClone the repository
git clone https://github.com/saisudhir14/linkedin-mcp-search.git
cd linkedin-mcp-search
Publishing to npm
`bash
Login to npm
npm loginUpdate version in package.json
npm version patch # or minor/majorPublish
npm publish
`Troubleshooting
$3
- Ensure Node.js 18+ is installed: node --version`MIT - See LICENSE file
This project is not affiliated with LinkedIn. It uses LinkedIn's public guest API for job searching. Use responsibly and in accordance with LinkedIn's terms of service.
---
Made for job seekers everywhere