Naukri Job Scrapper
Pricing
$0.10 / actor start
Naukri Job Scrapper
Scrape job listings from Naukri.com by keyword, location, experience, and freshness. Extract structured data such as job title, company, salary, experience, location, skills, posting date, and job URL for hiring pipelines, market research, and lead generation.
Pricing
$0.10 / actor start
Rating
0.0
(0)
Developer
Dinesh Kumar Wadhwani
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Naukri Jobs Scraper — Multi-Role, Multi-Location, API-Native
Extract structured job listings from Naukri.com — India's largest job board — in seconds. No browser. No HTML parsing. Direct JSON API access.
Built for recruiters, data teams, and developers who need clean, deduplicated Naukri job data fast. This Actor hits Naukri's own internal search API (/jobapi/v3/search) — the same endpoint their website uses — returning fully structured JSON with salary, experience, skills, and work mode as first-class fields, not scraped text.
Why this Actor
| This Actor | Typical Naukri browser-based scrapers | |
|---|---|---|
| ⚙️ Approach | Direct JSON API — no browser | Playwright / Selenium + HTML parsing |
| ⏱ Speed | Seconds | Minutes |
| 💰 Cost | Fraction of a cent | $0.01–$0.05+ per run |
| 🧠 Memory | 128–256 MB | 512–1024 MB |
| 📦 Data quality | Structured fields (salary, exp, skills) | Scraped text, often messy |
| 🔁 Deduplication | Global, across all locations | Usually per-location only |
| 🔍 Multi-role search | Yes — up to 3 roles combined | Rarely |
No Chromium. No rendering. No fragile CSS selectors. Just Naukri's own API, called directly.
What it does
This Actor searches Naukri's job listings using:
- Up to 3 roles — combined into a single keyword query
- Up to 3 skills — appended as supporting keywords
- Up to 3 locations — one API call per location, results pooled globally
- One time frame — last 24 hours, 48 hours, 7 days, or 15 days
Results are automatically deduplicated by job ID across all locations. The run stops the moment 100 unique jobs are collected.
What you get that other Naukri scrapers don't
Because this Actor uses Naukri's JSON API rather than scraping HTML, every job record includes structured fields that HTML scrapers have to guess at:
- Salary — as a labelled band (e.g. "10-15 Lakhs"), not scraped from description text
- Experience — structured range, not a string extracted from a paragraph
- Skills — clean array, not a comma-split of a messy tag cloud
- Work mode —
Work from office,Remote, orHybridas a clean enum - Total available jobs — logged per location so you know how many results exist vs how many were collected
Input
| Field | Type | Required | Limit | Description |
|---|---|---|---|---|
roles | string[] | ✅ Yes | 3 | Job titles to search for (e.g. "VP Engineering", "Data Scientist") |
skills | string[] | No | 3 | Supporting keywords (e.g. "Python", "AWS", "SaaS") |
locations | string[] | ✅ Yes | 3 | Indian cities or regions (e.g. "Bangalore", "Mumbai", "Pune") |
timeFrame | string | No | — | 1 = 24h · 2 = 48h · 7 = 7 days · 15 = 15 days · "" = any time |
Example — Senior engineering leadership across India
{"roles": ["VP Engineering", "Head of Engineering", "Engineering Director"],"skills": ["SaaS", "Platform"],"locations": ["Bangalore", "Pune", "Hyderabad"],"timeFrame": "7"}
This runs 3 API calls (one per location), each searching for:
VP Engineering Head of Engineering Engineering Director SaaS Platform
Example — Data science roles
{"roles": ["Data Scientist", "ML Engineer"],"skills": ["Python", "PyTorch"],"locations": ["Bangalore", "Mumbai"],"timeFrame": "1"}
Output
Each result is a clean, flat JSON record saved to the Apify dataset:
{"jobId": "4426507200","title": "Vice President - Engineering","company": "Acme Corp","location": "Bengaluru","experience": "10-15 Yrs","salary": "25-50 Lakhs","workMode": "Hybrid","skills": ["Node.js", "AWS", "Microservices", "Leadership"],"postedAt": "2026-07-01","updatedAt": "2026-07-01","link": "https://www.naukri.com/job-listings-vp-engineering-acme-bangalore-10-to-15-years-010726001234","searchLocation": "Bangalore","searchKeywords": "Vice President Engineering SaaS","roles": ["VP Engineering"],"inputSkills": ["SaaS"]}
| Field | Description |
|---|---|
jobId | Naukri's internal job ID — used as deduplication key |
title | Job title as listed |
company | Hiring company name |
location | Location(s) as returned by Naukri's API |
experience | Required experience range (e.g. "5-10 Yrs") |
salary | Salary band if disclosed (e.g. "15-25 Lakhs"). Null if hidden — common on Naukri |
workMode | Work from office, Remote, or Hybrid |
skills | Array of required skills from the job listing |
postedAt | Date the job was first posted |
updatedAt | Date the job was last updated |
link | Direct URL to the job listing on Naukri |
searchLocation | Which of your input locations produced this result |
searchKeywords | The combined keyword string sent to Naukri's API |
roles | Echo of your input roles |
inputSkills | Echo of your input skills |
How it works (technical)
This Actor uses Crawlee's HttpCrawler to call Naukri's internal JSON search API directly:
GET https://www.naukri.com/jobapi/v3/search?noOfResults=20&urlType=search_by_key_loc&searchType=adv&keyword=<combined roles and skills>&location=<city>&pageNo=<n>&jobAge=<timeframe>&src=directSearch
This is the same endpoint Naukri's own website calls on every search — discovered via live DevTools inspection of Naukri's network requests. It returns application/json directly with structured fields for every job card.
Pagination strategy:
- First response includes
noOfJobs— the total result count for that query. - Pages are requested sequentially at 20 jobs per page.
- Pagination stops when: the global 100-job cap is hit, a page returns no new unique results, or all available pages are exhausted.
- All results are deduplicated globally using
jobId.
Cost model: A run with 3 locations hitting 5 pages each fires 15 HTTP requests total — no browser launch, no rendering, no JS execution. Memory usage is minimal (128MB is sufficient).
Performance
Because this Actor calls Naukri's JSON API directly with no browser involved:
- Typical run with 2 locations, last 7 days: under 30 seconds
- Memory needed: 128 MB (set this in your Apify actor settings — well below the 512MB default)
- Cost per run: well under $0.001 for most searches
💡 Tip: Set memory to 128 MB in your Apify actor settings. This Actor makes plain HTTP requests and needs almost no RAM — dropping from 512MB to 128MB cuts cost by 75%.
Use cases
- Recruiters & talent teams — daily monitoring of VP/Director/Head-of roles across Bangalore, Mumbai, and Pune
- HR analytics — track salary bands and experience requirements by role over time
- Job seekers — automated daily alerts for fresh listings matching your title and skills
- Market researchers — benchmark hiring velocity, in-demand skills, and salary trends across Indian cities
- AI pipelines — feed structured job data into LLM workflows for candidate matching, JD summarisation, or market intelligence
- Compensation benchmarking — extract salary band data at scale (where disclosed) across companies and roles
Scheduling & automation
Pair with Apify's scheduler for fully automated job monitoring:
- Open the Actor and click Schedule
- Set cron (e.g.
0 8 * * *for 8am IST daily) - Use
timeFrame: "1"(last 24 hours) to only collect fresh listings each run - Connect the dataset to Google Sheets, a webhook, or a downstream Apify Actor
Limitations
- Returns up to 100 unique jobs per run. For higher volumes, split searches across multiple runs with different role or location sets.
- Salary is null for most listings — Naukri allows companies to hide salary, and 60–80% do. This is a Naukri platform constraint, not an Actor limitation.
- Naukri's API structure can change without notice. If results drop to 0, check the run log — JSON parse errors will surface immediately.
- This Actor does not visit individual job detail pages. Full job descriptions are not included — only the data available in Naukri's search result API response.
FAQ
Does this require a Naukri account? No. The Actor uses Naukri's public search API — the same data any anonymous visitor sees.
Why is salary null on most results? Naukri allows employers to hide salary — most do. This is a Naukri platform policy, not something the Actor can work around.
Can I search for remote jobs across India?
Yes — add "Remote" as one of your locations, or include it as a skill keyword.
How is this different from other Naukri scrapers on the Apify Store? Most Naukri scrapers use Playwright or Selenium to render the full page and parse HTML — which is slow, expensive, and breaks whenever Naukri updates its CSS. This Actor calls Naukri's internal JSON API directly, making it faster, cheaper, and more resilient.
Is this Actor maintained? Yes — actively maintained. If Naukri changes their API structure, an update ships promptly.
Input schema reference
{"roles": ["VP Engineering", "Head of Engineering"],"skills": ["SaaS", "B2B"],"locations": ["Bangalore", "Pune"],"timeFrame": "7"}
timeFrame values:
| Value | Meaning |
|---|---|
1 | Last 24 hours |
2 | Last 48 hours |
7 | Last 7 days |
15 | Last 15 days |
"" (empty) | Any time |