Naukri Jobs Scraper — 21 Fields, 7 Filters, New-Job Monitor
Pricing
from $0.84 / 1,000 jobs
Naukri Jobs Scraper — 21 Fields, 7 Filters, New-Job Monitor
Scrape Naukri.com jobs at scale: title, company, salary (normalised to lakhs), experience, skills, location, remote or hybrid work mode. India residential proxy, no login, pay per job. Works in Claude, ChatGPT & any MCP AI agent.
Pricing
from $0.84 / 1,000 jobs
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
29
Total users
11
Monthly active users
2 days ago
Last modified
Categories
Share
💼 Naukri Job Scraper: India Jobs, Salary & Skills Data API
Part of the Recruiting & Jobs MCP. This actor's data is also available to AI agents through our Recruiting & Jobs MCP server — seven job-market and sourcing tools behind one endpoint. No result, no charge.
Overview
Naukri Job Scraper turns any Naukri.com search into structured jobs data. Feed it keywords like python developer or data scientist, filter by city, salary band, experience, work mode, and industry, and get clean JSON rows with title, company, salary (normalised to lakhs), skills, location, and posting date. No login, no cookies, and India residential proxy is used by default so results match what a real jobseeker in Bangalore would see.
It's the fastest way to build a live labour-market dataset for India: track compensation benchmarks, monitor competitor hiring, source candidates, or feed a jobs board without dealing with Naukri's front-end HTML.
✅ No login required | ✅ India residential proxy | ✅ Pay per job returned | ✅ MCP-ready for AI agents
Features
Keyword & location search. Query any role in any Indian city or all India at once.
Salary normalisation. Salaries parsed to numeric lakhs for direct filtering and comparison.
Experience & work-mode filters. Filter by minimum and maximum years, remote, hybrid, or work from office.
Rich skills data. Tagged skills, industry, functional area, and role category as arrays.
Deep pagination. Naukri's paginated results are followed to the end within your maxJobs budget.
How it works
The actor issues Naukri search requests directly and parses the same structured payload the Naukri front-end uses. Each keyword you supply is searched separately and results are merged and deduplicated by internal job ID. Filters (location, experience, salary, work mode, job type) are appended to the query as facets so Naukri does the filtering server-side, which is faster and more accurate than post-filtering scraped HTML.
Salary strings ("6-12 Lacs P.A.") are parsed to numeric fields (salary_min_lakhs, salary_max_lakhs) so you can sort and filter by compensation in downstream tools. Every request runs through an India residential proxy pool so results match what a real user in India would see.
🧾 Input configuration
{"searchKeywords": ["python developer", "data scientist"],"location": "Bangalore","experienceMinYears": 3,"experienceMaxYears": 8,"salaryMinLakhs": 15,"workMode": "hybrid","maxJobs": 200}
📤 Output format
{"job_id": "310725007833","title": "Senior Python Developer","company": "Acme Analytics","location": "Bengaluru","experience_min_years": 4,"experience_max_years": 8,"experience_text": "4-8 Yrs","salary_min_lakhs": 15,"salary_max_lakhs": 25,"salary_text": "15-25 Lacs P.A.","skills": ["Python", "Django", "AWS", "PostgreSQL"],"work_mode": "Hybrid","job_type": "Permanent","posted_date_text": "3 Days Ago","posted_days_ago": 3,"apply_url": "https://www.naukri.com/job-listings-...-310725007833"}
Every job record contains these fields:
| Field | Description |
|---|---|
🆔 job_id | Naukri internal job ID |
📌 title | Job title |
🏢 company | Company name |
📍 location | Job location(s) as listed on Naukri |
⌛ experience_min_years | Minimum years of experience required |
⏳ experience_max_years | Maximum years of experience required |
💰 salary_min_lakhs | Minimum salary in INR lakhs (numeric) |
💵 salary_max_lakhs | Maximum salary in INR lakhs (numeric) |
🛠️ skills | Tagged skills as an array |
🏠 work_mode | Work from office, remote, or hybrid |
📃 job_type | Permanent, contract, freelance, temporary, internship |
🗓️ posted_date_text | Raw posted-date text from Naukri (e.g. "3 Days Ago") |
📆 posted_days_ago | Approximate days since the job was posted (numeric) |
🔗 apply_url | URL to the Naukri job detail / apply page |
One more row at the end of every run: every run also ends with a final _type: "info" record — informational only, never billed — with a two-line nudge: how to put this actor on an automatic schedule (see "Run on a schedule" below), and a link to leave a Store review if it saved you time.
💼 Common use cases
Compensation benchmarking Pull every senior Python role in Bangalore and compute median and P90 salary by experience band. Compare pay across cities, industries, or company sizes for a specific role.
Competitor hiring intelligence Track how many roles a competitor has open, in which functions, and how quickly they close. Detect new market entries, team expansions, or product bets from job title changes.
Talent sourcing Feed roles into an ATS or sourcing tool to prospect candidates against active reqs. Build a jobs digest for a specific niche (fintech backend, GenAI, product design).
Jobs board & marketplace Power a niche jobs site with fresh listings pulled by keyword or industry every day. Enrich existing job feeds with normalised salary and skill data.
🚀 Getting started
- Open the actor and add one or more search keywords (
python developer,data scientist). - Set a location (
Bangalore,Mumbai,Delhi NCR) or leave blank for all India. - Optionally add experience, salary, work-mode, and job-type filters.
- Set max jobs to return.
- Click Start. Download as JSON, CSV, or Excel, or pull the dataset via API or MCP.
🔁 Run on a schedule
Turn this from a one-off pull into a standing feed with Apify's built-in Schedules — no code, no cron server of your own.
- Run the actor once with the input you want repeated, then click Save as a task (top of the run form) — this keeps your exact input attached for every future run.
- In the Apify Console, go to Schedules (left sidebar) → Create new.
- Name it, set your timezone, and pick a frequency — a preset (hourly / daily / weekly) or a custom cron expression (e.g.
0 6 * * *for daily at 6am). - Under Actors or tasks to run, add the task you saved in step 1.
- Save. From then on it runs unattended on your schedule, billed the same pay-per-job way as a manual run — nothing is charged just for the schedule existing.
Prefer to automate the setup itself? Same thing via the API:
curl -X POST "https://api.apify.com/v2/schedules?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"name": "naukri-jobs-daily","cronExpression": "0 6 * * *","isEnabled": true,"actions": [{ "type": "RUN_ACTOR", "actorId": "themineworks/naukri-jobs" }]}'
Full options — time zones, run notifications, pausing a schedule — are in Apify's Schedules documentation.
Monitor mode — pay only for NEW jobs
Set monitorMode: true and this actor remembers what it delivered last time (keyed on
job_id) — on the next scheduled run, only genuinely new jobs are pushed and charged.
Re-running the same input daily costs you for the new jobs each day, not the whole feed
every time.
{ "monitorMode": true }
Pairs directly with Run on a schedule above: save a task with monitorMode: true,
attach it to a daily schedule, and you have a standing "what's new" feed with no
duplicate charges. The summary row reports new_this_run and skipped_duplicates so
you can see the dedup working. First run establishes the baseline (everything is "new");
every run after that is incremental.
FAQ
Does it log in to Naukri? No. The actor works from public search endpoints only. No account, no cookies, no captcha, no ban risk.
Why are salaries in lakhs?
Naukri publishes almost every Indian salary in "lacs per annum". The actor parses that string into numeric salary_min_lakhs and salary_max_lakhs fields so you can sort, filter, and aggregate compensation directly.
How do I get more than one page of results?
Set maxJobs to whatever budget you want. The actor follows Naukri's paginated result set until the budget is reached or Naukri runs out of listings for the query.
Can I use it in an AI agent? Yes. It's exposed as an MCP tool. See below.
Use in Claude, ChatGPT & any MCP agent
https://mcp.apify.com/?tools=themineworks/naukri-jobs
Or call it programmatically with the Apify client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/naukri-jobs').call({searchKeywords: ['python developer'],location: 'Bangalore',maxJobs: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
🛠️ Complete your hiring intelligence pipeline
Found the roles. Now enrich and act on them with the rest of the suite:
- LinkedIn Company Scraper: profile the hiring company: size, industry, HQ.
- LinkedIn Employees Scraper: find the recruiters and hiring managers at any of the companies.
- B2B Leads Finder: turn a target company list into named contacts for outreach.
Typical flow: naukri-jobs surfaces the roles, linkedin-company-details profiles the employer, linkedin-employees finds the hiring team.
Questions or need a custom field set? Reach out through the Apify profile.