How to Scrape Naukri.com Jobs in Python (Structured JSON with Salaries)
Naukri.com has no public API. Learn how to scrape India's #1 job board for titles, companies, salary ranges, skills, experience, and work mode as structured JSON with pay-per-result pricing.
The actor referenced in this article is live on Apify. Pay only for results delivered.
Naukri.com is India’s largest job board with over 100,000 active listings at any time. With no official API, scraping is the only way to get structured job data at scale. Here is the complete guide.
Why Naukri data matters
Naukri is where most Indian companies post jobs first. Unlike LinkedIn, Naukri captures:
- Mid-market and non-tech companies that do not use LinkedIn for hiring
- Salary ranges displayed openly (not hidden behind “Sign in to see”)
- Experience ranges and required skill lists per listing
- Work mode (WFH, hybrid, office) clearly indicated
For hiring intelligence and labour market research in India, Naukri is the primary source.
What each listing contains
- Job title and company name
- Salary range in lakhs per annum (normalised from various display formats)
- Experience range required (e.g. “3-7 years”)
- Required skills list
- Location (city or cities)
- Work mode: work from home, hybrid, or office
- Direct Naukri application URL
Using the Apify actor
import apify_client
client = apify_client.ApifyClient('YOUR_APIFY_TOKEN')
run_input = {
"searchQuery": "data engineer",
"location": "Bangalore",
"experienceMin": 2,
"experienceMax": 6,
"maxResults": 200,
}
run = client.actor('themineworks/naukri-jobs').call(run_input=run_input)
for job in client.dataset(run['defaultDatasetId']).iterate_items():
print(f"{job['title']} at {job['company']}")
print(f" Salary: {job['salary']} Experience: {job['experience']}")
print(f" Skills: {', '.join(job['skills'][:5])}")
print(f" {job['location']} {job['work_mode']}")
print(f" {job['url']}")
Salary benchmarking by role
Aggregate salary data across listings to build a benchmark by role and city:
import statistics
results = list(client.dataset(run['defaultDatasetId']).iterate_items())
# Extract min salary values for jobs with salary data
salaries = []
for job in results:
if job.get('salary_min_lpa'):
salaries.append(job['salary_min_lpa'])
if salaries:
print(f"Data Engineer salaries in Bangalore:")
print(f" Median: {statistics.median(salaries):.1f} LPA")
print(f" P25: {sorted(salaries)[len(salaries)//4]:.1f} LPA")
print(f" P75: {sorted(salaries)[3*len(salaries)//4]:.1f} LPA")
Skills demand analysis
Find the most in-demand skills in your target role:
from collections import Counter
all_skills = []
for job in results:
all_skills.extend(job.get('skills', []))
skill_counts = Counter(all_skills)
print("Top 15 skills for data engineers in Bangalore:")
for skill, count in skill_counts.most_common(15):
pct = count / len(results) * 100
print(f" {skill}: {count} jobs ({pct:.0f}%)")
Competitor hiring monitoring
Track when a competitor starts hiring heavily in a new function:
run_input = {
"company": "Flipkart", # monitor specific company
"maxResults": 500,
"includeAllLocations": True,
}
WFH and work mode breakdown
from collections import Counter
modes = Counter(job.get('work_mode', 'Not specified') for job in results)
for mode, count in modes.most_common():
print(f" {mode}: {count} ({count/len(results)*100:.0f}%)")
Scheduling for market tracking
Run weekly to track how demand for specific skills or roles changes over time. Combine with a time-series database for trend charts.
Pricing
First 25 results free. Pay per job returned. Zero charge on empty searches.
Try the scraper referenced in this article — live on Apify, pay only for results.
Open naukri-jobs on Apify →Frequently asked questions
Does Naukri have an official API? +
No. Naukri.com does not provide a public API for job listings. All programmatic access requires scraping.
What salary data does the scraper return? +
Salary ranges normalised to lakhs per annum. Naukri displays salaries in multiple formats — the scraper standardises them all to LPA for consistent analysis.
What is the difference between Naukri and LinkedIn Jobs for India? +
Naukri has far greater coverage for non-tech and mid-market Indian companies. LinkedIn skews toward tech and enterprise. For blue-collar to middle-management roles in India, Naukri is the primary source.
How to Scrape AmbitionBox Company Reviews and Ratings
AmbitionBox is India largest employer review platform with 300,000 companies. Learn how to pull ratings, review counts, salary data, and dimension scores as structured JSON without any official API.
AliExpress Product Data API: Prices, Ratings, and Orders in Python
AliExpress affiliate API has restricted coverage. Learn how to scrape AliExpress product listings for prices, ratings, order counts, and seller data as structured JSON — no affiliate approval needed.
ClinicalTrials.gov API v2: How to Search 500,000 Studies and Track Trial Status
ClinicalTrials.gov upgraded to a v2 REST API in 2024. Here is how to use it, what changed from v1, and how to build automated trial monitoring pipelines in Python.