Naukri Scraper - Jobs, Salaries, Companies India
Pricing
Pay per event
Naukri Scraper - Jobs, Salaries, Companies India
Scrape Naukri.com jobs in India: title, company, salary, skills, location, role, industry. 30+ fields per job. Filter by keyword, location, experience, work mode.
Pricing
Pay per event
Rating
0.0
(0)
Developer
deusex machine
Maintained by CommunityActor stats
0
Bookmarked
18
Total users
6
Monthly active users
7 days ago
Last modified
Categories
Share
Naukri Scraper API — Jobs, Salaries, Companies & Skills Data from India
A high-performance Naukri scraper that extracts complete job listings from Naukri.com, India's largest job portal with 7M+ active listings across IT services, financial services, manufacturing, BPO and healthcare. Pull 30+ structured fields per job — title, company, salary (parsed to INR and USD), required experience, skills, education, role category, industry, department, and full description — without writing a single line of HTML parsing logic.
Designed for recruiters building talent pipelines, market analysts tracking India's labor demand on portals like Glassdoor, LinkedIn Jobs, and Indeed, founders mapping competitor hiring patterns, salary benchmarking firms enriching their compensation datasets, and ML/AI startups training resume-to-job matching models. Compatible with schema.org JobPosting downstream pipelines and exports cleanly to CSV, JSON, Excel or Google Sheets.
✨ Why use this scraper
This actor automates browsing naukri.com like a real user. It opens the public job search pages, paginates through results, parses every job tuple into a clean record, and (optionally) opens each job detail page to extract premium fields that aren't visible in the search results — like the full job description, applicant count, salary breakdown by tier, employment type, education requirements, and addresses.
Output is structured JSON, ready for direct ingestion into any database, BI tool or LLM pipeline. Salary strings like "6-15 Lacs PA" are parsed into salaryMin: 600000, salaryMax: 1500000, salaryCurrency: "INR", plus a salaryUsdEstimate: "$7,229 - $18,072" field that nobody else in the market provides.
The scraper is built on a stealth browser stack tuned specifically for India's anti-bot protections. No reCAPTCHA solving services required, no residential proxies — runs on Apify's datacenter network out of the box.
📤 Output fields
Every job record contains these fields when available:
Identity & links
jobId— Unique 12-18 digit Naukri job identifierjobUrl— Direct link to the full job listingtitle— Position title as displayedcompanyName— Hiring companycompanyUrl— Naukri career page of the hiring companycompanyLogoUrl— Company logo image URLcompanyRating— AmbitionBox rating out of 5 (e.g.3.5)companyReviewsCount— Total employee reviews (e.g.48992)
Location & arrangement
locationText— Raw location string ("Hybrid - Kolkata, Hyderabad, Bengaluru")locations— Parsed list of cities (["Kolkata", "Hyderabad", "Bengaluru"])workMode—"hybrid","remote","office"ornulladdress— Detailed address from job detail page (when fetchDetails=true)
Experience & seniority
experienceText— Raw display string ("5-10 Yrs")experienceMin— Minimum years required (integer)experienceMax— Maximum years required (integer)seniority— Derived label:"fresher","junior","mid","senior","lead"
Compensation
salaryText— Raw salary display ("6-15 Lacs PA")salaryMin— Minimum salary in INR (integer)salaryMax— Maximum salary in INR (integer)salaryCurrency— Currency code (typically"INR")salaryUsdEstimate— Estimated USD range for international users
Skills & description
skills— Clean array of skill chips (["Python", "Django", "AWS"])jobDescriptionPreview— First 600 chars shown in search resultsjobDescription— Full description text (only with fetchDetails=true)jobDescriptionHtml— Original HTML markup of description (truncated 30K chars)
Role taxonomy (fetchDetails=true)
role— Specific role like"Back End Developer"or"Full Stack Developer"roleCategory— Broader category like"Software Development"department— Functional area like"Engineering - Software & QA"industry— Industry type like"IT Services & Consulting"employmentType—"Full Time, Permanent","Contract", etc.
Education requirements (fetchDetails=true)
educationUG— Undergraduate degree expected (e.g. "B.Tech in Any Specialization")educationPG— Postgraduate degree expected (e.g. "M.Tech in Any Specialization")
Competition metrics (fetchDetails=true)
applicants— Number of applicants so far (signal for competitiveness)vacancy— Number of open positions for this listingapplyByDate— Application deadline when published
Timestamps
postedRelative— Naukri's relative date ("4 days ago", "1 week ago")postedDate— Estimated ISO 8601 timestamp derived from the relative date
🎯 Use cases
- Recruitment & talent acquisition — Build a daily-updated stream of jobs matching your target keywords across multiple cities. Use
companyReviewsCountandcompanyRatingto filter only well-rated employers. - Compensation benchmarking — Aggregate
salaryMin/salaryMaxbyrole+experienceMinto produce reliable Indian market salary tables. ThesalaryUsdEstimatefield makes it directly usable in global comp reports. - Hiring intelligence — Track which companies are scaling specific functions (e.g. AI/ML engineers, growth marketers). The
industry+roleCategorytaxonomy lets you slice the dataset cleanly. - Resume-to-job ML training data — Pair the
skillsarray, fulljobDescription, andexperienceMin/Maxfields to train recommendation models. Tens of thousands of jobs per day. - Skill demand tracking — Run a weekly cron, count the top occurring
skillsentries byroleCategory. Identify trending technologies before they show up in industry reports. - Lead generation — Cold outreach to hiring managers at companies actively recruiting in your niche. Combine with company website lookup tools for full B2B enrichment.
🚀 How to use
Choose between keywords mode (easiest — provide one or many search keywords and the scraper builds the URLs) or URLs mode (advanced — paste pre-built Naukri search URLs with all the filter parameters already encoded).
Mode 1 — Search by keywords
{"mode": "keywords","keywords": ["python developer", "data engineer mumbai"],"maxJobs": 100,"fetchDetails": false}
Mode 2 — Search by URLs
{"mode": "urls","searchUrls": [{ "url": "https://www.naukri.com/python-developer-jobs-in-bangalore?experience=3" }],"maxJobs": 50,"fetchDetails": true,"workMode": "remote"}
Mode 3 — Filtered, detailed mode for premium analysis
{"mode": "keywords","keywords": ["data scientist"],"maxJobs": 200,"fetchDetails": true,"workMode": "hybrid","experienceMin": 3,"experienceMax": 7,"cities": ["Bengaluru", "Pune", "Hyderabad"]}
📥 Input
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | enum | "keywords" | "keywords" or "urls" |
keywords | array of strings | ["python developer"] | Search keywords; slugs are auto-built |
searchUrls | array | [] | Pre-built Naukri search URLs (use when mode=urls) |
maxJobs | integer | 50 | Cap per keyword/URL (1–5000) |
fetchDetails | boolean | false | Open each job detail page for premium fields |
workMode | enum | "any" | "any", "remote", "hybrid", "office" |
experienceMin | integer | 0 | Filter jobs requiring at least N years |
experienceMax | integer | 40 | Filter jobs requiring at most N years |
cities | array | [] | Whitelist cities (post-extract filter) |
📋 Output example
{"jobId": "230326014707","title": "Python Developer","jobUrl": "https://www.naukri.com/job-listings-python-developer-movate-technologies-bengaluru-5-to-8-years-230326014707","companyName": "Movate Technologies","companyUrl": "https://www.naukri.com/movate-technologies-jobs-careers-2034621","companyLogoUrl": "https://img.naukimg.com/logo_images/groups/v1/2034621.gif","companyRating": 3.1,"companyReviewsCount": 2646,"locationText": "Bengaluru","locations": ["Bengaluru"],"workMode": null,"experienceText": "5-8 Yrs","experienceMin": 5,"experienceMax": 8,"seniority": "mid","salaryText": "16-20 Lacs PA","salaryMin": 1600000,"salaryMax": 2000000,"salaryCurrency": "INR","salaryUsdEstimate": "$19,277 - $24,096","skills": ["Django", "React.Js", "Python", "Python Development", "SQL"],"postedRelative": "1 week ago","postedDate": "2026-05-16T05:42:06.471457+00:00","role": "Full Stack Developer","roleCategory": "Software Development","department": "Engineering - Software & QA","industry": "IT Services & Consulting","employmentType": "Full Time, Permanent","educationUG": "Any Graduate","applicants": 1,"jobDescription": "We are looking for an experienced Python developer..."}
💻 Code examples
From the Apify API (curl)
curl -X POST "https://api.apify.com/v2/acts/makework36~naukri-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "keywords","keywords": ["data engineer"],"maxJobs": 100,"fetchDetails": false}'
From Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("makework36/naukri-scraper").call(run_input={"mode": "keywords","keywords": ["python developer", "react developer"],"maxJobs": 200,"fetchDetails": True,"workMode": "remote",})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], job["companyName"], job["salaryUsdEstimate"])
From Node.js (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('makework36/naukri-scraper').call({mode: 'keywords',keywords: ['devops engineer mumbai'],maxJobs: 100,fetchDetails: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} jobs`);
Export to CSV
curl "https://api.apify.com/v2/acts/makework36~naukri-scraper/runs/last/dataset/items?format=csv&token=$APIFY_TOKEN" \-o naukri_jobs.csv
⚡ Performance
The scraper runs on a stealth browser at 4 GB RAM. Typical performance:
| Mode | Time per page (20 jobs) | Time per detail | 100 jobs ETA |
|---|---|---|---|
| Search only (fast) | ~7 s | — | ~35 s |
With fetchDetails=true | ~7 s + 25 s/job | ~25 s | ~45 min |
Each search page returns 20 jobs. Pagination is automatic up to maxJobs. The detail-page fetch is slower because it loads the full job description, but it adds 9 premium fields that are not available in the search results.
📊 Comparison
| Feature | This actor | Browser-only (residential proxy) | Headless w/ proxy + captcha solver |
|---|---|---|---|
| Output fields | 30+ structured | 20–25 | 25 |
| Salary parsed to INR + USD | ✅ | ❌ | ❌ |
| Seniority field (fresher/junior/mid/senior/lead) | ✅ | ❌ | ❌ |
| Skills cleaned of UI noise | ✅ | ❌ | ❌ |
| Residential proxy required | ❌ | ✅ | ✅ |
| Captcha solver required | ❌ | ❌ | ✅ |
| Pricing model | PAY_PER_EVENT tiered | flat or rental | flat |
💵 Pricing
This actor uses PAY_PER_EVENT pricing with tiered volume discounts. You pay only for what you extract; no monthly subscriptions, no idle costs.
| Tier | Standard job (search only) | Detailed job (with fetchDetails) |
|---|---|---|
| FREE | $3.50 / 1K | $9.50 / 1K |
| BRONZE | $2.50 / 1K | $7.00 / 1K |
| SILVER | $1.80 / 1K | $5.00 / 1K |
| GOLD | $1.20 / 1K | $3.50 / 1K |
| PLATINUM | $0.90 / 1K | $2.80 / 1K |
| DIAMOND | $0.65 / 1K | $2.50 / 1K |
Plus a one-time $0.001 per actor run for initialization. A typical run of 200 standard jobs costs $0.70 (FREE tier) or as little as $0.13 (DIAMOND).
❓ FAQ
Does this Naukri scraper work for international users?
Yes. The salaryUsdEstimate field provides converted ranges in USD so compensation comparisons across markets work without manual conversion. The actor runs from Apify's datacenter so you don't need any India-located infrastructure.
Is scraping Naukri.com legal? This actor accesses publicly available pages — no login, no bypassing paywalls, no scraping of user accounts. Always check the target site's terms of service before deploying at scale and consult legal counsel for your jurisdiction.
How fresh is the data? The scraper fetches in real time when you run it. Job listings on Naukri update continuously throughout the day. Schedule the actor as frequently as your use case demands.
Can I scrape Naukri without writing code? Yes. Use the input form on this page, click Start, then download the results as CSV or Excel. No Python or Node required.
Why don't I see educationPG for every job?
Naukri only lists postgraduate requirements when relevant. Roles that don't require a PG show null for educationPG. The educationUG field is more consistently populated.
Does the actor handle pagination automatically?
Yes. Set maxJobs to your desired total and the scraper paginates internally until it reaches the cap or runs out of results, whichever comes first.
Can I scrape jobs from a specific company?
Yes — use mode: urls and pass the company's Naukri career page URL (e.g. https://www.naukri.com/cognizant-jobs-careers-2114). The scraper treats it like any search page.
What if Naukri changes its HTML structure? The scraper uses defensive selectors and DOM extraction. When Naukri pushes a layout change, fixes typically land within 24–48 hours. Use the Issues tab to report problems.
Is there a rate limit? The actor inserts a ~0.5 s delay between pages and 1–2 s between detail fetches to stay polite. For large runs (>1000 jobs), consider splitting across multiple Apify Tasks scheduled minutes apart.
Does this support Naukri's company review/AmbitionBox data?
The scraper extracts companyRating and companyReviewsCount directly from the search results. A separate dedicated AmbitionBox scraper is on the roadmap.
📝 Changelog
- 0.1 (2026-05) — Initial release. Search mode + detail mode. 30+ fields. Tiered pricing.
🔗 Related actors
makework36/trustpilot-reviews-scraper— Trustpilot business reviewsmakework36/google-maps-scraper-full— Google Maps places with contact infomakework36/flight-price-scraper— Multi-source flight datamakework36/vrbo-scraper— Vacation rentals