Jobs
Naukri Scraper: Scrape Naukri Jobs Without an API
Scrape Naukri.com jobs into JSON, CSV or Excel: titles, skills, CTC salary bands, experience and AmbitionBox ratings. Input examples, API code and use cases.
Jobs
Scrape Naukri.com jobs into JSON, CSV or Excel: titles, skills, CTC salary bands, experience and AmbitionBox ratings. Input examples, API code and use cases.
Naukri.com is where most of India’s white-collar hiring happens. Every IT services firm, GCC, startup and staffing agency posts there, which makes it the best public signal for who is hiring in India, for which skills, and at what CTC. The catch: Naukri has no public job search API, and copying listings by hand stops scaling after the first page.
The Naukri Job Scraper fills that gap. You give it a Naukri search URL or a keyword with filters, and it returns structured rows with titles, companies, skills, experience ranges, salary labels and employer ratings. No Naukri login is needed.
Each job comes back as one record. The fields that matter most for recruiting and market analysis:
| Field | What it holds |
|---|---|
jobId, title |
12-digit Naukri job ID and the listing title |
companyName, companyId |
Hiring company and its numeric Naukri ID |
tagsAndSkills |
Comma-separated skills, e.g. Java,React.js,Angular |
experienceLabel, minimumExperience, maximumExperience |
“3-8 Yrs” plus the min and max as separate values |
salaryLabel, salaryCurrency |
“6-10 Lakhs” or “Not disclosed”, in INR |
locationLabel |
City or arrangement, e.g. “Hybrid - Pune, Chennai” |
postedAt, createdDate |
“2 Days Ago” and an epoch timestamp in milliseconds |
walkinJob |
Whether the listing is a walk-in interview |
ambitionBoxRating, ambitionBoxReviews |
Employer rating and review count from AmbitionBox |
jobDescription, jdURL |
Short summary and the path to the full job page |
searchUrl |
The Naukri URL that produced the row (URL-based runs) |
Two of these are worth calling out. tagsAndSkills is the cleanest skills signal you will find on any Indian job board, because employers pick tags rather than burying skills in prose. And the AmbitionBox fields let you rank employers by reputation without a second scrape.
The actor has two input modes. Pick whichever matches how you already work.
This is the easiest route. Open naukri.com, run your search, set filters in the sidebar, and copy the address bar. The actor reads keyword, location and filters such as experience and salary straight from the URL.
{
"startUrls": [
"https://www.naukri.com/data-scientist-jobs-in-mumbai?experience=3-8",
"https://www.naukri.com/react-developer-jobs?salary=10to15",
"https://www.naukri.com/devops-engineer-jobs-in-hyderabad?experience=5"
],
"maxResultsPerQuery": 100
}
Every URL is treated as its own query, so maxResultsPerQuery: 100 here means up to 300 jobs. Duplicates that appear in more than one search are skipped automatically.
Use this when you want a repeatable, parameterised search, for example in a scheduled task or a script that loops over cities.
{
"keyword": "data engineer",
"location": "bangalore",
"experience": "4-9",
"ctcFilter": "25to50",
"jobTypeFilter": "P",
"jobAge": "7",
"sort": "date",
"maxResultsPerQuery": 200
}
What the Naukri-specific filters do:
ctcFilter buckets annual CTC in lakhs: 0to3, 3to6, 6to10, 10to15, 15to25, 25to50, 50to75, 75to100, 100to500.jobTypeFilter takes P (permanent), C (contract), V (contractual), T (temporary) or I (internship). I is handy for campus and fresher pipelines.jobAge limits to jobs from the last 1, 3, 7, 15 or 30 days.companyName narrows a keyword search to one employer, such as TCS or Infosys.sort is relevance or date.For large runs, enable residential proxies in proxyConfig. Naukri rate-limits by IP, and rotating residential IPs is what keeps big batches stable. Set maxResultsPerQuery to 0 for no cap.
If you need deeper metadata per listing (apply deadline, questionnaire flags and similar), switch on fetchAdditionalDetails. It adds a little run time and is off by default.
A trimmed record from a React developer search:
{
"jobId": "020726002906",
"title": "React Developer opening with CAPCO",
"companyName": "Capco",
"companyId": 114714,
"tagsAndSkills": "Java,React.js,Angular,Full Stack,Stack,Development",
"experienceLabel": "8-13 Yrs",
"minimumExperience": "8",
"maximumExperience": "13",
"salaryLabel": "Not disclosed",
"salaryCurrency": "INR",
"locationLabel": "Hybrid - Pune, Chennai, Bengaluru",
"postedAt": "2 Days Ago",
"createdDate": 1782963833574,
"walkinJob": false,
"ambitionBoxRating": "3.8",
"ambitionBoxReviews": 705,
"searchUrl": "https://www.naukri.com/react-developer-jobs-in-bangalore?experience=2-5"
}
Naukri doesn’t publish a job search API, so most teams use the actor as one. This Python example runs a search and prints skill counts:
import os
from collections import Counter
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("epicscrapers/naukri-scraper").call(run_input={
"keyword": "python developer",
"location": "pune",
"jobAge": "15",
"maxResultsPerQuery": 300,
})
skills = Counter()
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
for tag in (job.get("tagsAndSkills") or "").split(","):
if tag.strip():
skills[tag.strip().lower()] += 1
for skill, count in skills.most_common(15):
print(f"{skill:30} {count}")
The same call works from JavaScript with apify-client, or over plain HTTP via epicscrapers~naukri-scraper on the Apify REST API.
Salary benchmarking in lakhs. Run the same keyword across ctcFilter bands and cities, then compare how many openings sit in each band. Pair salaryLabel with minimumExperience to see where a “5 years of Spark” profile actually lands in Bengaluru versus Pune. Many listings say “Not disclosed”, so the band filter is often a better pay signal than the label itself.
Lead generation for staffing agencies. Group rows by companyName and count open roles per employer. A company posting 20 contract (C) Java roles this week is a warm lead for a contract staffing firm. ambitionBoxRating helps you prioritise employers candidates will actually accept offers from.
Walk-in drive tracking. Filter on walkinJob: true to build a feed of walk-in interviews, which matters for BPO, customer support and mass-hiring roles where walk-ins are common.
Skills demand dashboards. Split tagsAndSkills and track counts week over week. This is a fast way to see whether, for example, GenAI and LangChain demand in Bengaluru is still climbing, or whether it has levelled off.
Job alerts. Schedule a daily run with jobAge: "1" and sort: "date", then push new rows to Slack or Google Sheets through Apify integrations. Deduplicate on jobId across runs.
Naukri covers India. If you also recruit Indian talent for Middle East roles, the NaukriGulf scraper guide covers the GCC sister site, which returns full descriptions and company profiles. For multi-country coverage, including India, with numeric salaries and company size data, see the Indeed scraper guide. Many India-focused teams run Naukri and Indeed India side by side, because the employer mix differs.
Not for job search. Naukri offers paid recruiter products (Resdex and job posting tools), but there’s no public API for reading listings. The scraper acts as an unofficial Naukri API that returns JSON.
The actor reads publicly listed job information only: titles, companies, skills and salary labels. It does not collect candidate profiles, emails or phone numbers. Respect Naukri’s terms, keep request rates reasonable, and handle any data under India’s DPDP Act and other laws that apply to you. This isn’t legal advice.
Each row includes a short jobDescription summary and a jdURL that points to the full job page on Naukri. Search results don’t carry the complete text.
As many as Naukri returns for each query. maxResultsPerQuery defaults to 50; raise it or set 0 for no limit, and batch several URLs or keywords in one run. Use residential proxies for runs in the thousands.
No. The scraper works without logging in.
Paste a Naukri search URL, set a result limit, and you’ll have a spreadsheet of jobs in a couple of minutes. Run the Naukri Job Scraper on Apify or see the actor page for details.