# Naukri Jobs Scraper (`parsebird/naukri-jobs-scraper`) Actor

Scrape Naukri.com job listings across India — titles, companies, salaries, skills, descriptions, AmbitionBox reviews. Filter by keyword, location, experience, salary range, work mode, and 15+ filters. Two modes: fast search summaries or full job details. Export as JSON, CSV, Excel.

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

## Pricing

from $1.00 / 1,000 job listing (standard)s

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 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 Jobs Scraper — India Job Listings & Salary Data from Naukri.com

Scrape [Naukri.com](https://www.naukri.com/) job listings across India — titles, companies, salaries, skills, descriptions, AmbitionBox reviews, and company profiles. Search by keyword with 15+ filters, paste a search URL, or fetch specific jobs by ID. Two modes: fast search summaries or full job details. Export as JSON, CSV, or Excel.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Extract structured job data from Naukri.com — India's largest job portal with 75M+ registered users. Filter by keyword, location, experience, salary, work mode, industry, and more. Get search summaries at $1/1000 or full details with AmbitionBox reviews at $3/1000.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

````

Apify Actor: parsebird/naukri-jobs-scraper — scrapes Naukri.com job listings from India's #1 job portal. Two pricing tiers: $0.001/result ($1.00/1000) for search summaries, $0.003/result ($3.00/1000) for full details. Call via ApifyClient: client.actor("parsebird/naukri-jobs-scraper").call(run\_input={"keyword": "software developer", "maxJobs": 50}). Key inputs: keyword (string), searchUrl (string — Naukri search URL), jobIds (array of job ID strings — direct fetch), maxJobs (integer, default 100), fetchDetails (boolean, default false — set true for full job details at $3/1000), sortBy (string: "relevance"|"date"), freshness (string: "all"|"1"|"3"|"7"|"15"|"30"), workMode (array: "office"|"remote"|"hybrid"|"temporary\_wfh"), experience (string: "0"-"30"), salaryRange (array: e.g. \["10to15"]), cities/department/industry/roleCategory/companyType (arrays of Naukri IDs). Input precedence: jobIds > searchUrl > keyword. Standard output: jobId, title, companyName, location, experience, salary, tagsAndSkills, jdURL, createdDate, workMode, ambitionBoxRating. Detailed output adds: jobDescription (HTML), keySkills, companyAbout, ambitionBoxReviews, benefits, education, roleCategory, industry. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations

````

### What does Naukri Jobs Scraper do?

**Naukri Jobs Scraper** is an [Apify Actor](https://apify.com/actors) that extracts job listings from [Naukri.com](https://www.naukri.com/) — India's largest job portal with over 75 million registered users. It scrapes structured data including job titles, companies, salaries, skills, descriptions, AmbitionBox reviews, and company profiles.

Think of it as a **Naukri.com API alternative** — no official public API exists, but this scraper delivers the same structured job data at scale. It supports two scraping modes to match your budget and data needs:

- 🔍 **Standard Search Mode** ($1/1000) — Get job summaries from search results: title, company, salary, location, experience, skills, and AmbitionBox rating
- 📋 **Detailed Data Mode** ($3/1000) — Get everything in Standard plus full HTML job description, skills breakdown, company profile, AmbitionBox reviews, benefits, education requirements, and more

Three ways to search:

- **Keyword search** with 15+ filters (experience, salary, location, work mode, industry, company type, role category, and more)
- **Search URL** — Paste any Naukri.com search results URL
- **Job IDs** — Fetch specific jobs directly by their Naukri Job IDs

### What data can you extract from Naukri.com?

#### Standard Mode fields

| Field | Description |
|-------|-------------|
| `jobId` | Unique Naukri.com job identifier |
| `title` | Job title (e.g., "Senior Software Developer", "Data Analyst") |
| `companyName` | Employer name |
| `location` | Job location (e.g., "Bengaluru", "Mumbai, Delhi NCR") |
| `experience` | Experience range (e.g., "3-6 Yrs") |
| `salary` | Salary information (e.g., "10-15 Lacs", "Not Disclosed") |
| `salaryMin` / `salaryMax` | Numeric salary values when available |
| `tagsAndSkills` | Skills and tags (e.g., "python, machine learning, sql") |
| `jdURL` | Direct link to the job posting |
| `createdDate` | Posting date and time |
| `employmentType` | Full Time, Part Time, Contractual, etc. |
| `workMode` | Office, Remote, Hybrid, or Temporary WFH |
| `ambitionBoxRating` | Company rating from AmbitionBox |
| `ambitionBoxReviewCount` | Number of AmbitionBox reviews |

#### Detailed Mode fields (in addition to Standard)

| Field | Description |
|-------|-------------|
| `jobDescription` | Full job description in HTML |
| `jobRole` | Specific job role title |
| `roleCategory` | Role category (e.g., "Software Development") |
| `functionalArea` | Functional area (e.g., "Engineering - Software") |
| `industry` | Industry (e.g., "IT Services & Consulting") |
| `otherSkills` / `preferredSkills` | Detailed skills breakdown |
| `educationUG` / `educationPG` | Education requirements |
| `companyAbout` | Company description |
| `companyAddress` | Company address |
| `companyWebsite` | Company website URL |
| `ambitionBoxReviews` | Employee reviews with likes, dislikes, and ratings |
| `ambitionBoxAvgSalary` | Average CTC from AmbitionBox |
| `benefits` | Employee benefits (health insurance, training, etc.) |
| `vacancy` | Number of open positions |

### How to scrape Naukri.com

1. **Go to Naukri Jobs Scraper** on [Apify Store](https://apify.com/parsebird/naukri-jobs-scraper) and click **Try for free**
2. **Choose your search method:**
   - Enter a keyword like "data scientist" or "python developer"
   - Paste a Naukri.com search URL from your browser
   - Enter specific Job IDs for direct fetching
3. **Set filters** (optional) — Experience, salary range, work mode, location, industry, and more
4. **Set the result limit** — Start with 50 for a quick test
5. **Choose detail level** — Leave "Fetch Full Details" off for fast summaries ($1/1000), or turn it on for complete job data ($3/1000)
6. **Run the scraper** — Click **Start** and wait for results
7. **Export your data** — Download as JSON, CSV, or Excel, or access via the [Apify API](https://docs.apify.com/api/v2)

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `keyword` | string | No | — | Search term (e.g., "software developer"). Ignored if searchUrl or jobIds is provided |
| `searchUrl` | string | No | — | Naukri.com search results URL. Supports keyword, location, and combined URLs |
| `jobIds` | array | No | — | List of Naukri Job IDs to fetch directly. Overrides keyword and searchUrl |
| `maxJobs` | integer | No | `100` | Maximum number of job listings to scrape |
| `fetchDetails` | boolean | No | `false` | Fetch full details including description, skills, company profile, and reviews |
| `sortBy` | string | No | `relevance` | Sort by "relevance" or "date". Works with keyword and searchUrl |
| `freshness` | string | No | `all` | Filter by posting date: "all", "1", "3", "7", "15", "30" (days) |
| `workMode` | array | No | — | Filter by work arrangement: "office", "remote", "hybrid", "temporary_wfh" |
| `experience` | string | No | — | Filter by years of experience (e.g., "5") |
| `salaryRange` | array | No | — | Filter by annual salary in Lakhs (e.g., ["10to15", "15to25"]) |
| `cities` | array | No | — | Naukri city IDs to filter locations |
| `department` | array | No | — | Department IDs |
| `companyType` | array | No | — | Company type IDs (e.g., Foreign MNC, Startup) |
| `roleCategory` | array | No | — | Role category IDs |
| `industry` | array | No | — | Industry type IDs |
| `postedBy` | array | No | — | Posted by filter ("1" = Company, "2" = Consultant) |
| `proxyConfiguration` | object | No | Apify Proxy (residential) | Proxy settings for the run |

**Input precedence:** `jobIds` > `searchUrl` > `keyword`. If `searchUrl` is provided, manual search filters are ignored but `sortBy` still applies.

### Output example

#### Standard Mode output

```json
{
  "jobId": "220126040161",
  "title": "Sales Executive",
  "companyName": "CenturyPly",
  "companyId": 2437920,
  "location": "India",
  "experience": "1-6 Yrs",
  "salary": "Not disclosed",
  "salaryMin": 0,
  "salaryMax": 0,
  "salaryCurrency": "INR",
  "tagsAndSkills": "contract negotiations,channel sales,business development,plywood",
  "jdURL": "https://www.naukri.com/job-listings-sales-executive-century-ply-india-1-to-6-years-220126040161",
  "createdDate": "2026-01-22 13:23:19",
  "employmentType": "Full Time, Permanent",
  "workMode": "Office",
  "logoPath": "https://img.naukimg.com/logo_images/groups/v1/4587085.gif",
  "ambitionBoxRating": "3.8",
  "ambitionBoxReviewCount": 1259,
  "footerLabel": "Just Now",
  "companyJobsUrl": "https://www.naukri.com/centuryply-jobs-careers-74548"
}
````

#### Detailed Mode output

```json
{
  "jobId": "220126040161",
  "title": "Sales Executive",
  "companyName": "CenturyPly",
  "companyId": 2437920,
  "location": "India",
  "experience": "1-6 Yrs",
  "minimumExperience": 1,
  "maximumExperience": 6,
  "salary": "Not Disclosed",
  "salaryMin": 0,
  "salaryMax": 0,
  "salaryCurrency": "INR",
  "jobDescription": "<p>Greetings from Century Ply Industries</p>...",
  "jdURL": "https://www.naukri.com/job-listings-sales-executive-century-ply-india-1-to-6-years-220126040161",
  "createdDate": "2026-01-22 18:53:19",
  "employmentType": "Full Time, Permanent",
  "workMode": "Office",
  "jobType": "fulltime",
  "jobRole": "Direct Sales Executive",
  "roleCategory": "Retail & B2C Sales",
  "functionalArea": "Sales & Business Development",
  "industry": "Building Material",
  "otherSkills": ["contract negotiations", "channel sales", "business development", "plywood"],
  "preferredSkills": [],
  "tagsAndSkills": "contract negotiations, channel sales, business development, plywood",
  "educationUG": ["Any Graduate"],
  "educationPG": [],
  "companyAbout": "CenturyPly has been the front-runner in applying innovation at work...",
  "companyAddress": "CENTURY HOUSE, P-15/1, TARATALA ROAD, KOLKATA",
  "ambitionBoxRating": "3.8",
  "ambitionBoxReviewCount": "1259",
  "ambitionBoxReviews": [
    {
      "title": "Sales Executive for 5 months in Kurnool",
      "likes": "Positive work culture, good work-life balance...",
      "dislikes": "Low salaries, limited career growth...",
      "rating": "5",
      "publishedOn": "02 Feb 2025"
    }
  ],
  "benefits": ["Job/Soft skill training", "Health insurance", "Performance bonus"]
}
```

Download results in JSON, CSV, Excel, or access via the [Apify API](https://docs.apify.com/api/v2).

### Use cases

- 📊 **Recruitment intelligence** — Build datasets of job listings by role, location, and industry across India
- 💰 **Salary benchmarking** — Compare salary ranges across cities, experience levels, and industries using Naukri salary data and AmbitionBox CTC data
- 🎯 **Sales prospecting** — Identify companies actively hiring and build outreach lists with company profiles and job context
- 📈 **Labor market research** — Analyze skills demand, hiring trends, and role distribution across India's job market
- 🛠️ **Skills gap analysis** — Extract required skills and technologies from thousands of job postings
- 🏢 **Employer branding research** — Collect AmbitionBox ratings, reviews, and benefits data for competitor analysis
- 📅 **Job market monitoring** — Schedule regular runs with [Apify Schedules](https://docs.apify.com/platform/schedules) to track new postings and market shifts
- 🔌 **Pipeline integration** — Feed job data into Google Sheets, Slack, Zapier, Make, or custom systems via [Apify Integrations](https://docs.apify.com/platform/integrations)

### How much does it cost to scrape Naukri.com?

Naukri Jobs Scraper uses [pay-per-event pricing](https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event) — you pay a fixed price per result based on the detail level.

**How much does it cost to scrape 1,000 Naukri.com job summaries?**

$1.00. Each job summary (Standard Mode) costs $0.001. New users get a free trial with $5 of platform credit — enough for approximately 5,000 search results.

**How much does it cost to scrape 1,000 Naukri.com jobs with full details?**

$3.00. Each detailed job (with description, skills, company profile, and reviews) costs $0.003.

### Pricing

| Mode | Event | Price per event | Price per 1,000 |
|------|-------|----------------|-----------------|
| Standard Search | `job_item` | $0.001 | **$1.00** |
| Detailed Data | `job_item_detailed` | $0.003 | **$3.00** |

Standard Mode charges when you search by keyword or URL with `fetchDetails` off. Detailed Mode charges when `fetchDetails` is on, or when using `jobIds` for direct fetching.

Typical costs:

- 50 job summaries (quick test): ~$0.05
- 100 detailed jobs: ~$0.30
- 1,000 job summaries: ~$1.00
- 1,000 detailed jobs: ~$3.00

### How to use via API — Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

## Standard search mode
run = client.actor("parsebird/naukri-jobs-scraper").call(run_input={
    "keyword": "data scientist",
    "maxJobs": 100,
    "sortBy": "date",
    "freshness": "7",
    "workMode": ["remote", "hybrid"],
})

for job in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{job['title']} at {job['companyName']} — {job['location']} — {job.get('salary', 'N/A')}")
```

```python
## Detailed mode with full descriptions
run = client.actor("parsebird/naukri-jobs-scraper").call(run_input={
    "keyword": "python developer",
    "maxJobs": 50,
    "fetchDetails": True,
})

for job in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{job['title']} — Skills: {job.get('tagsAndSkills', '')}")
    print(f"  Rating: {job.get('ambitionBoxRating', 'N/A')} — Benefits: {job.get('benefits', [])}")
```

### How to use via API — JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('parsebird/naukri-jobs-scraper').call({
    keyword: 'software engineer',
    maxJobs: 100,
    fetchDetails: true,
    experience: '5',
    salaryRange: ['10to15', '15to25'],
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(job => {
    console.log(`${job.title} at ${job.companyName} — ${job.salary} — ${job.workMode}`);
});
```

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

This Actor extracts publicly available data from [Naukri.com](https://www.naukri.com/) — the same job listing data any browser user can see on the search results and job detail pages. No login or authentication is used. The scraper accesses only publicly visible job postings.

Web scraping of publicly available data is generally legal in the United States and the European Union, as established by the [hiQ Labs v. LinkedIn ruling](https://en.wikipedia.org/wiki/HiQ_Labs_v._LinkedIn). For more information, see Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

Users are responsible for ensuring their use of extracted data complies with applicable laws and Naukri.com's Terms of Service in their jurisdiction.

### Related Actors

Looking for more job scraping and data extraction tools? Check out these ParseBird actors:

- [Bayt Jobs Scraper](https://apify.com/parsebird/bayt-jobs-scraper) — Scrape job listings from Bayt.com across the Middle East and 30+ countries
- [HelloWork Jobs Scraper](https://apify.com/parsebird/hellowork-jobs-scraper) — Scrape job listings from HelloWork across France
- [BuiltIn Jobs Scraper](https://apify.com/parsebird/builtin-jobs-scraper) — Scrape tech job listings from BuiltIn.com
- [Hiring.cafe Scraper](https://apify.com/parsebird/hiring-cafe-scraper) — Scrape job listings from Hiring.cafe with 20+ filters

Browse all [ParseBird actors on Apify Store](https://apify.com/parsebird).

### FAQ

**What are the three search modes?**

1. **Keyword search** — Enter a job title or skill (e.g., "software developer") with optional filters. 2. **Search URL** — Paste a Naukri.com search URL directly from your browser. 3. **Job IDs** — Provide specific Naukri Job IDs to fetch full details directly.

**What is the difference between Standard and Detailed mode?**
Standard mode ($1/1000) returns search result summaries — title, company, salary, location, skills, and AmbitionBox rating. Detailed mode ($3/1000) adds full HTML job description, skills breakdown, company profile, AmbitionBox reviews and benefits, and education requirements.

**How do I find Naukri city, department, or industry IDs?**
Search on Naukri.com with your desired filters applied, then inspect the URL parameters. The numeric IDs in the URL correspond to the filter values you can use in this actor.

**Can I use a Naukri.com search URL directly?**
Yes. Navigate to Naukri.com, apply your filters, copy the URL, and paste it into the `searchUrl` field. The scraper supports keyword URLs (`/software-developer-jobs`), location URLs (`/jobs-in-bengaluru`), and combined URLs (`/python-developer-jobs-in-mumbai`).

**What is the `sortBy` parameter?**
Sort results by `relevance` (default — best match) or `date` (newest first). The `sortBy` parameter works with both keyword search and searchUrl.

**Why are some salary fields empty?**
Many employers on Naukri.com choose not to disclose salary information. When salary is hidden, the `salary` field shows "Not Disclosed" and `salaryMin`/`salaryMax` will be 0.

**Can I schedule recurring runs?**
Yes. Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run daily, weekly, or at any interval. Monitor new job postings by comparing datasets between runs.

**Can I access the data via API?**
Yes. Use the [Apify API](https://docs.apify.com/api/v2) or the official [Python](https://docs.apify.com/api/client/python) and [JavaScript](https://docs.apify.com/api/client/js) client libraries to run the scraper and retrieve results programmatically.

**What export formats are supported?**
JSON, CSV, Excel (XLSX), XML, HTML, and RSS. Download directly from the Apify Console or via the API.

**Is there a free trial?**
Yes. New Apify users get $5 of free platform credit — enough for approximately 5,000 job summaries or 1,600 detailed job listings.

**I found an issue or have a feature request.**
Open an issue on the [Issues tab](https://apify.com/parsebird/naukri-jobs-scraper/issues) or contact ParseBird via the Apify Console.

# Actor input Schema

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

Job search term (e.g., 'software developer', 'data analyst'). Ignored if searchUrl or jobIds is provided.

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

Paste a Naukri.com search results URL. Supports /<keyword>-jobs, /jobs-in-<location>, and /<keyword>-jobs-in-<location> URLs. Ignored if jobIds is provided.

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

List of specific Naukri Job IDs to fetch directly (e.g., \["220126040161", "170424007054"]). Skips search — fetches full details for each ID. Overrides keyword and searchUrl.

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

Maximum number of job listings to scrape.

## `fetchDetails` (type: `boolean`):

Fetch complete job details including full description, skills breakdown, company profile, and AmbitionBox reviews. Costs $3/1000 instead of $1/1000.

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

Sort job listings by relevance or posting date. Works with both keyword search and searchUrl.

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

Filter jobs by how recently they were posted.

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

Filter by work arrangement.

## `experience` (type: `string`):

Filter by years of experience required (e.g., '0', '5', '10'). Range: 0 to 30.

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

Filter by annual salary in Lakhs (e.g., \["10to15", "15to25"] for 10-15 and 15-25 Lakhs).

## `cities` (type: `array`):

List of Naukri city IDs to filter job locations (e.g., \["17", "97", "9508"] for Mumbai, Delhi, Bangalore).

## `department` (type: `array`):

List of department IDs to filter jobs (e.g., \["5"] for Engineering).

## `companyType` (type: `array`):

Filter by company type IDs (e.g., \["213", "217"] for Foreign MNC, Startup).

## `roleCategory` (type: `array`):

Filter by role category IDs (e.g., \["1028"] for Software Development).

## `industry` (type: `array`):

Filter by industry type IDs (e.g., \["25", "14"] for IT Services, Software Product).

## `postedBy` (type: `array`):

Filter by who posted the job (e.g., \["1"] for Company Jobs, \["2"] for Consultant Jobs).

## `topCompanies` (type: `array`):

Filter for jobs from specific top company IDs.

## `ugCourse` (type: `array`):

Filter by undergraduate course requirement IDs.

## `pgCourse` (type: `array`):

Filter by postgraduate course requirement IDs.

## `stipend` (type: `array`):

For internships, filter by stipend range.

## `duration` (type: `array`):

For internships, filter by duration in months.

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

Proxy settings. Residential proxies are recommended for reliable scraping of Naukri.com.

## Actor input object example

```json
{
  "keyword": "software developer",
  "maxJobs": 20,
  "fetchDetails": false,
  "sortBy": "relevance",
  "freshness": "all",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "keyword": "software developer",
    "maxJobs": 20,
    "fetchDetails": false,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/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 developer",
    "maxJobs": 20,
    "fetchDetails": False,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/naukri-jobs-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 '{
  "keyword": "software developer",
  "maxJobs": 20,
  "fetchDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call parsebird/naukri-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Naukri Jobs Scraper",
        "description": "Scrape Naukri.com job listings across India — titles, companies, salaries, skills, descriptions, AmbitionBox reviews. Filter by keyword, location, experience, salary range, work mode, and 15+ filters. Two modes: fast search summaries or full job details. Export as JSON, CSV, Excel.",
        "version": "1.0",
        "x-build-id": "ignj1knaedAeVXGBR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parsebird~naukri-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parsebird-naukri-jobs-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/parsebird~naukri-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parsebird-naukri-jobs-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/parsebird~naukri-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parsebird-naukri-jobs-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": {
                    "keyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Job search term (e.g., 'software developer', 'data analyst'). Ignored if searchUrl or jobIds is provided."
                    },
                    "searchUrl": {
                        "title": "Naukri Search URL",
                        "type": "string",
                        "description": "Paste a Naukri.com search results URL. Supports /<keyword>-jobs, /jobs-in-<location>, and /<keyword>-jobs-in-<location> URLs. Ignored if jobIds is provided."
                    },
                    "jobIds": {
                        "title": "Job IDs",
                        "type": "array",
                        "description": "List of specific Naukri Job IDs to fetch directly (e.g., [\"220126040161\", \"170424007054\"]). Skips search — fetches full details for each ID. Overrides keyword and searchUrl."
                    },
                    "maxJobs": {
                        "title": "Maximum Jobs",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of job listings to scrape.",
                        "default": 100
                    },
                    "fetchDetails": {
                        "title": "Fetch Full Details",
                        "type": "boolean",
                        "description": "Fetch complete job details including full description, skills breakdown, company profile, and AmbitionBox reviews. Costs $3/1000 instead of $1/1000.",
                        "default": false
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "relevance",
                            "date"
                        ],
                        "type": "string",
                        "description": "Sort job listings by relevance or posting date. Works with both keyword search and searchUrl.",
                        "default": "relevance"
                    },
                    "freshness": {
                        "title": "Posting Date",
                        "enum": [
                            "all",
                            "1",
                            "3",
                            "7",
                            "15",
                            "30"
                        ],
                        "type": "string",
                        "description": "Filter jobs by how recently they were posted.",
                        "default": "all"
                    },
                    "workMode": {
                        "title": "Work Mode",
                        "type": "array",
                        "description": "Filter by work arrangement.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "office",
                                "temporary_wfh",
                                "remote",
                                "hybrid"
                            ],
                            "enumTitles": [
                                "Office",
                                "Temporary WFH",
                                "Remote",
                                "Hybrid"
                            ]
                        }
                    },
                    "experience": {
                        "title": "Experience (Years)",
                        "type": "string",
                        "description": "Filter by years of experience required (e.g., '0', '5', '10'). Range: 0 to 30."
                    },
                    "salaryRange": {
                        "title": "Salary Range",
                        "type": "array",
                        "description": "Filter by annual salary in Lakhs (e.g., [\"10to15\", \"15to25\"] for 10-15 and 15-25 Lakhs)."
                    },
                    "cities": {
                        "title": "City IDs",
                        "type": "array",
                        "description": "List of Naukri city IDs to filter job locations (e.g., [\"17\", \"97\", \"9508\"] for Mumbai, Delhi, Bangalore)."
                    },
                    "department": {
                        "title": "Department IDs",
                        "type": "array",
                        "description": "List of department IDs to filter jobs (e.g., [\"5\"] for Engineering)."
                    },
                    "companyType": {
                        "title": "Company Type IDs",
                        "type": "array",
                        "description": "Filter by company type IDs (e.g., [\"213\", \"217\"] for Foreign MNC, Startup)."
                    },
                    "roleCategory": {
                        "title": "Role Category IDs",
                        "type": "array",
                        "description": "Filter by role category IDs (e.g., [\"1028\"] for Software Development)."
                    },
                    "industry": {
                        "title": "Industry IDs",
                        "type": "array",
                        "description": "Filter by industry type IDs (e.g., [\"25\", \"14\"] for IT Services, Software Product)."
                    },
                    "postedBy": {
                        "title": "Posted By",
                        "type": "array",
                        "description": "Filter by who posted the job (e.g., [\"1\"] for Company Jobs, [\"2\"] for Consultant Jobs)."
                    },
                    "topCompanies": {
                        "title": "Top Company IDs",
                        "type": "array",
                        "description": "Filter for jobs from specific top company IDs."
                    },
                    "ugCourse": {
                        "title": "UG Course IDs",
                        "type": "array",
                        "description": "Filter by undergraduate course requirement IDs."
                    },
                    "pgCourse": {
                        "title": "PG Course IDs",
                        "type": "array",
                        "description": "Filter by postgraduate course requirement IDs."
                    },
                    "stipend": {
                        "title": "Stipend Range",
                        "type": "array",
                        "description": "For internships, filter by stipend range."
                    },
                    "duration": {
                        "title": "Duration (Months)",
                        "type": "array",
                        "description": "For internships, filter by duration in months."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies are recommended for reliable scraping of Naukri.com."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
