Naukri.com Job Listings Extractor with Salary & Skills
Pull job listings from Naukri.com by search URL or by keyword, location, experience, salary, job age and work-mode filters, with company rating, skills and recruiter detail per posting.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
searches | array | optional | One or more search configurations. Each entry can hold several keywords and several locations; every keyword is combined with every location. Leave keywords empty to browse a location or company. |
jobIds | array | optional | Fetch these Naukri job IDs directly. Accepts bare IDs or Naukri job URLs. Job IDs are processed before searches. |
companyIds | array | optional | Naukri company IDs to search across. When searches are also supplied, each company is combined with every search. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
searches | array | optional | One or more search configurations. Each entry can hold several keywords and several locations; every keyword is combined with every location. Leave keywords empty to browse a location or company. |
jobIds | array | optional | Fetch these Naukri job IDs directly. Accepts bare IDs or Naukri job URLs. Job IDs are processed before searches. |
companyIds | array | optional | Naukri company IDs to search across. When searches are also supplied, each company is combined with every search. |
maxItems | integer | optional | Total records to return across all queries. Naukri allows at most 3,000 jobs per query (150 pages of 20). |
onlyNew | boolean | optional | Emit only jobs that were not emitted by an earlier run with the same state key. |
resetState | boolean | optional | Clear the saved job IDs before this run. |
stateKey | string | optional | Optional name for the incremental state. Defaults to a hash of the search configuration. |
includeDescription | boolean | optional | Include the full job description text. Turn off to keep records smaller. |
includeDescriptionHtml | boolean | optional | Include the raw HTML job description in addition to plain text. |
includeCompanyReviews | boolean | optional | Include up to three AmbitionBox review snippets per job. Off by default to keep records small. |
strictJobAge | boolean | optional | Drop promoted jobs older than the selected job age using Naukri's posting date. |
timeBudgetSecs | integer | optional | Stop gracefully after this many seconds. 0 means no time limit. |
failOnEmpty | boolean | optional | Mark the run as failed when no jobs are returned. |
browserFallback | boolean | optional | If the normal connection is blocked, retry through a browser session. Slower and uses more memory; leave off unless needed. |
proxyConfiguration | object | optional | Optional connection override. By default the actor uses an India-based Apify connection automatically. |
Download the published input schema
View complete JSON
{
"description": "Find Naukri.com jobs by keyword, location, company or job ID and return full job details, salary information, skills and company profiles.",
"properties": {
"browserFallback": {
"default": false,
"description": "If the normal connection is blocked, retry through a browser session. Slower and uses more memory; leave off unless needed.",
"prefill": false,
"title": "Browser Fallback",
"type": "boolean"
},
"companyIds": {
"default": [],
"description": "Naukri company IDs to search across. When searches are also supplied, each company is combined with every search.",
"editor": "stringList",
"prefill": [],
"title": "Company IDs",
"type": "array"
},
"failOnEmpty": {
"default": false,
"description": "Mark the run as failed when no jobs are returned.",
"prefill": false,
"title": "Fail When No Jobs Found",
"type": "boolean"
},
"includeCompanyReviews": {
"default": false,
"description": "Include up to three AmbitionBox review snippets per job. Off by default to keep records small.",
"prefill": false,
"title": "Include Company Reviews",
"type": "boolean"
},
"includeDescription": {
"default": true,
"description": "Include the full job description text. Turn off to keep records smaller.",
"prefill": true,
"title": "Include Full Description",
"type": "boolean"
},
"includeDescriptionHtml": {
"default": false,
"description": "Include the raw HTML job description in addition to plain text.",
"prefill": false,
"title": "Include Description HTML",
"type": "boolean"
},
"jobIds": {
"default": [],
"description": "Fetch these Naukri job IDs directly. Accepts bare IDs or Naukri job URLs. Job IDs are processed before searches.",
"editor": "stringList",
"prefill": [
"221026015762"
],
"title": "Job IDs",
"type": "array"
},
"maxItems": {
"default": 100,
"description": "Total records to return across all queries. Naukri allows at most 3,000 jobs per query (150 pages of 20).",
"editor": "number",
"maximum": 10000,
"minimum": 1,
"prefill": 3,
"title": "Max Items",
"type": "integer"
},
"onlyNew": {
"default": false,
"description": "Emit only jobs that were not emitted by an earlier run with the same state key.",
"prefill": false,
"title": "Only New Jobs",
"type": "boolean"
},
"proxyConfiguration": {
"default": {
"apifyProxyCountry": "IN",
"useApifyProxy": true
},
"description": "Optional connection override. By default the actor uses an India-based Apify connection automatically.",
"editor": "proxy",
"prefill": {
"apifyProxyCountry": "IN",
"useApifyProxy": true
},
"title": "Proxy Configuration",
"type": "object"
},
"resetState": {
"default": false,
"description": "Clear the saved job IDs before this run.",
"prefill": false,
"title": "Reset Incremental State",
"type": "boolean"
},
"searches": {
"default": [],
"description": "One or more search configurations. Each entry can hold several keywords and several locations; every keyword is combined with every location. Leave keywords empty to browse a location or company.",
"editor": "json",
"items": {
"properties": {
"companyId": {
"description": "Optional Naukri company ID (numeric, e.g. \"10111\"). Free-text company names are not supported by Naukri.",
"editor": "textfield",
"nullable": true,
"title": "Company ID",
"type": "string"
},
"experienceYears": {
"description": "Return jobs whose experience range includes this many years (0-30).",
"maximum": 30,
"minimum": 0,
"nullable": true,
"title": "Experience (years)",
"type": "integer"
},
"internship": {
"default": false,
"description": "Return internships.",
"prefill": false,
"title": "Internships Only",
"type": "boolean"
},
"jobAge": {
"description": "Only jobs posted within the last N days. Promoted jobs can bypass the server filter; strictJobAge removes them.",
"editor": "select",
"enum": [
"1",
"3",
"7",
"15",
"30"
],
"enumTitles": [
"Last 1 day",
"Last 3 days",
"Last 7 days",
"Last 15 days",
"Last 30 days"
],
"nullable": true,
"title": "Job Age",
"type": "string"
},
"keywords": {
"default": [],
"description": "Job titles or search terms (e.g. \"software engineer\", \"data scientist\").",
"editor": "stringList",
"title": "Keywords",
"type": "array"
},
"locations": {
"default": [],
"description": "Indian cities or regions (e.g. \"bangalore\", \"mumbai\", \"delhi ncr\", \"hyderabad\").",
"editor": "stringList",
"title": "Locations",
"type": "array"
},
"salaryBucket": {
"description": "Annual salary band in Indian lakhs. Naukri can include jobs with hidden salary in a band; use salaryDisclosed to separate them.",
"editor": "select",
"enum": [
"0-3",
"3-6",
"6-10",
"10-15",
"15-25",
"25+"
],
"enumTitles": [
"0 - 3 Lakhs",
"3 - 6 Lakhs",
"6 - 10 Lakhs",
"10 - 15 Lakhs",
"15 - 25 Lakhs",
"25+ Lakhs"
],
"nullable": true,
"title": "Salary Bucket",
"type": "string"
},
"sort": {
"default": "relevance",
"description": "Result ordering.",
"editor": "select",
"enum": [
"relevance",
"date",
"salary"
],
"enumTitles": [
"Relevance",
"Date (newest first)",
"Salary (highest first)"
],
"title": "Sort By",
"type": "string"
},
"walkIn": {
"default": false,
"description": "Return walk-in interview jobs.",
"prefill": false,
"title": "Walk-in Jobs Only",
"type": "boolean"
},
"workMode": {
"default": "any",
"description": "Remote or hybrid filter. Naukri does not expose an office-only filter; \"any\" returns every mode.",
"editor": "select",
"enum": [
"any",
"remote",
"hybrid"
],
"enumTitles": [
"Any",
"Remote",
"Hybrid"
],
"title": "Work Mode",
"type": "string"
}
},
"type": "object"
},
"prefill": [
{
"keywords": [
"software engineer"
],
"locations": [
"bangalore"
]
}
],
"title": "Search Queries",
"type": "array"
},
"stateKey": {
"description": "Optional name for the incremental state. Defaults to a hash of the search configuration.",
"editor": "textfield",
"nullable": true,
"title": "Incremental State Key",
"type": "string"
},
"strictJobAge": {
"default": true,
"description": "Drop promoted jobs older than the selected job age using Naukri's posting date.",
"prefill": true,
"title": "Strict Job Age",
"type": "boolean"
},
"timeBudgetSecs": {
"default": 0,
"description": "Stop gracefully after this many seconds. 0 means no time limit.",
"editor": "number",
"maximum": 7200,
"minimum": 0,
"prefill": 0,
"title": "Time Budget (seconds)",
"type": "integer"
}
},
"required": [],
"schemaVersion": 1,
"title": "Naukri Job Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
jobs | string | optional | Dataset of scraped Naukri job listings. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Naukri.com job listings with full descriptions, parsed salary and experience, skills, locations, work mode, education, role taxonomy and company profiles.",
"properties": {
"jobs": {
"description": "Dataset of scraped Naukri job listings.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Naukri Jobs",
"type": "string"
}
},
"title": "Naukri.com Job Listings Extractor with Salary & Skills Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"fields": {
"properties": {
"applyCount": {
"description": "Applicant count; omitted when 0",
"nullable": true,
"type": "integer"
},
"applyRedirectUrl": {
"description": "External apply URL when Naukri exposes one; may be ad-wrapped",
"nullable": true,
"type": "string"
},
"applyUrl": {
"description": "Best available apply link: company gateway, external redirect, or Naukri listing",
"nullable": true,
"type": "string"
},
"companyAddress": {
"description": "Company address",
"nullable": true,
"type": "string"
},
"companyApplyUrl": {
"description": "Naukri company-apply gateway URL when present",
"nullable": true,
"type": "string"
},
"companyDescription": {
"description": "Company profile description as plain text",
"nullable": true,
"type": "string"
},
"companyId": {
"description": "Naukri company ID",
"nullable": true,
"type": "string"
},
"companyLogoUrl": {
"description": "Company logo URL",
"nullable": true,
"type": "string"
},
"companyName": {
"description": "Hiring company name",
"type": "string"
},
"companyProfileUrl": {
"description": "Naukri company profile URL",
"nullable": true,
"type": "string"
},
"companyRating": {
"description": "AmbitionBox aggregate rating out of 5",
"nullable": true,
"type": "number"
},
"companyReviewCount": {
"description": "Number of AmbitionBox reviews",
"nullable": true,
"type": "integer"
},
"companyReviews": {
"description": "Up to three AmbitionBox review snippets when includeCompanyReviews is on",
"items": {
"properties": {
"author": {
"nullable": true,
"type": "string"
},
"date": {
"nullable": true,
"type": "string"
},
"dislikes": {
"nullable": true,
"type": "string"
},
"likes": {
"nullable": true,
"type": "string"
},
"rating": {
"nullable": true,
"type": "number"
},
"title": {
"nullable": true,
"type": "string"
},
"url": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"nullable": true,
"type": "array"
},
"companyWebsite": {
"description": "Company website when Naukri publishes one (sparse)",
"nullable": true,
"type": "string"
},
"description": {
"description": "Full job description as plain text (includeDescription)",
"nullable": true,
"type": "string"
},
"descriptionHtml": {
"description": "Raw HTML description (includeDescriptionHtml)",
"nullable": true,
"type": "string"
},
"educationPG": {
"description": "Postgraduate education requirements",
"items": {
"type": "string"
},
"type": "array"
},
"educationPPG": {
"description": "Post-postgraduate education requirements",
"items": {
"type": "string"
},
"type": "array"
},
"educationUG": {
"description": "Undergraduate education requirements",
"items": {
"type": "string"
},
"type": "array"
},
"employmentType": {
"description": "Employment type, e.g. Full Time, Permanent",
"nullable": true,
"type": "string"
},
"experience": {
"description": "Raw experience range, e.g. 5-7 Yrs",
"nullable": true,
"type": "string"
},
"experienceMaxYears": {
"description": "Parsed maximum years",
"nullable": true,
"type": "integer"
},
"experienceMinYears": {
"description": "Parsed minimum years",
"nullable": true,
"type": "integer"
},
"functionalArea": {
"description": "Functional area",
"nullable": true,
"type": "string"
},
"id": {
"description": "Naukri job ID",
"type": "string"
},
"industry": {
"description": "Industry",
"nullable": true,
"type": "string"
},
"jobType": {
"description": "Naukri job type, e.g. fulltime or internship",
"nullable": true,
"type": "string"
},
"jobTypeFlags": {
"description": "Badges such as premium, easy_apply and walk_in (legacy field)",
"items": {
"type": "string"
},
"type": "array"
},
"location": {
"description": "Job locations joined as one string (legacy field)",
"nullable": true,
"type": "string"
},
"locations": {
"description": "Structured job locations",
"items": {
"type": "string"
},
"type": "array"
},
"logoUrl": {
"description": "Company logo URL (legacy field, same as companyLogoUrl)",
"nullable": true,
"type": "string"
},
"postedAt": {
"description": "Posting time in ISO 8601 with +05:30 offset",
"nullable": true,
"type": "string"
},
"postedDate": {
"description": "Relative posting label from search, e.g. 2 Days Ago",
"nullable": true,
"type": "string"
},
"role": {
"description": "Job role",
"nullable": true,
"type": "string"
},
"roleCategory": {
"description": "Role category",
"nullable": true,
"type": "string"
},
"salary": {
"description": "Raw salary string as displayed, including Not Disclosed",
"type": "string"
},
"salaryCurrency": {
"description": "ISO currency code, normally INR",
"type": "string"
},
"salaryDisclosed": {
"description": "False when Naukri hides the salary",
"type": "boolean"
},
"salaryMax": {
"description": "Parsed maximum salary in INR for salaryPeriod; omitted when not disclosed",
"nullable": true,
"type": "number"
},
"salaryMin": {
"description": "Parsed minimum salary in INR for salaryPeriod; omitted when not disclosed",
"nullable": true,
"type": "number"
},
"salaryPeriod": {
"description": "Salary period; month for internship stipends",
"enum": [
"year",
"month"
],
"nullable": true,
"type": "string"
},
"salaryVariablePct": {
"description": "Variable pay percentage when supplied by Naukri",
"nullable": true,
"type": "number"
},
"scrapedAt": {
"description": "UTC timestamp when the record was scraped",
"type": "string"
},
"skills": {
"description": "Skill tags, preferred skills first",
"items": {
"type": "string"
},
"type": "array"
},
"skillsOther": {
"description": "Other skill tags",
"items": {
"type": "string"
},
"type": "array"
},
"skillsPreferred": {
"description": "Preferred skill tags",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "Job title",
"type": "string"
},
"url": {
"description": "Naukri job listing URL",
"type": "string"
},
"vacancies": {
"description": "Openings; omitted when Naukri reports 0",
"nullable": true,
"type": "integer"
},
"viewCount": {
"description": "View count; omitted when 0",
"nullable": true,
"type": "integer"
},
"walkIn": {
"description": "Walk-in interview flag",
"type": "boolean"
},
"walkInDetails": {
"description": "Walk-in venue, dates, timing and contact when Naukri publishes them",
"nullable": true,
"properties": {
"contactName": {
"nullable": true,
"type": "string"
},
"contactPhone": {
"nullable": true,
"type": "string"
},
"dailyTiming": {
"nullable": true,
"type": "string"
},
"embedMapUrl": {
"nullable": true,
"type": "string"
},
"endDate": {
"nullable": true,
"type": "string"
},
"mapUrl": {
"nullable": true,
"type": "string"
},
"saturdayWorking": {
"nullable": true,
"type": "boolean"
},
"startDate": {
"nullable": true,
"type": "string"
},
"sundayWorking": {
"nullable": true,
"type": "boolean"
},
"venueAddress": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"workMode": {
"description": "Work mode derived from Naukri's wfhType",
"enum": [
"office",
"remote",
"hybrid"
],
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"title": "Naukri Jobs",
"views": {
"detailed": {
"display": {
"component": "table",
"properties": {
"companyName": {
"format": "text",
"label": "Company"
},
"companyRating": {
"format": "number",
"label": "Rating"
},
"companyReviewCount": {
"format": "number",
"label": "Reviews"
},
"description": {
"format": "text",
"label": "Description"
},
"employmentType": {
"format": "text",
"label": "Employment Type"
},
"experience": {
"format": "text",
"label": "Experience"
},
"industry": {
"format": "text",
"label": "Industry"
},
"location": {
"format": "text",
"label": "Location"
},
"postedDate": {
"format": "text",
"label": "Posted"
},
"role": {
"format": "text",
"label": "Role"
},
"salary": {
"format": "text",
"label": "Salary"
},
"salaryDisclosed": {
"format": "text",
"label": "Salary Disclosed"
},
"skills": {
"format": "array",
"label": "Skills"
},
"title": {
"format": "text",
"label": "Title"
},
"url": {
"format": "link",
"label": "Listing"
},
"workMode": {
"format": "text",
"label": "Work Mode"
}
}
},
"title": "Detailed",
"transformation": {
"fields": [
"title",
"companyName",
"companyRating",
"companyReviewCount",
"location",
"experience",
"salary",
"salaryDisclosed",
"workMode",
"employmentType",
"skills",
"industry",
"role",
"postedDate",
"description",
"url"
]
}
},
"overview": {
"display": {
"component": "table",
"properties": {
"companyName": {
"format": "text",
"label": "Company"
},
"experience": {
"format": "text",
"label": "Experience"
},
"location": {
"format": "text",
"label": "Location"
},
"postedDate": {
"format": "text",
"label": "Posted"
},
"salary": {
"format": "text",
"label": "Salary"
},
"title": {
"format": "text",
"label": "Title"
},
"url": {
"format": "link",
"label": "Listing"
},
"workMode": {
"format": "text",
"label": "Work Mode"
}
}
},
"title": "Overview",
"transformation": {
"fields": [
"title",
"companyName",
"location",
"experience",
"salary",
"workMode",
"postedDate",
"url"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Naukri.com Job Listings Extractor with Salary & Skills
Extract Naukri.com job listings as structured data. Search by keyword and Indian city, pull jobs by ID, or monitor a company — then get the full job description, raw and parsed salary, experience bounds, skills, work mode, education requirements, role taxonomy, company ratings and walk-in details. No Naukri login, cookies or API key required.
What this actor does
- Three ways to find jobs: keyword and city searches, direct job IDs, or company IDs.
- Up to 10,000 records per run, with a 3,000-job ceiling per individual query (Naukri returns 20 jobs per page and allows 150 pages).
- Full detail per job: not just the search card — the actor fetches each posting to return the complete description, salary fields, education, role taxonomy, company profile and walk-in information.
- Filters: experience in years, salary band, remote or hybrid mode, job age, date or salary sort, internships and walk-in drives.
- Incremental runs:
onlyNewstores emitted job IDs in actor state, so scheduled runs can return only postings you have not seen before. - Honest salary data: every record carries the raw salary string and a
salaryDisclosedflag. NumericsalaryMinandsalaryMaxappear only when Naukri discloses a figure. - Empty fields are omitted — records never contain
null, blank strings or empty arrays.
Output per job
| Field | Description |
|---|---|
id |
Naukri job ID. |
title |
Job title as posted. |
url |
Naukri job listing URL. |
companyName |
Hiring company name. |
companyId |
Naukri company ID. |
companyLogoUrl |
Company logo image URL. |
logoUrl |
Company logo URL (legacy field, same value as companyLogoUrl). |
companyProfileUrl |
Naukri company profile URL. |
companyWebsite |
Company website when Naukri publishes one (sparse). |
companyDescription |
Company profile description as plain text. |
companyAddress |
Company address. |
companyRating |
AmbitionBox rating out of 5. |
companyReviewCount |
Number of AmbitionBox reviews behind the rating. |
companyReviews |
Up to three review snippets when includeCompanyReviews is on. |
companyApplyUrl |
Naukri company-apply gateway URL when present. |
applyRedirectUrl |
External apply URL when Naukri exposes one; may be ad-wrapped. |
applyUrl |
Best available apply link: company gateway, external redirect, or the Naukri listing. |
salary |
Raw salary string exactly as displayed, including Not Disclosed. |
salaryMin |
Parsed minimum salary in INR for salaryPeriod; omitted when not disclosed. |
salaryMax |
Parsed maximum salary in INR for salaryPeriod; omitted when not disclosed. |
salaryCurrency |
ISO currency code, normally INR. |
salaryPeriod |
year or month; internship stipends are reported per month. |
salaryDisclosed |
false when Naukri hides the salary. |
salaryVariablePct |
Variable pay percentage when Naukri supplies one. |
experience |
Raw experience range, e.g. 5-7 Yrs. |
experienceMinYears |
Parsed minimum years. |
experienceMaxYears |
Parsed maximum years. |
skills |
Skill tags, preferred skills first. |
skillsPreferred |
Preferred skill tags. |
skillsOther |
Other skill tags. |
description |
Full job description as plain text (includeDescription). |
descriptionHtml |
Raw HTML description (includeDescriptionHtml). |
locations |
Structured list of job locations. |
location |
Job locations joined into one string (legacy field). |
workMode |
office, remote or hybrid. |
employmentType |
Employment type, e.g. Full Time, Permanent. |
jobType |
Naukri job type, e.g. fulltime or internship. |
educationUG |
Undergraduate education requirements. |
educationPG |
Postgraduate education requirements. |
educationPPG |
Post-postgraduate education requirements. |
industry |
Industry. |
functionalArea |
Functional area. |
roleCategory |
Role category. |
role |
Job role. |
postedAt |
Posting time in ISO 8601 with a +05:30 offset. |
postedDate |
Relative posting label from search, e.g. 2 Days Ago. |
vacancies |
Number of openings; omitted when Naukri reports 0. |
applyCount |
Applicant count; omitted when 0. |
viewCount |
View count; omitted when 0. |
walkIn |
Walk-in interview flag. |
walkInDetails |
Venue and contact block when Naukri publishes it. Contains venueAddress, startDate, endDate, dailyTiming, contactName, contactPhone, mapUrl, embedMapUrl, saturdayWorking and sundayWorking. |
jobTypeFlags |
Badges such as premium, easy_apply and walk_in (legacy field). |
scrapedAt |
UTC timestamp when the record was scraped. |
Input
| Field | Type | Default | Description |
|---|---|---|---|
searches |
array | one keyword search | Search configurations. Each entry has keywords[], locations[], experienceYears, salaryBucket, workMode, jobAge, sort, companyId, internship and walkIn. Every keyword is combined with every location. |
jobIds |
array | one example ID | Naukri job IDs or job URLs to fetch directly. Processed before searches. |
companyIds |
array | [] |
Naukri company IDs. When searches are also supplied, each company is combined with every search. |
maxItems |
integer | 100 |
Total records to return, 1–10,000. |
onlyNew |
boolean | false |
Emit only jobs not emitted by an earlier run with the same state key. |
resetState |
boolean | false |
Clear saved incremental state before this run. |
stateKey |
string | auto | Optional state name. Defaults to a hash of the search configuration. |
includeDescription |
boolean | true |
Include the full job description text. |
includeDescriptionHtml |
boolean | false |
Include the raw HTML description too. |
includeCompanyReviews |
boolean | false |
Include up to three AmbitionBox review snippets. |
strictJobAge |
boolean | true |
Drop promoted jobs older than the selected job age. |
timeBudgetSecs |
integer | 0 |
Stop gracefully after this many seconds; 0 means no limit. |
failOnEmpty |
boolean | false |
Mark the run as failed when no jobs are returned. |
browserFallback |
boolean | false |
Retry through a browser session if the normal connection is blocked. Slower and uses more memory. |
proxyConfiguration |
object | India Apify proxy | Optional connection override. The actor selects an India-based connection automatically. |
Salary bands are 0-3, 3-6, 6-10, 10-15, 15-25 and 25+ lakhs per year. Job-age values are 1, 3, 7, 15 and 30 days. Work modes are any, remote and hybrid; Naukri does not expose an office-only filter.
Example: software engineer jobs in Bangalore
{
"searches": [
{
"keywords": ["software engineer"],
"locations": ["bangalore"],
"experienceYears": 3,
"jobAge": "7",
"sort": "date"
}
],
"maxItems": 100
}
Example: fetch specific jobs
{
"jobIds": ["221026015762", "191026012479"],
"includeDescription": true,
"maxItems": 2
}
Example: monitor a company for new postings
{
"companyIds": ["10111"],
"searches": [
{
"keywords": ["python developer"],
"locations": ["hyderabad", "pune"],
"sort": "date"
}
],
"onlyNew": true,
"stateKey": "infosys-python",
"maxItems": 200
}
Example: remote internships and walk-in drives
{
"searches": [
{
"keywords": ["machine learning intern"],
"workMode": "remote",
"internship": true
},
{
"locations": ["mumbai"],
"walkIn": true
}
],
"maxItems": 50
}
Use cases
- Recruitment agencies — build talent pipelines and track which employers are hiring for a role or city.
- Job seekers — schedule a daily monitor that returns only newly posted jobs matching a skill set.
- Compensation teams — collect salary bands and disclosure rates for a role across companies and cities.
- Market researchers — measure hiring volume by location, industry, role or work mode over time.
- Sales teams — detect companies ramping up hiring as a buying signal.
- Data teams — build an India job-market dataset with full descriptions, skills and company profiles.
FAQ
Do I need a Naukri account, cookies or an API key? No. The actor reads publicly available Naukri job data without a login.
Why is salaryMin missing for most jobs? Naukri hides salary on most postings. In a 24-job sample, only 16.7% disclosed a numeric range. Every record still includes the raw salary string and salaryDisclosed so you can separate disclosed jobs from hidden ones.
Why do some records lack description? description is on by default. If Naukri does not return a detail page for a posting, the record falls back to the shorter description from the search result rather than dropping the job.
How many jobs can one run return? maxItems supports up to 10,000. Each individual query is capped by Naukri at 3,000 jobs, so a single keyword-and-city combination tops out there. Add more keywords, cities or companies to reach higher totals.
Does the work-mode filter include office jobs? Naukri only exposes remote and hybrid filters. Use any to return every mode; the output workMode tells you which one each job has.
Can I filter full-time, part-time or contractual jobs? No. Naukri does not honour those filters reliably. The supported job-type filters are internships and walk-in drives. The output jobType and employmentType still describe each posting.
Are benefits, localities or recruiter details included? No. Naukri does not expose benefits, locality lists or recruiter names on these postings, so they are not fabricated or promised.
Why are companyRating and companyAddress missing on some jobs? These come from the employer's AmbitionBox profile and company page. Smaller or newer employers often do not have them.
Why is applyRedirectUrl missing on most records? Naukri only exposes an external apply link for some postings, and those links can be ad-wrapped. applyUrl always gives you a usable link: the company gateway or external redirect when present, otherwise the Naukri listing.
Can I get walk-in venue and contact details? Yes, when Naukri publishes them. They are returned in walkInDetails; not every walk-in posting includes a venue or phone number.
How fresh is the data? Every run queries Naukri live, so results reflect the listings available at run time.
Do I need to set up a proxy? No. The actor chooses a working connection to Naukri automatically.
Is this affiliated with Naukri.com? No. This is an independent third-party tool and is not affiliated with, endorsed by or sponsored by Naukri.com.
Limitations
- Salary is disclosed on a minority of postings. Numeric salary fields are therefore conditional, not guaranteed.
- Benefits, locality lists and recruiter names are not available from Naukri's public job data.
- External apply links are partial and can be ad-wrapped;
applyUrlalways provides a fallback. - Walk-in venue and contact details are present only when the employer publishes them.
- The actor covers Naukri's India job market. Gulf listings on other domains are out of scope.
- A single query returns at most 3,000 jobs (150 pages of 20). Split broad searches by city, keyword or company to collect more.
Notes on coverage
Naukri exposes different amounts of detail per posting. The actor returns what the public job record contains and omits fields that are not published; it does not infer salary, benefits, or recruiter details.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build jIK44RJNboEaGNtv6. Documentation is regenerated from the default published build; private drafts are not included.