LinkedIn Jobs MCP Server
Enables users to search LinkedIn's public job listings with advanced filters like location, salary, and experience level. It allows MCP-compatible clients to retrieve real-time job opportunities without requiring LinkedIn authentication or API keys.
README
LinkedIn Jobs MCP Server
A Model Context Protocol (MCP) server that enables Claude and other MCP clients to search LinkedIn jobs directly. Built with TypeScript and the official MCP SDK.
Features
- 🔍 Advanced Job Search: Search LinkedIn jobs with multiple filters
- 🎯 Smart Filtering: Filter by location, job type, experience level, salary, and more
- ⚡ Fast & Reliable: Uses the proven
linkedin-jobs-apipackage - 🔧 Easy Integration: Works with Claude Desktop, Claude Code, and any MCP-compatible client
Installation
Prerequisites
- Node.js 18 or higher
- npm or yarn
Setup
- Clone or download this repository
cd linkedin-mcp-server
- Install dependencies
npm install
- Build the server
npm run build
Usage with Claude Desktop
Configure Claude Desktop
-
Open your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the server configuration:
{
"mcpServers": {
"linkedin-jobs": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/linkedin-mcp-server/build/index.js"
]
}
}
}
Important: Replace /ABSOLUTE/PATH/TO/ with the actual path to your project directory.
- Restart Claude Desktop to load the new server
Using npx (Alternative)
You can also run the server using npx after publishing to npm:
{
"mcpServers": {
"linkedin-jobs": {
"command": "npx",
"args": [
"-y",
"linkedin-jobs-mcp-server"
]
}
}
}
Available Tools
search_linkedin_jobs
Search for jobs on LinkedIn with advanced filtering options.
Required Parameters:
keyword(string): Job title or keywords to search forlocation(string): Location to search in (city, state, or "remote")
Optional Parameters:
dateSincePosted(enum): "past month", "past week", "24hr"jobType(enum): "full time", "part time", "contract", "temporary", "volunteer", "internship"remoteFilter(enum): "on site", "remote", "hybrid"salary(enum): "40000", "60000", "80000", "100000", "120000" (minimum salary)experienceLevel(enum): "internship", "entry level", "associate", "senior", "director", "executive"limit(string): Number of results (1-100, default: "10")sortBy(enum): "recent", "relevant"page(string): Page number for pagination (default: "0")
Example Queries
Once configured, you can ask Claude things like:
"Search for software engineer jobs in San Francisco"
"Find remote product manager positions posted in the past week"
"Look for entry-level data analyst jobs in New York with a minimum salary of $80,000"
"Show me senior full-time positions for machine learning engineers in Seattle"
Example Response
Found 10 job(s) for "software engineer" in "San Francisco":
1. Senior Software Engineer
Company: Tech Corp
Location: San Francisco, CA
Posted: 2 days ago
Salary: $150,000 - $200,000
Apply: https://linkedin.com/jobs/view/...
2. Full Stack Software Engineer
Company: Startup Inc
Location: San Francisco, CA (Hybrid)
Posted: 1 week ago
Apply: https://linkedin.com/jobs/view/...
...
Development
Build
npm run build
Watch mode (for development)
npm run watch
Test with MCP Inspector
The MCP Inspector is a useful tool for testing your server:
npm run inspector
This will open a web interface where you can test the server's tools interactively.
How It Works
This MCP server:
- Receives requests from Claude (or any MCP client) via the stdio transport
- Validates parameters using Zod schemas
- Calls the LinkedIn Jobs API (via
linkedin-jobs-apipackage) - Formats results into readable text responses
- Returns data back to the client
The server uses web scraping through the linkedin-jobs-api package, which accesses LinkedIn's public job listings. No authentication or API keys are required.
Architecture
Claude Desktop (MCP Client)
↓
stdio transport
↓
LinkedIn MCP Server (This project)
↓
linkedin-jobs-api package
↓
LinkedIn public job listings
Troubleshooting
Server not appearing in Claude Desktop
- Check that the path in your config is absolute (not relative)
- Ensure the build directory exists (
npm run build) - Restart Claude Desktop completely
- Check Claude Desktop logs for errors
No results returned
- Try broader search terms
- Remove filters to see if you get results
- Check if LinkedIn has jobs for your search criteria
- Try different locations
Build errors
- Ensure you have Node.js 18+ installed
- Delete
node_modulesandbuilddirectories - Run
npm installagain - Run
npm run build
Technical Details
- MCP SDK Version: 1.0.4
- Transport: stdio (standard input/output)
- Language: TypeScript
- Runtime: Node.js 18+
- Data Source: LinkedIn public job listings (via linkedin-jobs-api)
Limitations
- Rate limiting: The underlying API may have rate limits
- Public data only: Only accesses publicly available job listings
- No authentication: Does not require or support LinkedIn authentication
- Scraping-based: Uses web scraping, which means it could break if LinkedIn changes their HTML structure
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - feel free to use this in your own projects!
Related Projects
- Model Context Protocol - Official MCP specification and SDKs
- linkedin-jobs-api - The LinkedIn jobs scraping package used by this server
- MCP Servers - Official collection of MCP servers
Support
If you encounter issues:
- Check the Troubleshooting section
- Review the MCP documentation at https://modelcontextprotocol.io
- Open an issue on GitHub with details about your problem
Acknowledgments
- Built with the Model Context Protocol by Anthropic
- Uses the excellent linkedin-jobs-api package
- Inspired by the growing MCP ecosystem
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.