# Naukri Scraper (`epicscrapers/naukri-scraper`) Actor

Naukri Scraper is a fast, reliable Apify Actor that extracts detailed job listings from India’s top portal, naukri.com. Perfect for recruiters and analysts, it captures job titles, companies, salaries, experience, skills, and full descriptions using API scraping for accurate, up-to-date data.

- **URL**: https://apify.com/epicscrapers/naukri-scraper.md
- **Developed by:** [Epic Scrapers](https://apify.com/epicscrapers) (community)
- **Categories:** Lead generation, Integrations, Jobs
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Naukri Scraper

**[Naukri Scraper](https://apify.com)** is a high-performance Apify Actor that extracts job listings from [naukri.com](https://www.naukri.com), India's leading job portal. Built for **recruiters, job market analysts, and developers**, this scraper captures comprehensive job details including titles, company information, salary ranges, experience requirements, skills, and full job descriptions at lightning speed using optimized HTTP-based API scraping.

---

### What can Naukri Scraper do?

- ⚡ **Ultra-fast scraping** — Parallel runs to speed up scraping
- 📊 **Complete job data** — Extracts job titles, company details, salaries, experience levels, locations, skills, and descriptions
- 🎯 **Precise targeting** — Start from any Naukri search URL or job listing page
- 🔒 **Built-in proxy support** — Automatic proxy rotation to prevent blocking
- 📁 **Structured output** — Clean JSON format ready for analysis or integration
- 🔧 **Configurable limits** — Set maximum jobs to scrape per run
- 🌐 **Batch processing** — Efficiently handles pagination for large result sets

---

### What data can you extract from Naukri.com?

| Field | Description | Example |
|-------|-------------|---------|
| `title` | Job title | "Software Engineer" |
| `companyName` | Hiring company | "Growing Software Engineering and Consulting Company" |
| `jobDescription` | Full job description HTML | "0 to 3 years of experience..." |
| `experienceText` | Experience range | "0-2 Yrs" |
| `minimumExperience` | Min years required | "0" |
| `maximumExperience` | Max years required | "2" |
| `salaryDetail` | Salary information object | `{ minimumSalary: 150000, maximumSalary: 300000, currency: "INR" }` |
| `placeholders` | Location, salary, exp array | `[{type: "location", label: "Hybrid - Noida"}]` |
| `tagsAndSkills` | Required skills CSV | "React.Js, Angular, API" |
| `jobId` | Unique job identifier | "010426010988" |
| `jdURL` | Job detail URL path | "/job-listings-software-engineer-..." |
| `companyId` | Company identifier | 6855383 |
| `logoPath` | Company logo URL | "https://img.naukimg.com/logo_images/..." |
| `createdDate` | Post timestamp (epoch ms) | 1775019281649 |
| `vacancy` | Number of openings | 2 |
| `ambitionBoxData` | Company rating data | `{ AggregateRating: "4.1", ReviewsCount: 13 }` |
| `applyByTime` | Application deadline | "2:24 PM" |
| `currency` | Salary currency | "INR" |

---

### How to scrape Naukri.com with Naukri Scraper

1. **Go to the Actor** → Open the [Naukri Scraper](https://apify.com) on Apify Store
2. **Set Start URLs** → Paste Naukri search URLs (e.g., `https://www.naukri.com/development-programmer-jobs`)
3. **Configure max jobs** → Set how many jobs to extract (default: 100, max: 1000+)
4. **Click Run** → The scraper will capture API requests and fetch job data at high speed
5. **Download results** → Export as JSON, CSV, or Excel from the Dataset tab

#### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `startUrls` | Array | Yes | `[{url: "https://www.naukri.com"}]` | List of Naukri URLs to start scraping from |
| `maxJobs` | Integer | No | 100 | Maximum number of jobs to collect |


---

### Input Example

```json
{
  "startUrls": [
    {
      "url": "https://www.naukri.com/development-programmer-jobs?k=development%2C%20programmer&wfhType=3"
    }
  ],
  "maxJobs": 1000
}
````

***

### Output Example

```json
{
  "title": "Software Engineer",
  "logoPath": "https://img.naukimg.com/logo_images/groups/v1/614294.gif",
  "logoPathV3": "https://img.naukimg.com/logo_images/groups/v1/614294.gif",
  "jobId": "300326022175",
  "currency": "INR",
  "footerPlaceholderLabel": "7 Days Ago",
  "footerPlaceholderColor": "grey",
  "companyName": "Careernet",
  "isSaved": false,
  "tagsAndSkills": "Low Level Driver Development,Linux,ARM Architecture,C Programming,Python,Program,Architecture,C",
  "placeholders": [
    {
      "type": "experience",
      "label": "5-9 Yrs"
    },
    {
      "type": "salary",
      "label": "Not disclosed"
    },
    {
      "type": "location",
      "label": "Hybrid - Bengaluru"
    }
  ],
  "companyId": 4124,
  "jdURL": "/job-listings-software-engineer-careernet-bengaluru-5-to-9-years-300326022175",
  "staticUrl": "careernet-jobs-careers-4124",
  "jobDescription": "5-9 years of experience in embedded software development<br><br>Experience working on ARM-based processors and architecture<br><br>Experience with debugging tools such as JTAG,GDB,or similar",
  "showMultipleApply": false,
  "groupId": 614294,
  "isTopGroup": 0,
  "createdDate": 1774874523710,
  "consultant": true,
  "hideClientName": true,
  "clientHeadline": "Careernet",
  "mode": "jp",
  "clientLogo": "https://img.naukimg.com/logo_images/groups/v1/614294.gif",
  "board": "1",
  "vacancy": 5,
  "salaryDetail": {
    "minimumSalary": 0,
    "maximumSalary": 0,
    "currency": "INR",
    "hideSalary": true,
    "variablePercentage": 0
  },
  "experienceText": "5-9 Yrs",
  "minimumExperience": "5",
  "maximumExperience": "9",
  "applyByTime": "10:12 PM",
  "companyApplyJob": false,
  "walkinJob": false,
  "segmentedTemplateId": "Template1",
  "saved": false
}
```

#### Export Formats

Results can be exported as:

- **JSON** — Full structured data
- **CSV** — Spreadsheet format for analysis
- **Excel** — With formatting and filtering
- **HTML** — For viewing in browser

***

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

**Yes**, this Actor only scrapes **publicly available job listings** that are accessible without authentication. It does NOT:

- Scrape private user data (emails, phone numbers, applicant data)
- Access password-protected areas
- Violate Naukri's terms of service for public data access

However, you should:

- Use the data responsibly and ethically
- Not republish content verbatim without permission
- Comply with local data protection laws
- Respect rate limits (this Actor implements reasonable delays)

***

### Why use Naukri Scraper instead of the official API?

Naukri.com **does not offer a public API** for job search data. This scraper provides:

- ✅ **Complete data access** — Get all fields shown on the website
- ✅ **Real-time data** — Always fresh, not cached
- ✅ **No registration required** — No API keys or partnerships needed
- ✅ **Custom filtering** — Use Naukri's URL parameters for any search criteria
- ✅ **Bulk export** — Download thousands of jobs in minutes

***

### Use Cases

- **Job market analysis** — Track hiring trends, salary benchmarks, in-demand skills
- **Competitive intelligence** — Monitor competitor job postings
- **Recruitment automation** — Build job aggregation platforms
- **Career research** — Analyze opportunities by location, experience level, or industry
- **Data science projects** — Train ML models on job market data

***

### FAQ

#### How do I get more than 1000 jobs?

Use multiple start URLs with different search parameters (different keywords, locations, or filters). The Actor will aggregate results from all sources.

#### Can I filter jobs by location, salary, or experience?

Yes! Use Naukri.com's search filters on their website, then copy the resulting URL as your startUrl. All URL parameters are preserved.

#### What happens if Naukri blocks the scraper?

The Actor uses Apify's auto-proxy rotation and request interception to minimize blocking. If issues occur, try:

- Reducing `maxJobs` per run
- Increasing delays between runs
- Using residential proxies

#### Can I scrape specific companies only?

Yes, use Naukri's company filter on their website and copy the resulting URL.

#### Is the salary data always available?

Some employers hide salary information. The `hideSalary` field indicates when salary data is not displayed.

#### How fresh is the data?

Data is scraped in real-time. The `createdDate` and `footerPlaceholderLabel` (e.g., "5 Days Ago") show when jobs were posted.

***

### Apify Platform Features

This Actor leverages Apify's powerful platform:

- 📅 **Scheduling** — Run automatically daily/weekly to track new jobs
- 🔗 **API access** — Trigger runs via REST API
- 🔌 **Integrations** — Connect to Zapier, Make, n8n, Google Sheets, Slack
- 📊 **Webhooks** — Get notified when scraping completes
- 📈 **Monitoring** — Track run history and performance
- ☁️ **Cloud storage** — Permanent dataset retention

***

### Support

Need help or have feature requests?

- **Issues** — Report bugs via the [Issues tab](https://github.com)
- **Email** — Contact jwlben11@gmail.com
- **Apify Community** — Join the [Apify Discord](https://discord.com/invite/apify)

***

### Terms of Use

By using this Actor, you agree to:

1. Use scraped data responsibly and legally
2. Not overwhelm Naukri.com servers (this Actor implements rate limiting)
3. Respect job poster privacy and intellectual property
4. Comply with all applicable laws and regulations

***

**Ready to extract job data from India's largest job portal?** [Get started with Naukri Scraper today!](https://apify.com?fpr=epicscrapers)

# Actor input Schema

## `startUrls` (type: `array`):

URLs to start with.

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

Maximum number of jobs to collect

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.naukri.com"
    }
  ],
  "maxJobs": 100
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.naukri.com"
        }
    ],
    "maxJobs": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("epicscrapers/naukri-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 = {
    "startUrls": [{ "url": "https://www.naukri.com" }],
    "maxJobs": 100,
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.naukri.com"
    }
  ],
  "maxJobs": 100
}' |
apify call epicscrapers/naukri-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=epicscrapers/naukri-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Naukri Scraper",
        "description": "Naukri Scraper is a fast, reliable Apify Actor that extracts detailed job listings from India’s top portal, naukri.com. Perfect for recruiters and analysts, it captures job titles, companies, salaries, experience, skills, and full descriptions using API scraping for accurate, up-to-date data.",
        "version": "0.0",
        "x-build-id": "c7upelKThJh5XdkY4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/epicscrapers~naukri-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-epicscrapers-naukri-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/epicscrapers~naukri-scraper/runs": {
            "post": {
                "operationId": "runs-sync-epicscrapers-naukri-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/epicscrapers~naukri-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-epicscrapers-naukri-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "URLs to start with.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxJobs": {
                        "title": "Maximum Jobs",
                        "type": "integer",
                        "description": "Maximum number of jobs to collect",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
