naukri-mcp
A local MCP server for your ownNaukri.com account: search jobs, view job details, save/apply to jobs, checkapplied jobs, read your profile, and read recruiter messages — from ClaudeDesktop (or any MCP-compatible client). Built onpatchright (astealth-patched Playwright) driving a real Chromium browser with apersistent, logged-in profile, so you authenticate once by hand and everytool call afterward reuses that session headlessly.
Not affiliated with, endorsed by, or supported by Naukri.com / Info Edge(India) Ltd. "Naukri" is a trademark of its respective owner, used hereonly to describe interoperability.
Read this before you install
- This automates your own Naukri account, under your own login. Itdoesn't bypass authentication or access anything you couldn't already seeyourself — it drives a real browser session as you.
- Naukri's Terms of Service, like most job sites, restrict automated / botaccess to accounts. Using this is a judgment call about your ownaccount. Keep call volume reasonable — don't loop
search_jobs, don'tmass-apply — to avoid tripping anti-bot defenses or a manual accountreview. This project claims no responsibility for actions taken with it;you are responsible for how you use it and for complying with Naukri'sterms. - This never sees or handles your password.
naukri_loginopens a real,visible Chrome window and you log in (including any OTP) yourself; thetool only watches for the session cookie that appears afterward. - Selectors will drift. Naukri redesigns its markup periodically, likeany large site.
extract.pytries a few known selector variants and fallsback to raw page text rather than crashing, but expect the occasional PRto fix a broken selector after a Naukri redesign. Confirmed workingend-to-end (login +get_my_profile) as of the version in this repo — seecommit history / releases for what's been verified since.
Requirements
- macOS or Linux, Python 3.10+
- Xcode Command Line Tools on macOS if you don't already have them(
xcode-select --install) —python3 -m venvneeds them - ~200MB free for the Chromium build
patchrightdownloads
1. Install
git clone https://github.com/<you>/naukri-mcp.git
cd naukri-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip # old pip can't do editable installs from pyproject.toml alone
pip install -e .
python3 -m patchright install chromium
2. Register it with your MCP client
For Claude Desktop, add an entry to~/Library/Application Support/Claude/claude_desktop_config.json (macOS) orthe equivalent config on your platform:
{
"mcpServers": {
"naukri": {
"command": "/absolute/path/to/naukri-mcp/.venv/bin/naukri-mcp",
"args": []
}
}
}
Get the absolute path with which naukri-mcp (venv activated). Restart yourMCP client afterward so it picks up the new server.
3. First login
Call the naukri_login tool. A real, visible Chrome window opens atNaukri's login page; log in there yourself (including any OTP/captcha). Thetool polls for up to 5 minutes and saves your session to ~/.naukri-mcp/once it detects you're logged in. After that, naukri_session_statusreports logged_in: true and every other tool runs headless.
Tool list
| Tool | What it does |
|---|---|
naukri_login |
Interactive login handoff |
naukri_session_status |
Check if the saved session is still valid |
naukri_close_session |
Close the browser to free resources |
search_jobs |
Search listings by keywords / location / experience |
get_job_details |
Full JD for one job URL |
get_recommended_jobs |
Naukri's "recommended for you" list |
save_job |
Bookmark a job |
get_saved_jobs |
List bookmarked jobs |
apply_to_job |
Apply using your existing profile/resume |
get_applied_jobs |
List jobs you've applied to |
get_my_profile |
Headline, key skills, resume status |
get_profile_views |
Who's viewed your profile recently |
get_inbox |
Recent recruiter conversations |
get_conversation |
Read one conversation's messages |
send_message |
Reply to a recruiter |
search_companies |
Search the company directory |
get_company_profile |
One company's overview/ratings/open roles |
Naukri doesn't have a real equivalent of LinkedIn's social graph (feed,connections, employee lists), so this isn't a 1:1 port of a LinkedIn-styleMCP server — apply_to_job / get_applied_jobs / save_job /get_saved_jobs reflect Naukri's actual core value (the job pipelineitself) instead.
Troubleshooting
ModuleNotFoundError: No module named 'mcp.server.fastmcp' — you havemcp 2.x, which renamed that module to mcp.server.mcpserver(MCPServer replaces FastMCP, same .tool() / .run() API). This repoalready targets 2.x; if you still hit this, check pip show mcp.
A tool returns raw_text or a note instead of structured data — aselector didn't match. Open an issue with the raw_text snippet (redactanything personal) or send a PR against extract.py / tools_*.py.
License
MIT — see LICENSE.