Naukri Jobs History avatar

Naukri Jobs History

Pricing

from $2.00 / 1,000 job records

Go to Apify Store
Naukri Jobs History

Naukri Jobs History

Pricing

from $2.00 / 1,000 job records

Rating

0.0

(0)

Developer

Hyperbach

Hyperbach

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Naukri Jobs Scraper — India, with applicant counts

Naukri demand signals without a detailed-record surcharge. Full postings — salary, description, key skills and employment type — include apply_count, view_count and vacancy on the base record. The archive also retains when a posting disappears, so you can distinguish what is merely listed from what was filled or expired.

Why this feed, not another Naukri scraper

  • Demand signals on the base record. apply_count, view_count and vacancy come straight from Naukri and are included at the standard result price rather than gated behind a higher-priced detailed mode.
  • An exact posting timestamp on every record. posted_at is 100% populated and carries a real time of day, normalised to UTC from Naukri's IST. Sort by it, filter by it, or poll on it — no other feed here gives you a reliable clock.
  • Database speed, and unblockable. You read our archive, not naukri.com. Naukri fronts Akamai and answers recaptcha required on its own API — none of that is your problem here, and a run can never be rate-limited or blocked.
  • Incremental by design. Leave postedSince empty and each run returns only what appeared since the last one — the Actor tracks its own cursor, so you poll without re-pulling.
  • Refreshed every four hours. Postings are re-checked six times a day, so what you read is hours old, not days. status marks anything Naukri has since removed.
  • Full postings, not just listings. Salary band where the employer discloses one, the complete description, key skills, employment type, vacancy count, industry and role category — fetched from Naukri's own job API, not parsed off a page.

Who it's for

  • Labor-market researchers — demand per role, company and city — applicants and views per posting, with an exact posting timestamp to trend against.
  • Recruitment analytics & HR-tech — competition benchmarks per role and city: applicants per posting, vacancy counts, and which employers repost the same role.
  • Competitive & hiring intelligence — which companies are hiring in India, at what volume, in which cities, and how much candidate interest each opening attracts.
  • Job-board & aggregator builders — a typed, deduplicated Naukri mirror with a cursor for incremental pulls, so you never re-fetch or re-dedupe.

Quick start

Basic — newest postings

{
"maxItems": 10
}

Filtered

{
"keyword": "engineer",
"salaryMin": 120000,
"remoteOnly": true,
"maxItems": 50
}

Notification mode — only what appeared since the last run

{
"postedSince": ""
}

Output

One record per posting, live or dead:

fieldmeaning
job_idStable unique key for the posting, <source>:<id>. Deduplicate across runs and join to your own data on this.
urlCanonical posting URL.
titleJob title.
companyEmployer name as the board lists it.
company_domainThe employer's own web domain, resolved from the posting.
company_slugThe board's identifier for the employer.
company_logo_urlEmployer logo, when the board provides one.
location_restrictionWhere the posting says the role may be based.
employment_typeFull time, contract, and so on, as declared by the employer.
categoriesCategory tags the board assigned to the posting.
role_keysNaukri's own search groups that surfaced this posting; one job may belong to several roles.
job_roleNaukri's specific role label.
role_categoryNaukri's role-category facet, such as Engineering & Manufacturing.
functional_areaNaukri's functional-area facet.
industryNaukri's employer-industry facet.
work_modeNormalized board-declared work mode: Office, Remote, Hybrid, or Temporary WFH.
wfh_typeNaukri's underlying work-mode code (0 office, 1 temporary WFH, 2 remote, 3 hybrid).
wfh_labelNaukri's display label for non-office work modes.
locationsStructured Naukri locations with labels, URLs, and any localities.
educationStructured undergraduate, postgraduate, and doctorate requirements.
key_skillsStructured preferred and other skills, preserving Naukri labels and links.
minimum_experienceMinimum required experience in years.
maximum_experienceMaximum required experience in years.
company_detailStructured employer details including address, description, and website when supplied.
short_descriptionNaukri's compact summary of the role and requirements.
company_idNaukri's stable company identifier.
company_page_urlEmployer page on Naukri, when supplied.
static_company_nameNaukri's static employer display name.
job_typeNaukri's job-type value, such as fulltime.
walk_inWhether Naukri marks this as a walk-in role.
consultantWhether the posting is handled by a recruitment consultant.
descriptionFull posting description.
salary_minLower bound of the advertised band.
salary_maxUpper bound of the advertised band.
salary_currencyISO currency of the advertised band.
salary_unitPeriod the band refers to (e.g. YEAR, HOUR).
apply_countHow many candidates applied to this posting, as the board reports it.
view_countHow many times the posting was viewed on the board.
vacancyOpenings on this posting (not the number of postings).
posted_atWhen the posting first appeared.
first_posted_atThe date the posting FIRST existed, decoded from the job id. Naukri rewrites the posting date when an employer refreshes a listing, so this is the one date that cannot move — use it for true listing age.
first_seen_atWhen our archive first captured it.
statuslive while listed, gone once removed.
gone_reasonfilled if removed before its expiry date, expired if it ran to term.
gone_atThe date the posting was first observed gone. Null while it is live. Naukri overwrites its expired list nightly, so this is only knowable to whoever was watching that day.
apply_urlWhere to apply for the role.
enrichedWhether salary, employment type and employer domain have been resolved yet — a posting is returned as soon as it is found, enriched or not.

