Naukri Job Scraper
Pricing
from $2.00 / 1,000 results
Naukri Job Scraper
Export Naukri.com job listings to CSV-ready data: company, location, salary, skills, ratings, walk-in flags, and optional full descriptions. Filter by role, city, experience, freshness, and work type. For recruiters, staffing, and sales teams.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Vamsi Krishna
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Naukri.com Job Scraper
Turn Naukri job search into a recruiter-ready spreadsheet in minutes.
Export fresh Naukri.com listings as a flat dataset with a variable-length skills array plus CSV-friendly columns—ready for Google Sheets, Airtable, your ATS, CRM, or BI stack. Built for recruiters, sales teams, and automation builders who need clean hiring data without writing a custom parser.
Run on Apify · Try example input
Actor name: naukri-job-scraper
The problem — and the fix
| Pain | This Actor |
|---|---|
| Nested JSON breaks Sheets and CRM imports | Flat schema with skills array + export columns |
| Sourcing lists fill up with stale jobs | freshnessDays plus parsed-date post-filtering |
| Hours spent cleaning salary and skills text | Parsed salaryMin, salaryMax, and skills array (plus skills/0–skills/7 for CSV) |
| Runs die on blocks with nothing saved | Sessions, retries, proxy support, and partial-result recovery |
Who it's for
Recruiters and staffing
- Build fresh sourcing lists with experience bands, walk-in flags, and company ratings.
- Filter by location, work type, and how recently jobs were posted.
- Spot walk-in drives and employer reputation before you reach out.
Typical workflow: Search by role and city → export to Sheets or your ATS → start outreach the same day.
Sales and GTM
- Find companies actively hiring for roles you sell into.
- Target accounts with company name, rating, review count, and job URL in every row.
- Track remote, hybrid, and office demand by market.
Typical workflow: Run weekly searches by keyword → push dataset to your CRM → trigger outreach when hiring signals match your ICP.
Builders and ops
- Pipe jobs into Apify datasets, webhooks, or scheduled runs—no scraper maintenance.
- Choose fast listing mode or full descriptions depending on volume and cost.
- Rely on deduplication, block detection, and incremental dataset push for production pipelines.
Typical workflow: apify call or Console schedule → download CSV/JSON → feed Sheets, Airtable, or your data warehouse.
Why teams switch from basic scrapers
| What you need | Basic Naukri scraper | This Actor |
|---|---|---|
| CRM or Sheets import | Manual JSON cleanup | Flat schema + skills JSON array |
| Fresher or band hiring | Single experience value | experienceMin + experienceMax range |
| Only recent openings | Sort-only or coarse filter | freshnessDays + parsed-date filtering |
| Salary benchmarking | Raw salary text only | Raw salary + salaryMin / salaryMax |
| Skills reporting | Nested arrays | skills array (any length) + first 8 in skills/0–skills/7 |
| Walk-in campaigns | Often missing | isWalkin on every row |
| Cost vs depth | Fixed behavior | Fast listing mode or full-description mode |
| Clean account lists | Basic URL dedup | Job ID → URL → title/company/location fallback |
| Long or fragile runs | Basic retries | Sessions, block detection, proxy, recovery |
Built for production runs
- CSV-ready: flat job fields plus
skillsarray; first 8 skills also inskills/0–skills/7. - Incremental export: jobs land in the dataset as they are scraped.
- Smart dedup: job ID, then URL, then title/company/location fallback.
- Resilient sessions: rotate when blocks or rate limits appear; retry failed requests.
- Your pace: optional fast listing scrape or full job descriptions from detail pages.
- Proxy-ready: Apify Proxy enabled by default; tune delays when sites get strict.
Quick start
First run in 60 seconds
- Set keyword (e.g.
software engineer). - Set location (e.g.
Bangalore). - Set maxItems (e.g.
50). - Click Start on Apify Console—or run the CLI below.
Run on Apify
apify pushapify call naukri-job-scraper --input='{"keyword":"product manager","location":"Delhi","maxItems":50}'
Open Apify Console to configure inputs in the UI, view the Output table, and download CSV or JSON.
Run locally
npm install -g apify-cli && apify logincd <your-repo-clone> && npm install && apify run
Dataset from the last run: apify dataset get default (files also under storage/datasets/default/).
Example inputs
Fresher fullstack — tight sourcing list
Use when you need recent, junior fullstack roles with full descriptions for screening.
{"keyword": "fullstack developer","location": "Bangalore","experienceMin": 0,"experienceMax": 2,"freshnessDays": 5,"strictFreshness": true,"sortBy": "date","maxItems": 100,"includeDescriptions": true}
Fast listing — high volume, lower cost
Use when you want large exports quickly without opening every job detail page.
{"keyword": "data analyst","location": "Mumbai","maxItems": 200,"includeDescriptions": false,"sortBy": "relevance","minDelaySeconds": 2,"maxDelaySeconds": 4,"blockResources": true}
Remote product manager — GTM or market scan
Use when you track who is hiring remotely and only want jobs from the last week.
{"keyword": "product manager","location": "India","workType": "remote","freshnessDays": 7,"sortBy": "date","maxItems": 150,"includeDescriptions": false}
Technical reference
Everything below is for configuration, integration, and troubleshooting.
Input fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | Yes | - | Job search keyword, e.g. "software engineer" |
location | string | No | "" | Location filter, e.g. "Bangalore", "Mumbai", "India" |
experience | integer | No | - | Legacy minimum experience; prefer experienceMin / experienceMax |
experienceMin | integer | No | - | Minimum years of experience (0–50) |
experienceMax | integer | No | - | Maximum years of experience (0–50) |
sortBy | string | No | "relevance" | "relevance" or "date" |
workType | string | No | "" | "", "office", "remote", or "hybrid" |
freshnessDays | integer | No | - | Keep jobs posted within the last N days (1–30) |
strictFreshness | boolean | No | true | Exclude jobs with unknown posted dates when freshnessDays is set |
maxItems | integer | No | 50 | Maximum jobs to scrape (1–1000) |
includeDescriptions | boolean | No | true | Visit detail pages and extract full descriptions |
proxyConfiguration | object | No | { "useApifyProxy": true } | Apify proxy settings |
minDelaySeconds | integer | No | 2 | Minimum random delay between requests (0–30) |
maxDelaySeconds | integer | No | 6 | Maximum random delay between requests (0–60) |
blockResources | boolean | No | true | Block images, fonts, and media for faster runs |
debugSnapshots | boolean | No | false | Save HTML snapshots on errors for debugging |
Output fields
One flat JSON object per job:
titlecompanyLogocompanyNamecompanyRatingcompanyReviewCountdescriptionexperienceisWalkinjobIdjobUrllocationpostedDatesalarysalaryMaxsalaryMinscrapedAtskillsskills/0skills/1skills/2skills/3skills/4skills/5skills/6skills/7
Output example
{"title": "Fullstack Developer","companyLogo": "https://img.naukimg.com/companyimages/...","companyName": "TechCorp","companyRating": 4.2,"companyReviewCount": 801,"description": "We are looking for...","experience": "0-2 Yrs","isWalkin": false,"jobId": "12345678","jobUrl": "https://www.naukri.com/job-listings-...","location": "Bengaluru","postedDate": "2024-01-10T08:00:00.000Z","salary": "10-15 Lacs PA","salaryMax": 15,"salaryMin": 10,"scrapedAt": "2024-01-15T10:30:00.000Z","skills": ["Python", "React"],"skills/0": "Python","skills/1": "React","skills/2": null,"skills/3": null,"skills/4": null,"skills/5": null,"skills/6": null,"skills/7": null}
Skills fields: skills holds every skill for the job (0 to many). skills/0–skills/7 duplicate the first eight for spreadsheet imports; jobs with more than eight skills only show extras in skills.
On Apify Console, the run Output tab shows this schema in a table; Storage holds INPUT, scraper state, and optional debug snapshots.
How filtering works
Experience: When both experienceMin and experienceMax are set, the Actor uses the matching Naukri experience slug and validates parsed experience text from listings.
Freshness: With freshnessDays, the Actor applies the nearest Naukri job-age filter on the search URL, then post-filters by parsed posted date. strictFreshness: true drops jobs with unknown dates; false keeps unknown-date jobs but still removes known stale ones.
Description mode:
| Mode | Best for | Behavior |
|---|---|---|
includeDescriptions: false | Fast exports, larger sets, lower cost | Data from listing cards only |
includeDescriptions: true | ATS import, full-text search | Opens detail pages for full descriptions |
Reliability notes
- Jobs are pushed to the dataset as soon as they are extracted.
- Duplicates are skipped via job ID, normalized URL, then title/company/location.
- Sessions retire on block or rate-limit signals; failed requests retry.
- Enable
debugSnapshotswhen selectors need investigation. blockResourcesreduces page weight while keeping useful Naukri assets.
Limitations
- Public Naukri job listings only—no login, CAPTCHA bypass, or paywall access.
- Some fields may be empty when Naukri does not show them.
- Selectors may need updates if Naukri changes page structure.
- Very strict filters can return fewer jobs than
maxItems.
Troubleshooting
| Issue | Likely cause | What to try |
|---|---|---|
| No jobs found | Filters too narrow | Broaden keyword, location, experience, or freshness |
| Fewer jobs than expected | strictFreshness removing unknown dates | Set strictFreshness to false |
| Slow runs | Detail pages enabled | Set includeDescriptions to false |
| Missing descriptions | Detail page failed or changed | Enable debugSnapshots and inspect HTML |
| Missing salary min/max | Unparseable salary text | Use raw salary as fallback |
| HTTP 403 or blocks | Proxy or session flagged | Keep Apify Proxy on; increase delays |
| Duplicate-looking jobs | Naukri reposts similar listings | Match on jobId and title/company/location |
Compliance
This Actor collects only publicly visible job listing information. It does not access private user data, bypass login walls, solve CAPTCHAs, or evade access controls.
You are responsible for use that complies with Naukri.com terms, applicable laws, privacy rules, and your organization’s policies. Use reasonable crawl rates and cache results where possible.