# Naukri Jobs Scraper — Salary, Skills & Full Fields · $0.8/1k 💰 (`srd836/naukri-jobs-scraper`) Actor

Extract title, company, salary, skills, ratings and ISO dates from Naukri.com — up to 1,000 jobs per search, all India. No login needed, 100% success in tests, from $0.80/1,000 jobs — built for recruiters, job-market analysts and AI agents.

- **URL**: https://apify.com/srd836/naukri-jobs-scraper.md
- **Developed by:** [David González](https://apify.com/srd836) (community)
- **Categories:** Jobs, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.80 / 1,000 job scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Scrape Naukri jobs with salary, skills & company ratings — $0.80 per 1,000

**Naukri Jobs Scraper** turns any search on [Naukri.com](https://www.naukri.com) — India's largest job portal — into a clean, structured dataset: job title, company, **disclosed salary**, **skill tags**, **company rating**, locations, work mode and an **ISO-normalized posted date**. No login, no code: type your keywords exactly as you would into the Naukri search box, press Start, and download JSON, CSV or Excel — or read the results live over the Apify API. At **$0.80 per 1,000 jobs** it undercuts comparable Naukri scrapers, and it finished with a **100% success rate across our test runs**.

> ⚠️ **Unofficial** — this Actor is not affiliated with or endorsed by Naukri.com. It collects only publicly visible job listings.

### Why use this Naukri scraper?

- 💰 **A fraction of what the popular Naukri scrapers charge** — $0.80 per 1,000 jobs, against **$10.00 per 1,000** for the most-used one and **$1.50** for the next. You pay only for unique jobs actually stored in your dataset: failed pages, duplicates and empty runs cost $0.
- ✅ **No login, no setup, 100% success in tests** — it reads Naukri's public search pages, so there is no account to create and nothing to install. Every pre-launch test run finished successfully; if Naukri ever challenges your IP, one input switch turns on residential India proxies.
- 🧹 **Clean fields, not raw HTML** — salary separated from "Not disclosed" noise, skills as a real array, company rating and review count as numbers, posted date normalized to ISO (`2026-08-05`), and results deduplicated on Naukri's own job ID.
- ⏰ **A search becomes a data feed** — schedule daily runs with `freshness: 1` and you get an incremental stream of new postings, pushed automatically to Google Sheets, Zapier, Make or your own webhook.

### Who is this for?

- **Recruiters & staffing agencies** — see which companies are hiring for a role, at what experience bands and disclosed salaries, before you start outreach.
- **Job-market & HR analysts** — track demand for skills, roles and cities across India's biggest job board, and benchmark the salary ranges employers do publish.
- **B2B lead generation teams** — a company hiring three "Salesforce Developers" is a qualified prospect for anyone selling Salesforce tooling or services. Hiring signals are buying signals.

### Sample output

One flat JSON object per job — this is a real item from a live run:

```json
{
    "jobId": "050826021971",
    "title": "Python Developer",
    "company": "Moolya Software Testing",
    "companyRating": 3.4,
    "companyReviewsCount": 137,
    "experience": "2-6 Yrs",
    "salary": "5-12 Lacs PA",
    "workMode": null,
    "locations": ["Bengaluru"],
    "skills": ["python", "Python Framework", "Python Development", "Backend Development"],
    "jdSnippet": "Hands-on experience with testing frameworks: pytest, unittest, and mocking patterns...",
    "postedText": "2 days ago",
    "postedDaysAgo": 2,
    "postedDate": "2026-08-05",
    "jobUrl": "https://www.naukri.com/job-listings-python-developer-moolya-software-testing-bengaluru-2-to-6-years-050826021971",
    "searchKeywords": "python developer",
    "searchLocation": "bangalore",
    "scrapedAt": "2026-08-07T14:19:59.321Z"
}
```

#### Field notes

| Field | Notes |
| --- | --- |
| `salary` | Range as posted, e.g. `"5-12 Lacs PA"`. `null` when the employer doesn't disclose it. |
| `skills` | Skill tags from the listing, as a string array. |
| `companyRating` / `companyReviewsCount` | Numeric rating (1–5) and review count when Naukri shows them. |
| `postedDate` / `postedDaysAgo` / `postedText` | ISO date (`YYYY-MM-DD`), parsed age in days, and the raw text. |
| `workMode` | `Hybrid`, `Remote` or `Work from office` when shown. |
| `jobId` / `jobUrl` | Naukri's unique job ID (results are deduplicated on it) and the direct link to the posting. |
| `searchKeywords` / `searchLocation` | The query that produced this record — handy when merging runs. |

### Input

The only required field is your search:

```json
{
    "keywords": "python developer"
}
```

All parameters:

| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `keywords` | string | yes | – | Job title, skill or company to search for. |
| `location` | string | no | – | Indian city or region (e.g. `bangalore`, `mumbai`, `delhi ncr`). Empty = all India. |
| `experience` | integer | no | – | Years of experience (0–30). |
| `freshness` | integer | no | – | Only jobs posted in the last N days. Naukri supports 1, 3, 7, 15, 30 — other values snap up to the nearest window. |
| `maxJobs` | integer | no | 100 | Stop after this many unique jobs (1–1000). |
| `proxyConfiguration` | object | no | no proxy | Usually not needed. If runs fail with blocking errors, enable Apify **RESIDENTIAL** proxies with country **India**. |

### Pricing — how much does it cost to scrape Naukri?

Pay-per-event, with a single event:

| Event | Price | Charged when |
| --- | --- | --- |
| `job-scraped` | **$0.0008** | One unique job is stored in your dataset |

**1,000 results ≈ $0.80.** Duplicates, failed pages and empty runs are never charged. You can cap spending with Apify's **Maximum cost per run** setting — the Actor stops cleanly at your limit and keeps everything scraped up to that point.

### FAQ

#### How to scrape Naukri jobs without login?

You don't need a Naukri account: this Actor reads Naukri's public search result pages. Enter your keywords (plus optional location, experience and freshness), start the run, and download the dataset. No cookies, no credentials, nothing to install.

#### How much does a Naukri scraper API cost?

This one costs **$0.0008 per job — $0.80 per 1,000 jobs** — and you're only charged for unique jobs actually delivered. For comparison, the most-used Naukri scraper on the Store charges $10.00 per 1,000 and the next most popular $1.50 per 1,000 (checked August 2026). Every run doubles as an API: fetch results via the Apify REST API or client libraries.

#### Is it legal to scrape Naukri.com?

This Actor only collects publicly visible job listings — no login, no personal data. You are responsible for using the data in compliance with applicable laws and Naukri's terms of service.

#### How many jobs can I scrape from Naukri in one run?

Up to 1,000 per query — Naukri itself serves at most ~50 result pages per search. For bigger harvests, split the search by location or experience and run in parallel; results deduplicate on `jobId`, so merging is safe.

#### Why is the salary field null on some Naukri jobs?

Naukri only shows a salary when the employer discloses one, and on typical searches that's a minority of listings. `salary` is `null` for "Not disclosed" — that's the site's data reality, not a scraper gap.

#### Can I export Naukri jobs to Excel or Google Sheets automatically?

Yes. Download Excel/CSV straight from the Output tab, or wire Apify integrations (Google Sheets, Zapier, Make, webhooks) so every scheduled run pushes new jobs on its own.

### Limitations (honest ones)

- **Salary** is only present when the employer discloses it — on typical searches that is a minority of listings. This is Naukri data reality, not a scraper gap.
- **`postedDate` has day precision** — Naukri's list pages only expose relative dates ("2 days ago"), so dates older than ~3 weeks are approximate.
- **`jdSnippet` is the search-page snippet**, not the full job description. Full-description scraping is not part of v1.
- **Promoted/sponsored listings ignore the `freshness` and `experience` filters** — Naukri mixes a few promoted jobs into every result page regardless of filters, so a small share of items (typically 2-4 per 25) may fall outside your requested window. This is site behavior, not a scraper gap.
- Results are capped by Naukri at roughly 1,000 jobs per query (see FAQ for the split-and-merge workaround).
- If Naukri changes its page layout, extraction can break until the Actor is updated — runs fail loudly with a clear message instead of returning silent empty data.

### 🤖 For AI Agents & MCP

This Actor is public on the Apify platform, so AI agents can call it as a tool through the [Apify MCP server](https://mcp.apify.com/). Connect Claude, or any MCP-compatible agent, to Apify and it can run searches like *"find python developer jobs in Bangalore posted this week"* and receive flat, stable JSON back — no post-processing, no HTML parsing, ready for LLM pipelines and downstream automation.

### More actors by srd836

- [Google Sheets Import & Export](https://apify.com/srd836/google-sheets-import-export) — sync datasets in and out of Google Sheets.
- [YouTube Transcript Scraper](https://apify.com/srd836/youtube-transcript-pro) — pull transcripts from YouTube videos.
- [Shopify Store Spy — AliExpress Price Match](https://apify.com/srd836/dropship-price-spy) — match Shopify store products to AliExpress prices.

***

Whether you searched for a **Naukri job scraper**, a way to **scrape Naukri jobs without login**, a **Naukri data extraction API**, or an affordable **Naukri scraper API price**, this Actor covers it: extract job listings from Naukri.com with salary, skills and company ratings, export Naukri search results to Excel or Google Sheets, build India job market datasets, monitor new Naukri postings daily, and feed hiring-signal data to sales and AI agent pipelines.

### Support

Found a bug or missing a field you need? Open an issue on the Actor's **Issues** tab — every issue is read and answered, usually within a few days, and feedback drives the roadmap.

# Actor input Schema

## `keywords` (type: `string`):

What to search for — job title, skill or company, exactly as you would type it into the Naukri search box. Example: <code>python developer</code>

## `location` (type: `string`):

City or region in India to search in, e.g. <code>bangalore</code>, <code>mumbai</code>, <code>delhi ncr</code>, <code>pune</code>. Leave empty to search all of India.

## `experience` (type: `integer`):

Only jobs matching this many years of experience (0–30). Leave empty for any experience level.

## `freshness` (type: `integer`):

Only jobs posted within the last N days. Naukri supports windows of 1, 3, 7, 15 or 30 days — other values snap up to the nearest window (e.g. 5 → 7).

## `maxJobs` (type: `integer`):

Stop after this many unique jobs (1–1000). Note: Naukri serves at most ~50 result pages (~1000 jobs) per query — use filters to narrow big searches.

## `proxyConfiguration` (type: `object`):

Optional. The scraper works without proxies from most networks. If your runs fail with blocking errors, switch on Apify <b>RESIDENTIAL</b> proxies with country <b>India</b>.

## Actor input object example

```json
{
  "keywords": "python developer",
  "location": "bangalore",
  "maxJobs": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": "python developer",
    "location": "bangalore",
    "maxJobs": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("srd836/naukri-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": "python developer",
    "location": "bangalore",
    "maxJobs": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("srd836/naukri-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": "python developer",
  "location": "bangalore",
  "maxJobs": 50
}' |
apify call srd836/naukri-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,srd836/naukri-jobs-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WHawHshJyf6aU3RSE/builds/sVRYhMMhyVVVg4Uhw/openapi.json
