Naukri Job Scraper (India) - Skills, Salary & Full Description avatar

Naukri Job Scraper (India) - Skills, Salary & Full Description

Pricing

$0.20 / 1,000 job adverts

Go to Apify Store
Naukri Job Scraper (India) - Skills, Salary & Full Description

Naukri Job Scraper (India) - Skills, Salary & Full Description

Pricing

$0.20 / 1,000 job adverts

Rating

0.0

(0)

Developer

Lantern Lab

Lantern Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Search Naukri.com by keyword, city and years of experience, and get the public job adverts back as clean rows - including the full advert description at no extra charge.

What you get

One row per job advert, with every field Naukri shows on its own search results page:

FieldWhat it is
jobIdNaukri's own advert id - stable, and what rows are deduplicated on
titleJob title as posted
companyName, companyIdThe hiring company and its Naukri id
experienceTextThe experience line Naukri prints, e.g. 2-5 Yrs
minExperienceYears, maxExperienceYearsThe same range as numbers
salaryTextThe salary line as shown, e.g. 3-5 Lacs PA or Not disclosed
salaryMin, salaryMax, salaryCurrency, salaryDisclosedThe figures when the advertiser published them, null when hidden
locations[]Every city on the advert, as a list
skills[]The full skill/tag list, as a list
postedAtWhen Naukri says it was posted (ISO 8601 UTC; publishedAt is the same instant)
postedAtDisplayThe relative phrase on the card, e.g. 1 Day Ago
snippetA short plain-text teaser from the advert body
description, descriptionTextThe complete advert body, HTML and plain text (when includeDescription is on)
urlThe public job page
companyRating, companyReviewsCount, vacanciesExtras Naukri prints on the card
collectedAtWhen this run read the advert, kept separate from postedAt

Not collected: recruiter names, private phone numbers and e-mail addresses. Only what is publicly visible on Naukri's own search page is read, and no login or account is used.

Price

Pay per job row. Status rows and empty results are free - you are charged only for job adverts you actually receive, and a job that matches several of your keywords is charged once. Turning on the full description costs nothing extra, because Naukri sends it with the search results.

Input

{
"keywords": ["python developer", "data analyst"],
"location": "Bengaluru",
"experienceYears": 3,
"maxJobs": 100,
"includeDescription": false
}
InputDefaultNotes
keywordsrequiredOne keyword per line; each is searched separately
locationall of IndiaA city as Naukri names it: Bengaluru, Mumbai, Delhi / NCR, Pune
experienceYearsanyWhole years, 0-30; keeps adverts whose range contains it
maxJobs100Rows per keyword. Naukri serves 20 per page, so this rounds up to whole pages
includeDescriptionfalseAdds the full advert body. No extra requests, just bigger rows
maxUpstreamRequestsderivedHard ceiling on requests, so a run is never unbounded
proxyConfigurationApify residential, IndiaNaukri refuses datacenter IPs - leave this as it is

Output

A job row (shortened, includeDescription off):

{
"recordType": "job",
"jobId": "240826031542",
"title": "Python developer",
"companyName": "Infosys",
"companyId": "410527",
"experienceText": "2-5 Yrs",
"minExperienceYears": 2,
"maxExperienceYears": 5,
"salaryText": "Not disclosed",
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": "INR",
"salaryDisclosed": false,
"locations": ["Hyderabad", "Pune", "Bengaluru"],
"skills": ["Django", "Python", "Flask", "Rest", "Pandas"],
"postedAt": "2026-10-23T05:20:17.860Z",
"publishedAt": "2026-10-23T05:20:17.860Z",
"postedAtDisplay": "1 Day Ago",
"snippet": "Roles & Responsibilities Design, develop, and maintain Python-based applications…",
"url": "https://www.naukri.com/job-listings-python-developer-infosys-240826031542",
"vacancies": 10,
"keyword": "python developer",
"searchLocation": "Bengaluru",
"rank": 1,
"partial": false,
"partialReason": null,
"collectedAt": "2026-10-25T04:12:09.113Z"
}

Besides job rows the dataset carries two kinds of row that are never charged:

  • one keyword_status row per keyword, with jobsReturned, jobsAvailable, duplicatesSkipped, partial, partialReason and a plain-English statusText;
  • one final RUN_SUMMARY row (also saved to the key-value store under RUN_SUMMARY) with the totals for the whole run.

An empty result is never confused with a failure

This is the point of the status rows. If Naukri genuinely has no job for a keyword, its status row says so with partial: false. If a keyword was cut short - the bot check refused us, a limit was reached, Naukri's own search service faulted - the row has partial: true and a partialReason (blocked, upstream_request_cap, charge_limit_reached, upstream_error, warmup_failed, not_collected). A blocked or truncated keyword is never reported as zero jobs.

Limits worth knowing

  • 20 jobs per page. Naukri ignores a larger page size, so maxJobs rounds up to whole pages.
  • 1000 jobs per keyword is the deepest this Actor pages one search. A keyword that reaches it sets resultDepthLimitReached and jobsAvailable tells you how many Naukri claimed; narrow the keyword, city or experience to go further.
  • Naukri is behind Akamai Bot Manager. The run opens a real browser once to pass the bot check, then sends ordinary requests. That one warm-up takes about 10 seconds; after it, paging is fast.
  • An Indian residential exit is required. Datacenter IPs are refused with HTTP 406. The default proxy setting already handles this.
  • Naukri's search is fuzzy. A very narrow keyword can be broadened by Naukri itself, so some rows may be looser matches than the keyword implies. keyword on every row records what was searched.
  • The default 1 GB of memory is what this Actor is measured at. The browser warm-up fits in it; raising it only makes a run cost more.
  • salaryText carries Naukri's own label, so an advert with no published salary reads Not disclosed - Naukri's search card simply prints nothing there. salaryDisclosed: false with salaryMin/salaryMax null is the machine-readable form of the same fact.
  • postedAt is the exact instant Naukri reports, and postedAtDisplay is Naukri's own relative label for it. Naukri caps that label at 30+ Days Ago, so a long-running or refreshed advert can carry a postedAt much older than the label suggests - trust postedAt.