Example record:

{
"job_id": "naukri_jobs:030826016870",
"url": "https://www.naukri.com/job-listings-it-executive-hayat-placement-services-kanpur-4-to-6-years-030826016870",
"title": "It Executive",
"company": "Hayat Placement Services",
"company_domain": "hayatplacement.in",
"company_slug": null,
"company_logo_url": "https://img.naukimg.com/logo_images/groups/v1/11753383.gif",
"location_restriction": "Kanpur",
"employment_type": "Full Time, Permanent",
"categories": [
"Desktop Support",
"IT Support",
"System Support",
"IT Executive"
],
"role_keys": [
"operating-system-jobs"
],
"job_role": "Desktop Engineer",
"role_category": "IT Support",
"functional_area": "IT & Information Security",
"industry": "Textile & Apparel (Fashion)",
"work_mode": "Office",
"wfh_type": "0",
"wfh_label": null,
"locations": [
{
"url": "https://www.naukri.com/jobs-in-kanpur",
"label": "Kanpur",
"localities": []
}
],
"education": {
"pg": [],
"ug": [
"Any Graduate"
],
"ppg": [],
"label": "",
"isSchool": null,
"premiumProcessed": false,
"degreeCombination": "",
"eduPlaceholderText": ""
},
"key_skills": {
"other": [
{
"label": "IT Support",
"clickable": "it support"
},
{
"label": "System Support",
"clickable": "system support"
},
{
"label": "IT Executive",
"clickable": ""
}
],
"preferred": [
{
"label": "Desktop Support",
"clickable": "desktop support"
}
]
},
"minimum_experience": 4,
"maximum_experience": 6,
"company_detail": {
"name": "Hayat Placement Services",
"media": {
"ppt": [],
"video": [],
"photos": []
},
"address": "24/147 Kalpana Plaza, Birhana Road Kanpur, Near Kashi Jewellers, KANPUR, Uttar Pradesh - 208001,India Contact Number:9565352026/8090971123 Email-hayatplacementservices@gmail.com,,,",
"details": "Hayat Placement Services is supported by a dynamic rung of consultants. We introduce ourselves as an organization committed to establish and maintain new standards in Human Resource Consulting . In keeping with the current industry requirements....",
"hiringFor": "Hayat Placement Services",
"clientType": "",
"websiteUrl": "https://www.hayatplacement.in",
"hideClientName": false,
"isKycSuccessful": true
},
"short_description": "Experience managing LANs, WANs, VPNs and installing operating systems|Provide hardware and network support, configure and maintain IT systems, troubleshoot issues, suggest workflow improvements",
"company_id": "5107678",
"company_page_url": null,
"static_company_name": "hayat-placement-services-jobs-careers-5107678",
"job_type": "fulltime",
"walk_in": false,
"consultant": true,
"description": "Provide support to all departments in hardware and network related issues. Configure, install and maintain IT systems. Ensure confidential information.. Experience in managing LANs …(truncated for display)",
"salary_min": 250000.0,
"salary_max": 350000.0,
"salary_currency": "INR",
"salary_unit": "YEAR",
"apply_count": 0,
"view_count": 4,
"vacancy": 1,
"posted_at": "2026-08-03 11:22:49+00",
"first_posted_at": "2026-08-03",
"first_seen_at": "2026-08-03 11:42:41.138283+00",
"status": "live",
"gone_reason": null,
"gone_at": null,
"apply_url": null,
"enriched": true
}

Pricing

Pay per result, with no start fee — poll as often as you like, and a run that returns nothing costs nothing. Platform usage is included on every plan.

per 1,000 resultsFreeStarterScaleBusiness
Job record$5.00$4.00$3.00$2.00
Expired job record (surcharge)$50.00$25.00$15.00$8.00
Platform usageFreeFreeFreeFree

Job record covers every posting a run returns: the full posting — salary where the employer discloses a band, description, key skills, employment type — together with apply_count, view_count and vacancy. There is no separate detailed-record tier to pay for.

Expired job record is charged in addition to the job record, and only for a posting we watched go from live to removed. It carries gone_at and the complete record captured while the posting was still up. Naukri returns no body for an expired posting, so that detail cannot be fetched after the fact — it exists only if someone was already watching. A run that returns only live postings is never charged this.

