Naukri Jobs Scraper — 21 Fields, 7 Filters, New-Job Monitor avatar

Naukri Jobs Scraper — 21 Fields, 7 Filters, New-Job Monitor

Pricing

from $0.84 / 1,000 jobs

Go to Apify Store
Naukri Jobs Scraper — 21 Fields, 7 Filters, New-Job Monitor

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

29

Total users

11

Monthly active users

2 days ago

Last modified

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:

FieldDescription
🆔 job_idNaukri internal job ID
📌 titleJob title
🏢 companyCompany name
📍 locationJob location(s) as listed on Naukri
experience_min_yearsMinimum years of experience required
experience_max_yearsMaximum years of experience required
💰 salary_min_lakhsMinimum salary in INR lakhs (numeric)
💵 salary_max_lakhsMaximum salary in INR lakhs (numeric)
🛠️ skillsTagged skills as an array
🏠 work_modeWork from office, remote, or hybrid
📃 job_typePermanent, contract, freelance, temporary, internship
🗓️ posted_date_textRaw posted-date text from Naukri (e.g. "3 Days Ago")
📆 posted_days_agoApproximate days since the job was posted (numeric)
🔗 apply_urlURL 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

  1. Open the actor and add one or more search keywords (python developer, data scientist).
  2. Set a location (Bangalore, Mumbai, Delhi NCR) or leave blank for all India.
  3. Optionally add experience, salary, work-mode, and job-type filters.
  4. Set max jobs to return.
  5. 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.

  1. 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.
  2. In the Apify Console, go to Schedules (left sidebar) → Create new.
  3. 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).
  4. Under Actors or tasks to run, add the task you saved in step 1.
  5. 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:

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.