Naukri API: Search jobs
Finds open public Naukri job listings by keywords, with optional city and experience filters, in Naukri's search order. Undisclosed salaries have no numeric range.
Unofficial. Not affiliated with or endorsed by Naukri.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- City optional
city City to search, for example Bengaluru. Leave blank for all India.
Bengaluru
Default
.- Keywords, required
keywords Job title or skills, for example java developer.
java developer
- Max Results optional
max_results Most listings to return, for example 20. Maximum 100.
25
Whole number from 1 to 100. Default
20.- Experience Years optional
experience_years Years of experience, for example 3. Omit for any experience.
3
Whole number from 0 to 30.
Input as JSON
{ "city": "Bengaluru", "keywords": "java developer", "max_results": 25, "experience_years": 3}Output
{ "jobs": [ { "title": "IN-Senior Associate_ Java Developers", "salary": "Not disclosed", "company": "PwC Service Delivery Center", "job_link": "https://www.naukri.com/job-listings-in-senior-associate-java-developers-pricewaterhouse-coopers-service-delivery-center-kolkata-bengaluru-2-to-5-years-201124513509" , "locations": "Bengaluru", "key_skills": [ "spring boot", "Maven", "SAP" ], "posted_date": "2024-11-20", "company_rating": 3.3, "experience_required": "2-5 Yrs", "salary_max_inr_per_year": null, "salary_min_inr_per_year": null }, { "title": "Java Developer (Pan India).", "salary": "Not disclosed", "company": "Infosys", "job_link": "https://www.naukri.com/job-listings-java-developer-pan-india-infosys-pune-chennai-bengaluru-3-to-6-years-050325024788" , "locations": "Bengaluru, Pune, Chennai", "key_skills": [ "Hibernate", "Java Spring Boot", "J2EE Development" ], "posted_date": "2026-09-20", "company_rating": 3.5, "experience_required": "3-6 Yrs", "salary_max_inr_per_year": null, "salary_min_inr_per_year": null }, { "title": "Java Developer", "salary": "Not disclosed", "company": "CIEL HR", "job_link": "https://www.naukri.com/job-listings-java-developer-ciel-hr-bengaluru-1-to-3-years-070926004638" , "locations": "Bengaluru", "key_skills": [ "Java", "Rest", "Spring Boot" ], "posted_date": "2026-09-07", "company_rating": null, "experience_required": "1-3 Yrs", "salary_max_inr_per_year": null, "salary_min_inr_per_year": null } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"naukri.com/search_jobs","input":{"city":"Bengaluru","keywords":"java developer","max_results":25,"experience_years":3}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "naukri.com/search_jobs" , "input": { "city": "Bengaluru", "keywords": "java developer", "max_results": 25, "experience_years": 3 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "naukri.com/search_jobs" , "input": { "city": "Bengaluru", "keywords": "java developer", "max_results": 25, "experience_years": 3 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run naukri.com/search_jobs# with {"city":"Bengaluru","keywords":"java developer","max_results":25,"experience_years":3}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "keywords" ], "properties": { "city": { "type": "string", "default": "", "description": "City to search, for example Bengaluru. Leave blank for all India." }, "keywords": { "type": "string", "minLength": 1, "description": "Job title or skills, for example java developer." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Most listings to return, for example 20. Maximum 100." }, "experience_years": { "type": "integer", "maximum": 30, "minimum": 0, "description": "Years of experience, for example 3. Omit for any experience." } }}Output schema
{ "type": "object", "required": [ "jobs" ], "properties": { "jobs": { "type": "array", "items": { "type": "object", "required": [ "title", "company", "experience_required", "salary", "salary_min_inr_per_year", "salary_max_inr_per_year", "locations", "key_skills", "posted_date", "company_rating", "job_link" ], "properties": { "title": { "type": "string" }, "salary": { "type": [ "string", "null" ] }, "company": { "type": "string" }, "job_link": { "type": "string" }, "locations": { "type": [ "string", "null" ] }, "key_skills": { "type": "array", "items": { "type": "string" } }, "posted_date": { "type": [ "string", "null" ], "format": "date" }, "company_rating": { "type": [ "number", "null" ] }, "experience_required": { "type": [ "string", "null" ] }, "salary_max_inr_per_year": { "type": [ "number", "null" ] }, "salary_min_inr_per_year": { "type": [ "number", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
naukri.com/search_jobs- Returns
- title, company, experience, salary and INR range, locations, key skills, posted date, company rating, job link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method naukri.com/search_jobs with the inputs above.
Ask your agent
- Find me 15 open React developer jobs in Pune for someone with 4 years of experience, with salary ranges and key skills
- Pull up data analyst openings on Naukri in Hyderabad — I have 2 years of experience. Show company ratings and posting dates.
- What DevOps engineer roles are currently listed across India? Give me up to 50 with salary in INR and job links.
- I'm a fresher looking for Python developer jobs in Chennai, show me what's posted on naukri.com
- List product manager vacancies in Gurgaon suitable for 8 years of experience, including locations, required skills, and links to apply
See more
Finds open ZipRecruiter jobs by keywords and location, with distance and posting-date filters. Returns up to 100 public listings in search order; details that are not shown are null.
ziprecruiter.com/search_jobsSearches public LinkedIn job listings by keywords and location, with optional date, seniority, employment type and company filters.
linkedin.com/search_jobsSearches open Indeed jobs by keywords, location, country, posting age and job type, returning public first-page results in displayed order.
indeed.com/search_jobsFinds current SEEK jobs in Australia by keywords, with optional location, work type and posting window. Results follow SEEK search order; some promoted listings may appear outside the selected posting window.
seek.com.au/search_jobsSearches Remote OK jobs by role or skill. Results can be filtered by listed region and by minimum annual USD salary.
remoteok.com/search_jobsSearches USAJOBS federal jobs by keywords, location, salary threshold and applicant group, in website relevance order. Salary ranges may start below the threshold; annual pay or remote status is null when the announcement does not state it.
usajobs.gov/search_jobsLists a company's public Workday jobs, optionally narrowed by keywords and location, newest first with exact posting dates among up to 500 checked postings. Workday may cap the reported total at 2,000; location totals reflect checked postings.
myworkdayjobs.com/list_company_jobsSearches H-1B labor condition filings by employer, job title, city and year. Returns salary statistics across all matched filings and the highest-paid filings with case status.
h1bdata.info/search_salaries