Naukri Job Scrapper avatar

Naukri Job Scrapper

Pricing

$0.10 / actor start

Go to Apify Store
Naukri Job Scrapper

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

Dinesh Kumar Wadhwani

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 ActorTypical Naukri browser-based scrapers
⚙️ ApproachDirect JSON API — no browserPlaywright / Selenium + HTML parsing
⏱ SpeedSecondsMinutes
💰 CostFraction of a cent$0.01–$0.05+ per run
🧠 Memory128–256 MB512–1024 MB
📦 Data qualityStructured fields (salary, exp, skills)Scraped text, often messy
🔁 DeduplicationGlobal, across all locationsUsually per-location only
🔍 Multi-role searchYes — up to 3 roles combinedRarely

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 modeWork from office, Remote, or Hybrid as a clean enum
  • Total available jobs — logged per location so you know how many results exist vs how many were collected

Input

FieldTypeRequiredLimitDescription
rolesstring[]✅ Yes3Job titles to search for (e.g. "VP Engineering", "Data Scientist")
skillsstring[]No3Supporting keywords (e.g. "Python", "AWS", "SaaS")
locationsstring[]✅ Yes3Indian cities or regions (e.g. "Bangalore", "Mumbai", "Pune")
timeFramestringNo1 = 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"]
}
FieldDescription
jobIdNaukri's internal job ID — used as deduplication key
titleJob title as listed
companyHiring company name
locationLocation(s) as returned by Naukri's API
experienceRequired experience range (e.g. "5-10 Yrs")
salarySalary band if disclosed (e.g. "15-25 Lakhs"). Null if hidden — common on Naukri
workModeWork from office, Remote, or Hybrid
skillsArray of required skills from the job listing
postedAtDate the job was first posted
updatedAtDate the job was last updated
linkDirect URL to the job listing on Naukri
searchLocationWhich of your input locations produced this result
searchKeywordsThe combined keyword string sent to Naukri's API
rolesEcho of your input roles
inputSkillsEcho 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:

  1. First response includes noOfJobs — the total result count for that query.
  2. Pages are requested sequentially at 20 jobs per page.
  3. Pagination stops when: the global 100-job cap is hit, a page returns no new unique results, or all available pages are exhausted.
  4. 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:

  1. Open the Actor and click Schedule
  2. Set cron (e.g. 0 8 * * * for 8am IST daily)
  3. Use timeFrame: "1" (last 24 hours) to only collect fresh listings each run
  4. 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:

ValueMeaning
1Last 24 hours
2Last 48 hours
7Last 7 days
15Last 15 days
"" (empty)Any time