You are reading our continuously tailed archive, not scraping naukri.com, so a run answers as a database query.

Usage patterns

  • Which roles are actually contested — Sort by apply_count to see what Indian candidates are chasing, or filter it low to find roles employers are struggling to fill. Combined with view_count you get an apply-through rate per posting — a signal no live scrape of the page can give you.
  • The live board, fully typed — Run with no filters (or just a keyword) and get current Naukri postings with salary, description, key skills, employment type and applicant counts as structured fields.
  • Competition per role — Sort by apply_count to see what Indian candidates are actually chasing, or filter it low to find roles employers are struggling to fill — a signal a live scrape cannot give you.
  • Incremental polling — Leave postedSince empty; each run returns only what appeared since your last one. The cursor is stored per-source, so a schedule never re-delivers the same page.

Input configuration

fieldtypedefaultwhat it does
keywordstringMatches Naukri's own role group when that role is tracked (for example, data scientist also includes related ML and analytics titles); otherwise falls back to title, skills and description text.
companystringEmployer name as the board lists it. Partial matches work.
companyDomainstringExact normalized employer domain, for example acme.com.
postedSincestringISO timestamp. Leave empty and the Actor remembers where it stopped, returning only new postings each run.
goneSincestringOnly postings observed dead at or after this ISO timestamp (e.g. 2026-07-01). This is the query no other Naukri actor can answer: Naukri overwrites its expired list daily, so a death is only knowable to whoever was watching that day.
statuslive / gone / anyDefaults to 'Gone' when Died since is set; otherwise defaults to currently listed. An explicit choice always wins.
locationstringSubstring match on the posting's location.
remoteOnlybooleanfalseOnly postings the employer marks as remote.
roleCategorystringExact Naukri role-category label, for example Data Science & Analytics.
functionalAreastringExact Naukri functional-area label.
industrystringExact Naukri industry label.
workModeOffice / Remote / Hybrid / Temporary WFHNaukri's declared work mode, not a guess from the description.
descriptionSearchstringSubstring match inside the job description.
excludeTitlestringDrop postings whose title contains this.
maxItemsinteger500Upper bound on results returned in a single run. The Actor paginates through the archive up to this value.
fullRefreshbooleanfalseBy default each run returns only what appeared since your last one, so a schedule never re-delivers the same page. Tick this to ignore that bookmark and re-pull the full result set for your filters — and it clears the stored cursor, so your next ordinary run starts clean.
salaryMinintegerMatches any posting whose advertised band reaches this figure. A $10-35/hr band matches a request for 35.
enrichedOnlybooleanfalseReturn only postings whose salary, employment type and description have been parsed. Off by default: an unenriched record still carries title, company, location and dates, and withholding it trades a real answer for a slower better one.

FAQ

How is this different from the other Naukri scrapers on Apify?

Other actors also return applicant, view and vacancy counts. This one includes them on the base record and answers from a continuously tailed archive rather than scraping on demand, so a run is a database query that cannot be rate-limited, blocked or defeated by Naukri's recaptcha wall. The archive also retains gone_at, which an on-demand scrape cannot reconstruct after Naukri overwrites its expired feed.

Does it include salary and the full job description?

Yes — description, key skills, employment type, vacancy count and role category on every enriched posting. Salary is present where the employer discloses a band; Naukri hides it on a large share of listings, and we return null there rather than a fabricated zero.

What are apply_count and view_count?

Naukri publishes, per posting, how many people applied and how many viewed it. They are included directly on this Actor's base record. Paired with the exact posting timestamp they give you applicants-per-day and an apply-through rate — a direct read on which roles are contested and which are struggling to attract anyone.

How current is it?

The archive ingests every four hours, including Naukri's overwritten expired file and freshness-sorted searches across 100 board-defined role keys.

Where do title and location come from?

On enriched rows they come directly from Naukri's detail API, including structured per-city locations. A newly discovered row may briefly use the posting URL as a fallback until its detail payload arrives.

Does this return every job on Naukri?

No, and no Naukri actor honestly can. Discovery combines Naukri's own sitemaps, which lag about a day, with freshness searches across 100 board-defined role keys selected by marginal unique-job yield inside the same eight-hour window production ingests. It is a broad, continuously refreshed sample, not a census.

Integration

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('hyperbach/naukri-jobs-history').call({"maxItems": 10});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('hyperbach/naukri-jobs-history').call(run_input={'maxItems': 10})
items = client.dataset(run['defaultDatasetId']).list_items().items

CLI

$apify call hyperbach/naukri-jobs-history --input '{"maxItems": 10}'

REST

curl -X POST "https://api.apify.com/v2/acts/hyperbach~naukri-jobs-history/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' -d '{"maxItems": 10}'

Support

support@hyperbach.com

This page is generated from the Actor's schemas and a live sample — it cannot describe a field the Actor does not have.