# Naukri Jobs Scraper | Job Details & Company Data (`datascraperes/naukri-jobs-scraper`) Actor

Extract public Naukri India jobs by keyword and location, including salaries, skills, descriptions, company profiles and application links. Search multiple roles or cities in one run and export unique jobs to JSON, CSV or Excel. No Naukri login required.

- **URL**: https://apify.com/datascraperes/naukri-jobs-scraper.md
- **Developed by:** [DataScraperES](https://apify.com/datascraperes) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.75 / 1,000 public job 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Collect public Naukri India job listings by keyword and location, with **up to 100 jobs per search page**, full job-detail enrichment, and public company profiles in one HTTP-only Actor. Start with one keyword and city, then export a deduplicated Dataset with titles, companies, salaries, skills, descriptions, industry, ratings, and application links.

### What this Actor does

This Actor pages Naukri's public mobile search contract, deduplicates jobs by Naukri job ID, batch-enriches the discovered IDs, and fetches full public job details where available. It can also resolve each employer group to a public company profile with logo, rating, review count, tags, industry, and company URL.

The main differences from a basic Naukri scraper are:

- **100 results per source page** instead of the usual 20.
- **Batch listing enrichment** for up to 50 job IDs per request before full-detail collection.
- **Company and industry enrichment** from public company-group data.
- **HTTP-only execution**: no browser, login, account cookies, or API key.

### Use cases

- Build or refresh an India-focused job board or recruiting feed.
- Research hiring demand by role, city, experience level, salary band, or industry.
- Compare employers using public company ratings, review counts, tags, and industry.
- Export Naukri jobs to JSON, CSV, Excel, or a downstream database.
- Monitor public job-market changes on a schedule with Apify Tasks.

### How to use

1. Open the Actor in Apify Console.
2. Add a keyword and an Indian city, for example `software engineer` and `Bengaluru`.
3. Set the maximum number of unique jobs.
4. Keep full details and company profiles enabled unless you need a faster listing-only run.
5. Click **Start** and open the Dataset when the run finishes.

A small first run:

```json
{
  "searches": [
    {
      "keyword": "software engineer",
      "location": "Bengaluru"
    }
  ],
  "maxJobs": 5,
  "sort": "relevance",
  "includeDetails": true,
  "includeCompanyDetails": true
}
```

### Input

`searches` is required and accepts 1–25 keyword/location pairs. `maxJobs` is a global cap across all searches, defaults to 50, and accepts 1–1,000. `sort` is `relevance` or `date`. `includeDetails` controls full job-detail enrichment. `includeCompanyDetails` controls public company-profile and industry enrichment.

The Actor deduplicates by Naukri job ID before delivery and before charging. A blank location searches all India.

Complete input contract, including every public field:

```json
{
  "searches": [
    {
      "keyword": "software engineer",
      "location": "Bengaluru"
    }
  ],
  "maxJobs": 5,
  "sort": "relevance",
  "includeDetails": true,
  "includeCompanyDetails": true
}
```

| Field | Type | Default | What it does |
|---|---|---|---|
| `searches` | array | required | One to 25 search definitions. Each item has a `keyword` and optional `location`. |
| `searches[].keyword` | string | required | Role, skill, or phrase to search, up to 120 characters. |
| `searches[].location` | string | `""` | Indian city or region; leave blank for all India. |
| `maxJobs` | integer | `50` | Global unique-job cap from 1 to 1,000. |
| `sort` | string | `relevance` | `relevance` follows Naukri's ranking; `date` prioritizes newer postings. |
| `includeDetails` | boolean | `true` | Fetch full descriptions, skills, education, role taxonomy, salary details, and application data. |
| `includeCompanyDetails` | boolean | `true` | Add public company name, logo, rating, review count, tags, industry, and profile URL. |

### Output

Every Dataset item is one unique public job. Run-level counts, source coverage, request count, and errors are stored in the `SUMMARY` Key-Value Store record. A row with `detailStatus: "complete"` includes full detail data; `batch_only` means listing enrichment succeeded but full detail was unavailable; `detail_failed` means neither full detail nor batch enrichment was available.

This is a complete Dataset item from a real local run of the quick-start input above (limited to one search and five rows):

```json
{
  "recordType": "job",
  "jobId": "261026005898",
  "title": "Software Engineer",
  "companyName": "Qualcomm",
  "companyId": 93105,
  "groupId": 356782,
  "companyLogo": "https://img.naukimg.com/logo_images/groups/v1/mobile/356782.gif",
  "companyRating": 3.6,
  "companyReviewsCount": 1330,
  "companyTags": [
    "Forbes Global 2000",
    "TOP",
    "Fortune Global 500",
    "Highly Rated by Women",
    "Foreign MNC",
    "B2B",
    "SaaS",
    "Private",
    "Company",
    "AmbitionBox Top 2000 companies",
    "Service",
    "Electronic Components / Semiconductors",
    "10001-50000 emp.",
    "Founded: 1996"
  ],
  "companyIndustry": "Electronic Components / Semiconductors",
  "companyProfileUrl": "https://www.naukri.com/qualcomm-overview-356782?tab=jobs",
  "location": "Bengaluru",
  "locations": [
    "Bengaluru"
  ],
  "experience": "0-1 Yrs",
  "minimumExperience": 0,
  "maximumExperience": 1,
  "salary": "17-32 Lacs",
  "salaryMin": 1700000,
  "salaryMax": 3200000,
  "salaryCurrency": "INR",
  "salaryHidden": false,
  "skills": [
    "C++",
    "Python"
  ],
  "description": "Role & responsibilities Work closely with a cross functional team to understand AR/VR use case requirements, dataflows, and HW/SW partitioning Work closely with technology, hardware, and software experts to translate use-case requirements into implementation specifications and contributing to SW Design Leverage expert software knowledge and experience to implement and oversee the design, development, creation, modification, and validation of embedded and cloud edge software, applications, and/or specialized utility programs. Oversee the resolution of design, coding, and other technical issues by presenting end-to-end solutions. Oversee code reviews, regression tests, and the triage of issues to ensure the quality of code. Deploy state-of-the-art computer vision algorithms and features into commercial XR products Develop production code and system architectures with excellent design quality Expertise with modern C++ (11-20), and with writing reliable, maintainable, and idiomatic code Experience with multi-core programming on heterogenous mobile architectures (CPUs, GPUs, DSPs, tensor accelerators, System-on-a-Chip, embedded systems etc.) Outstanding problem-solving skills Excellent communication and team working skills Preferred candidate profile Masters degree in electrical engineering, Computer Science, or related field. 2 to 10 years of Software Engineering or related work experience. Experience with Augmented/Virtual Reality and general computer vision enabling technologies and devices Proven experience in conducting architectural trade-offs, power/performance analysis and/or SW-HW trade-offs Extensive knowledge of graphics pipeline, computer vision pipelines, machine learning methods and/or camera pipelines Experience with embedded platforms such as Android, Linux Experience with Python programming Good knowledge of graphics pipeline, computer vision pipelines, machine learning methods and/or camera pipelines",
  "descriptionHtml": "<p><strong>Role & responsibilities</strong> </p><p> </p><ul><li>Work closely with a cross functional team to understand AR/VR use case requirements, dataflows, and HW/SW partitioning</li><li>Work closely with technology, hardware, and software experts to translate use-case requirements into implementation specifications and contributing to SW Design</li><li>Leverage expert software knowledge and experience to implement and oversee the design, development, creation, modification, and validation of embedded and cloud edge software, applications, and/or specialized utility programs.</li><li>Oversee the resolution of design, coding, and other technical issues by presenting end-to-end solutions.</li><li>Oversee code reviews, regression tests, and the triage of issues to ensure the quality of code.</li><li>Deploy state-of-the-art computer vision algorithms and features into commercial XR products</li><li>Develop production code and system architectures with excellent design quality</li><li>Expertise with modern C++ (11-20), and with writing reliable, maintainable, and idiomatic code</li><li>Experience with multi-core programming on heterogenous mobile architectures (CPUs, GPUs, DSPs, tensor accelerators, System-on-a-Chip, embedded systems etc.)</li><li>Outstanding problem-solving skills</li><li>Excellent communication and team working skills</li></ul><br /><p><strong>Preferred candidate profile</strong> </p><p> </p><ul><li>Masters degree in electrical engineering, Computer Science, or related field. </li><li>2 to 10 years of Software Engineering or related work experience. </li><li>Experience with Augmented/Virtual Reality and general computer vision enabling technologies and devices</li><li>Proven experience in conducting architectural trade-offs, power/performance analysis and/or SW-HW trade-offs</li><li>Extensive knowledge of graphics pipeline, computer vision pipelines, machine learning methods and/or camera pipelines</li><li>Experience with embedded platforms such as Android, Linux</li><li>Experience with Python programming</li><li>Good knowledge of graphics pipeline, computer vision pipelines, machine learning methods and/or camera pipelines</li></ul><br /><br /><br /><br />",
  "shortDescription": "Masters in EE/CS with 2-10 years in Software Engineering, expertise in modern C++ and AR/VR computer vision technologies|Design and develop embedded and cloud edge software, oversee code quality, deploy computer vision algorithms in XR products",
  "jobType": "fulltime",
  "employmentType": "Full Time, Permanent",
  "workFromHomeType": "0",
  "roleCategory": "Software Development",
  "jobRole": "Software Development - Other",
  "functionalArea": "Engineering - Software & QA",
  "industry": "Telecom / ISP",
  "education": {
    "ug": [],
    "pg": [
      "M.Tech in Electronics/Telecommunication, Artificial Intelligence and Machine Learning, Computers"
    ],
    "ppg": []
  },
  "vacancy": 1,
  "applyCount": 1253,
  "viewCount": 2197,
  "postedDate": "2026-10-26T06:26:03+00:00",
  "jobUrl": "https://www.naukri.com/job-listings-software-engineer-qualcomm-bengaluru-0-to-1-years-261026005898",
  "applyUrl": null,
  "searchKeyword": "software engineer",
  "searchLocation": "Bengaluru",
  "searchPage": 1,
  "detailStatus": "complete",
  "scrapedAt": "2026-10-26T11:30:56.371685+00:00"
}
```

### Pricing

This Actor uses pay-per-event pricing. One `job-result` event is charged for each unique job written to the Dataset. Duplicate jobs, empty searches, failed requests that produce no job, and listing-only diagnostics are not charged. There is no Actor-start fee. Apify applies the price for your plan automatically:

| Apify tier | Price per delivered job | Equivalent per 1,000 jobs |
| --- | ---: | ---: |
| Free | $0.001 | $1.00 |
| Bronze | $0.0009 | $0.90 |
| Silver | $0.0008 | $0.80 |
| Gold | $0.00075 | $0.75 |
| Platinum | $0.00075 | $0.75 |
| Diamond | $0.00075 | $0.75 |

Check the Actor's **Pricing** tab before starting a paid run.

### Related Actors

| Actor | Best for |
|---|---|
| [Bayt Jobs Scraper | Full Details & Skills](https://apify.com/datascraperes/bayt-jobs-data-scraper) | Adding Middle East job listings with descriptions, skills, dates, and application links. |
| [Indeed Jobs Scraper | Worldwide Job Data](https://apify.com/datascraperes/indeed-jobs-scraper) | Comparing India results with worldwide Indeed searches. |
| [LinkedIn Jobs Scraper – No Login](https://apify.com/datascraperes/linkedin-jobs-scraper) | Adding public professional-network jobs with workplace and seniority filters. |
| [Glassdoor Jobs Scraper | Global Job Listings](https://apify.com/datascraperes/glassdoor-jobs-scraper) | Enriching employer research with public salary and company-review data. |

### Limits and data quality

- `maxJobs` is a ceiling, not a guarantee. Public availability, deduplication, and source pagination can return fewer rows.
- Full details require one source request per job. Large runs take longer and may meet temporary source restrictions.
- Temporary source unavailability can leave a partial collection. Confirmed jobs remain available, and the run summary identifies work that could not be completed.
- `detailStatus` and `SUMMARY` make partial enrichment visible. Saved rows remain available when a later detail or company request fails.
- Exceptionally large optional descriptions may be omitted to keep the base job record usable. Such rows are marked incomplete rather than presented as fully enriched.
- Naukri search results change over time. The exact IDs and available count can differ between runs.
- Salary, education, application URL, company rating, and industry are optional and remain `null` when the source does not publish them.
- The Actor does not access saved jobs, applications, recruiter inboxes, personalized recommendations, or any account-only data.
- This is an independent tool and is not affiliated with or endorsed by Naukri or Info Edge.

### Frequently asked questions

#### Can I search more than one keyword or city?

Yes. Add up to 25 entries to `searches`. Jobs returned by more than one search are delivered once, and the row records the search that first found it.

#### What happens if I misspell a keyword or location?

The source may recognize familiar spelling variants and city aliases. The Actor does not invent corrections. Searches with no matches return no jobs. If the source substitutes a broader search, those results are skipped; check your keyword and location. Other valid searches can still produce results. Leave the location blank only when you want jobs across India.

#### How many jobs can one run return?

The global `maxJobs` cap is 1,000. The source supports up to 100 jobs per page; the Actor pages until the cap or the available results end.

#### Why are some rows missing descriptions or company ratings?

Full detail and company enrichment are best effort. Check `detailStatus`; `batch_only` means the listing was enriched but the full detail request was unavailable. A null company rating means the public company profile did not publish one.

#### Do I need a Naukri account, cookie, or browser?

No. Only publicly available job information is collected.

#### Can I run listing-only for speed?

Yes. Set `includeDetails` to `false` and optionally `includeCompanyDetails` to `false`. You will receive search-level fields such as title, company, location, experience, salary label, and skills without full descriptions.

### Responsible use

Use this Actor only for lawful collection and processing of public job information. Follow applicable laws, privacy rules, and Naukri's terms. Do not use the data for spam, harassment, discrimination, or unlawful automated decisions. You are responsible for how the exported data is used and retained.

### Support

If a run fails or returns unexpected data, open an issue from the Actor's **Issues** tab with the run URL, non-sensitive input, and expected behavior. Never include API tokens or other secrets.

[Python, JavaScript and cURL examples on GitHub](https://github.com/datacrawler-edu/naukri-jobs-scraper-python).

# Actor input Schema

## `searches` (type: `array`):

Define one or more keyword and location searches. The Actor pages the public Naukri search API and deduplicates jobs across searches.

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

Global cap across all searches. Jobs are deduplicated by Naukri job ID before delivery.

## `sort` (type: `string`):

Relevance follows Naukri's default ranking. Date prioritizes the newest public postings.

## `includeDetails` (type: `boolean`):

Batch-fetch full descriptions, skills, education, salary details, role taxonomy, and application data for the collected job IDs.

## `includeCompanyDetails` (type: `boolean`):

Enrich jobs with public company name, logo, rating, review count, tags, industry, and company profile URL.

## Actor input object example

```json
{
  "searches": [
    {
      "keyword": "software engineer",
      "location": "Bengaluru"
    }
  ],
  "maxJobs": 5,
  "sort": "relevance",
  "includeDetails": true,
  "includeCompanyDetails": true
}
```

# Actor output Schema

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

One row per unique public Naukri job, including batch-enriched details and company profile fields.

## `summary` (type: `string`):

Run status, search counts, request count, delivery count, and source coverage.

# 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 = {
    "searches": [
        {
            "keyword": "software engineer",
            "location": "Bengaluru"
        }
    ],
    "maxJobs": 5,
    "sort": "relevance",
    "includeDetails": true,
    "includeCompanyDetails": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("datascraperes/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 = {
    "searches": [{
            "keyword": "software engineer",
            "location": "Bengaluru",
        }],
    "maxJobs": 5,
    "sort": "relevance",
    "includeDetails": True,
    "includeCompanyDetails": True,
}

# Run the Actor and wait for it to finish
run = client.actor("datascraperes/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 '{
  "searches": [
    {
      "keyword": "software engineer",
      "location": "Bengaluru"
    }
  ],
  "maxJobs": 5,
  "sort": "relevance",
  "includeDetails": true,
  "includeCompanyDetails": true
}' |
apify call datascraperes/naukri-jobs-scraper --silent --output-dataset

```

## MCP server setup

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