linkedin-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@linkedin-mcpsearch for senior data engineer jobs posted today with easy apply"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
linkedin-mcp
An MCP server that automates LinkedIn job search and Easy Apply using Playwright + Claude Code. Search for jobs matching your skill set, auto-fill application forms from your profile, and track applications in a local database — all from a Claude conversation.
What it does
Tool | Description |
| Open a browser to log in to LinkedIn. Run once — session is saved. |
| Search LinkedIn jobs with smart scoring against your resume skills. |
| Fetch the full job description from a LinkedIn job URL. |
| Inspect a job's Easy Apply form fields without submitting. |
| Navigate all form steps, fill from your profile, and submit. |
| Search + apply to multiple jobs in one go, with dry-run safety. |
Related MCP server: LinkedIn MCP Server
Prerequisites
Python 3.11+
Claude Code (or any MCP-compatible client)
A LinkedIn account
Setup
1. Clone and install dependencies
git clone https://github.com/Shrushti8/linkedin-mcp.git
cd linkedin-mcp
pip install -r requirements.txt
playwright install chromium2. Create your credentials file
cp .env.example .env
# Edit .env and fill in your LinkedIn email, password, and resume path3. Create your profile
Run the interactive setup script — it asks you all the questions and generates profile.json:
python setup.pyOr copy profile.template.json to profile.json and fill it in manually.
profile.json is gitignored and stays local to your machine.
4. Add the MCP server to Claude Code
Add this to your claude_desktop_config.json (or Claude Code MCP settings):
{
"mcpServers": {
"linkedin": {
"command": "python",
"args": ["/absolute/path/to/linkedin-mcp/server.py"]
}
}
}5. Log in to LinkedIn
In a Claude conversation, call the linkedin_login tool. A browser window opens — log in manually (or it auto-fills if you set LINKEDIN_EMAIL/LINKEDIN_PASSWORD in .env). Your session is saved to the session/ folder for all future calls.
Usage examples
Search for jobs:
search_jobs(keywords="Senior Data Engineer", days=1, easy_apply_only=true)Inspect a form before applying:
easy_apply_poc(url="https://www.linkedin.com/jobs/view/1234567890")Apply to a single job (dry run first):
easy_apply_submit(url="...", dry_run=true)
easy_apply_submit(url="...", dry_run=false)Batch apply to top 5 Easy Apply jobs:
batch_easy_apply(limit=5, keywords="Data Engineer", days=1)How job scoring works
Each job gets a resume_score based on how many keywords from your resume_score_weights (in profile.json) appear in the job title and description. Big-name companies get a +3 bonus. Results are sorted by score descending.
You can tune the weights in profile.json to match your own skill set.
How form filling works
easy_apply_submit uses a longest-keyword-match approach against your profile.json:
Text fields are matched by label (e.g. "years of python experience" → your Python YOE)
Salary/CTC fields use your
current_ctc_lpaandexpected_ctc_lpaYes/No questions are reasoned about using your notice period, bond preference, relocation preference, and skills you don't have
Jobs with questions the tool can't answer are returned in
needs_user_input— never submitted blind
Privacy
Your personal data (profile.json, .env, session/, applications.db) is gitignored and never committed. See .gitignore.
Troubleshooting
Tool behavior didn't change after editing a file?
The MCP server loads Python once at startup. After any code edit, reconnect the server: in Claude Code, go to /mcp → linkedin → Reconnect.
Redirected to login page during search?
Your session expired. Run linkedin_login again to refresh it.
profile.json not found warning?
Run python setup.py to create your profile.
This server cannot be deployed
Maintenance
Related MCP Connectors
- mcpOAuthcom.curviate
LinkedIn actions for AI agents: search, messaging, posts and invites, as hosted MCP tools.
LinkedIn outreach, commenting, scheduling, and data via Claude and human approval gates.
LinkedIn outreach, commenting, scheduling, and data via Claude and human approval gates.
LinkedIn for AI agents: inbox, invitations, Sales Navigator search, posts. Quotas and webhooks.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude AI to interact with LinkedIn through browser automation, including profile reading, people and job search, company research, post publishing, and profile editing.MIT
- AlicenseNot gradedqualityDmaintenanceAutomates LinkedIn job search and profile editing via Playwright browser automation, enabling targeted job searches and profile updates without manual UI interaction.1MIT
- AlicenseNot gradedqualityDmaintenanceAutomates LinkedIn recruiting tasks such as login, search with filters, paginated people search, and profile detail retrieval via Playwright.11 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables LinkedIn automation including search, profile viewing, connection management, job details, and Easy Apply via Playwright with stealth and rate limiting.82 npmMIT