# 🔥Naukri Jobs Scraper - $1/1000 jobs (`hgservices/naukri-jobs-scraper`) Actor

Extract structured job data from Naukri.com, India's #1 job portal. Search by keyword, location, filters, saved search URL, or job IDs, and get job titles, companies, salaries, experience, skills, and optional full job details.

- **URL**: https://apify.com/hgservices/naukri-jobs-scraper.md
- **Developed by:** [Harish Garg](https://apify.com/hgservices) (community)
- **Categories:** Jobs, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 scraped jobs

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 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

## Naukri Jobs Scraper

### What does Naukri Jobs Scraper do?

**Naukri Jobs Scraper collects public job listings from [Naukri.com](https://www.naukri.com) into a clean, ready-to-use dataset.** Search by job title, skill, company, or location, then receive useful vacancy details such as the role, employer, location, experience, salary, posting date, skills, and job description.

Use it to build job-market reports, discover new openings, track hiring activity, or power your own recruitment workflows. Run it on demand or on a schedule, then access results through Apify’s API, integrations, exports, monitoring, and optional proxy infrastructure.

### Why use Naukri Jobs Scraper?

- **Find relevant opportunities quickly** — search for roles such as software engineer, data analyst, sales executive, or any skill and location combination.
- **Track the job market** — follow new postings, remote and hybrid roles, salary information, experience requirements, and employer activity.
- **Bring data into your workflow** — export results or connect them to Google Sheets, Make, Zapier, and other Apify integrations.
- **Choose the detail level you need** — collect search results only for fast discovery, or include full job details for deeper analysis.
- **Repeatable job monitoring** — schedule a run to check for newly posted roles every day, week, or at another interval that suits your process.

### How to scrape Naukri job listings

1. Open the Actor and select the **Input** tab.
2. Enter a keyword, such as `software engineer`, and optionally add a location, such as `Bangalore`.
3. Refine the search with filters for posting date, work mode, experience, salary, and sort order.
4. Set the maximum number of job listings to collect and whether to include detailed job information.
5. Click **Start**. View the results in the **Dataset** tab or download them when the run finishes.

You can also paste a Naukri search URL to reuse a search you have already configured on the website, or provide job IDs when you need specific listings.

### Input

Set up the Actor in the **Input** tab. The most useful fields are:

| Field | What it does |
|---|---|
| `keyword` | Job title, skill, or search phrase to find. |
| `location` | Optional city or region, for example `Mumbai` or `Bangalore`. |
| `searchUrl` | A Naukri search URL whose selected filters you want to reuse. |
| `jobIds` | Specific job IDs to collect directly. |
| `freshness` | Limit results to jobs posted recently. |
| `sortBy` | Order results by relevance or newest posting date. |
| `workMode` | Filter for office, remote, hybrid, or temporary work-from-home roles. |
| `experience` | Target roles requiring a chosen number of years of experience. |
| `salaryRange` | Filter by annual salary range. |
| `maxItems` | Maximum number of job listings to include in the dataset (minimum 20). |
| `getJobDetails` | Include job descriptions, skills, education, and other available details. |

If you provide job IDs, they take priority. If you provide a search URL, its search criteria take priority over manually entered search filters.

### Output

Every dataset record represents one Naukri job listing. Available fields can include the job title, company, link, location, experience, salary, posting time, skills, role summary, full description, education, employment type, and company information where available.

```json
{
  "jobId": "220126040161",
  "title": "Sales Executive",
  "company": "CenturyPly",
  "url": "https://www.naukri.com/job-listings-sales-executive-...",
  "location": "India",
  "experience": "1-6 Yrs",
  "salary": "Not disclosed",
  "postedAt": "2026-08-17 13:23:19",
  "keySkills": ["channel sales", "business development", "b2b sales"],
  "employmentType": "Full Time, Permanent"
}
```

You can download the dataset in various formats such as **JSON, HTML, CSV, or Excel**.

### Data table

| Field | Description |
|---|---|
| `jobId` | Identifier for the job listing. |
| `title` | Job title. |
| `company` | Hiring company. |
| `url` | Link to the job listing. |
| `location` / `locations` | Job location or locations. |
| `experience` | Required experience. |
| `salary` | Salary information when available. |
| `postedAt` | Date and time the job was posted. |
| `workMode` | Remote, hybrid, or on-site information when available. |
| `descriptionPlain` | Readable job description when detailed collection is enabled. |
| `keySkills` | Skills listed for the role. |
| `education` | Education requirements when available. |
| `employmentType` | Employment and job type information. |
| `companyRating` | Company rating information when available. |

### How much does it cost to scrape Naukri jobs?

The cost depends on the number of listings you collect and whether you include detailed job information. Start with a small search to estimate the cost for your use case, then use **max items** or a maximum run-cost limit to stay within budget. Apify’s free tier may be enough to try a small run before you scale up.

### Tips for better job-search data

- For daily job alerts, select recent postings, sort by date, and schedule recurring runs.
- Use a specific keyword and location to reduce unrelated results.
- Collect listing data only when you need a broad market overview; include job details for richer analysis.
- Use `maxItems` to create predictable, focused datasets.
- Paste a saved Naukri search URL when you want to repeat a more complex search.

### FAQ, disclaimer, and support

#### Can I use this for recruitment or market research?

Yes. It is useful for job discovery, hiring-market research, salary benchmarking, and internal reporting. Always make sure your intended use complies with applicable laws, the source website’s terms, and privacy requirements.

#### Why are some fields blank?

Job listings do not always include every detail. Salary, work mode, company data, education requirements, and other optional fields may be unavailable for a particular listing.

#### Where can I get help?

For feedback, questions, or a custom data-collection solution, use the Actor’s **Issues** tab or contact the author through the Actor page.

# Actor input Schema

## `keyword` (type: `string`):

Job title, role or keyword to search on Naukri, e.g. "software engineer", "data scientist", "android developer". Ignored when Search URL or Job IDs are provided.

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

City to restrict results to, e.g. "Bangalore" or "Mumbai". Leave empty for all India. Ignored when Search URL or Job IDs are provided.

## `searchUrl` (type: `string`):

Paste a full Naukri search results URL, e.g. https://www.naukri.com/python-jobs-in-bangalore?k=python\&l=bangalore\&experience=2. Filters set on the site are applied automatically and override the manual filters below (except Sort by). Ignored when Job IDs are provided.

## `jobIds` (type: `array`):

12-digit Naukri job IDs to fetch directly (overrides keyword, location, Search URL and all filters). Extract them from any Naukri job URL.

## `freshness` (type: `string`):

Only jobs posted within the last N days.

## `sortBy` (type: `string`):

Sort order of search results. "Date" returns newest jobs first and also works together with Search URL.

## `workMode` (type: `array`):

Filter by work mode. Leave empty for all.

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

Required years of experience, 0-30. Leave empty for any.

## `salaryRange` (type: `array`):

Annual salary buckets in lakhs. Leave empty for any.

## `maxItems` (type: `integer`):

Maximum number of jobs to collect (minimum 20). Each result page returns up to 20 jobs.

## `getJobDetails` (type: `boolean`):

When enabled, fetches the full job description, salary breakdown, skills, education and AmbitionBox company data for every job (slower, charged as detailed items). Disable for quick listing-only runs.

## Actor input object example

```json
{
  "keyword": "software engineer",
  "freshness": "",
  "sortBy": "relevance",
  "maxItems": 100,
  "getJobDetails": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

All scraped Naukri job listings with full details, as JSON items in the default dataset.

# 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 = {
    "keyword": "software engineer"
};

// Run the Actor and wait for it to finish
const run = await client.actor("hgservices/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 = { "keyword": "software engineer" }

# Run the Actor and wait for it to finish
run = client.actor("hgservices/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 '{
  "keyword": "software engineer"
}' |
apify call hgservices/naukri-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hgservices/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/0eQvmao33E3tocVGo/builds/beTkCfbuVVjVXJg5T/openapi.json
