Naukri Job Scraper avatar

Naukri Job Scraper

Pricing

from $0.50 / 1,000 base jobs

Go to Apify Store
Naukri Job Scraper

Naukri Job Scraper

[💵 $1.50 / 1K · no start fee] Scrape Naukri.com and Naukrigulf jobs by keyword, location, URL or exact Naukri job ID. Clean company, salary, skills, experience, work mode and full descriptions.

Pricing

from $0.50 / 1,000 base jobs

Rating

0.0

(0)

Developer

WebData Labs

WebData Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

Naukri Job Scraper - India's biggest job board, in a spreadsheet

Scrape Naukri.com and Naukrigulf job listings into clean rows: title, company, salary, skills, experience and work mode. Search India, the Gulf, or both in one run.

Naukri holds the largest pool of Indian job postings anywhere, and none of it is exportable. The website shows you 20 jobs at a time, hides the salary behind a label, and jams three cities and the work mode into one string. This Actor opens the public result pages in an isolated browser session, normalizes the cards, and hands you every field as its own column - no login and no start fee.

🔎 Why your Naukri search returns fewer jobs than Naukri claims

Naukri's match count is optimistic. In a measured run, a search claiming 3,751 jobs served 751 unique jobs before the source ran dry. This Actor keeps paging, deduplicates repeated sponsored listings, and reports both Naukri's claimed count and the rows actually returned. Fewer rows than your limit usually means the source stopped serving results, not that the run silently failed.

✅ What you get / ❌ what this isn't

✅ This Actor gives you❌ This Actor is not
Automatic browser pagination beyond the first result pageNot a manual copy-paste workflow
Up to 10,000 served cards per searchNot just the first 20 jobs
Many keywords x many cities in one runNot one run per search box
India + Gulf coverage through platform: naukri / naukrigulf / bothNot a separate Actor and schema for every region
Exact jobIds refresh mode for jobs you already trackNot a full search just to re-check one posting
Salary as numbers - salaryMinLakhs, salaryMaxLakhs, plus an honest salaryDisclosed flagNot "12-22 Lacs PA" as a string you have to parse
Work mode split out of the location blob into remote / hybrid / officeNot "Hybrid - Pune, Chennai, Bengaluru" in one cell
AmbitionBox rating and review count on every rowNot a company name you have to look up separately
Full descriptions, education, role, industry, applicant and view counts on demandNot a truncated card snippet
No start fee - a 5-job lookup costs 5 jobsNot a per-run charge that punishes small queries

🔎 Why use this Actor

  • It follows Naukri's current public browser flow. Naukri replaced its reusable API signature with a single-use browser token in July 2026. The Actor now uses a real Chromium session instead of shipping a brittle hard-coded token.
  • Deep pagination with deduplication. Naukri repeats promoted listings across pages, so rows are deduplicated by job id as they arrive and the Actor continues until your limit is met, the source runs dry, or the 500-page safety ceiling is reached.
  • Salary you can filter on. Most Indian postings hide the salary. Rather than pretend, every row carries salaryDisclosed, and the numeric fields stay empty when it is false - so a "minimum 15 lakhs" filter never silently drops jobs whose pay is simply unknown.
  • Failure-aware collection. Page timeouts and source blocks are reported in the run summary instead of being silently treated as an empty search.
  • Weekly new-jobs mode. Turn on Only jobs not seen in previous runs and every scheduled run returns only postings you have not already been charged for.
  • Filters Naukri does not have. Experience, salary band, work mode, freshness and employer type go to Naukri; exact salary floors, title must-include/must-exclude, company blocklists and a minimum AmbitionBox rating are applied on top.
  • Paste-a-URL mode. Built the right search on naukri.com? Paste the URL and every filter in it is honoured.
  • Competitor-compatible inputs. keyword aliases searchQueries, startUrls aliases searchUrls, and direct jobIds override search mode.
  • Exact taxonomy filters. companyId, industry and roleCategory are sent to Naukri's API as IDs, so irrelevant rows are filtered before download and billing.
  • Naukrigulf support. Select naukrigulf for UAE, Saudi Arabia, Qatar and the wider GCC, or both to run every keyword/location combination against India and Gulf sources. Every row carries sourcePlatform.

👥 Who it's for

Recruiters, staffing agencies, HR analysts and job-market researchers working across India and the Gulf.

  • Build a live pipeline of open roles for a niche you recruit for, refreshed weekly.
  • Benchmark pay bands by role, city and experience level using the disclosed-salary rows.
  • Track which companies are hiring for which skills, and how fast their postings accumulate applicants.
  • Feed a job board, a newsletter or an internal Slack alert with genuinely new postings only.
  • Study demand for a technology across India by counting postings that name it.

Example tasks

Ready-made configurations you can open, tweak and run:

⚙️ How to scrape Naukri jobs

  1. Open the Actor on Apify.
  2. Type one or more search keywords, for example python developer.
  3. Optionally add cities - bangalore, pune, delhi-ncr. Leave empty to search all of India.
  4. Set Maximum jobs - the budget for the whole run, shared across your searches. 0 means everything Naukri will serve.
  5. Optionally narrow with experience, salary, work mode, freshness or employer type.
  6. Optionally turn on Fetch full job descriptions for the complete text, education requirements, role, industry and applicant counts.
  7. Click Start, then export as CSV, JSON or Excel.

Prefer a URL? Skip steps 2-5 and paste your naukri.com search URL into Or paste Naukri search URLs.

Get only the new jobs every week

Turn on Only jobs not seen in previous runs, save the configuration as a task, and schedule it. The Actor remembers every job id it has returned in a named store, so run two gives you only what appeared since run one. Give each scheduled search its own Name of the memory store so two schedules do not hide each other's results.

📥 Input

{
"searchQueries": ["python developer", "data engineer"],
"locations": ["bangalore", "pune"],
"maxItems": 500,
"experienceYears": 5,
"minSalaryLakhs": 15,
"workMode": "remote",
"postedWithinDays": "7",
"employerType": "company",
"includeJobDescription": true,
"sortBy": "date"
}
  • searchQueries - keywords as you would type them on Naukri. Each one is combined with each city, so 2 keywords x 2 cities is 4 searches.
  • locations - Naukri's own city names (bangalore, mumbai, delhi-ncr, hyderabad, chennai, pune, kolkata, remote). Empty means all of India.
  • searchUrls - paste naukri.com result-page URLs instead of building the search here.
  • maxItems - total jobs for the run, shared across searches. Default 100, 0 means unlimited.
  • includeJobDescription - fetch each job's own page for the full text and extra fields. One extra request per job. Off by default.
  • experienceYears - keep jobs open to a candidate with this many years.
  • minSalaryLakhs / maxSalaryLakhs - annual CTC bounds in lakhs. Re-checked exactly on every row.
  • onlyWithSalary - drop the "Not disclosed" majority.
  • workMode - any, remote, hybrid or office.
  • postedWithinDays - 1, 3, 7, 15 or 30.
  • employerType - company for direct employers, consultancy for staffing agencies.
  • minCompanyRating - minimum AmbitionBox rating, 1-5. Advanced.
  • titleMustInclude / titleMustExclude - word filters on the job title. Advanced.
  • excludeCompanies - company names to skip entirely. Advanced.
  • sortBy - relevance (Naukri's default) or date for newest first.
  • onlyNewJobs + dedupStoreName - the recurring-run dedup switch and which store remembers it.
  • maxConcurrency, requestsPerSecond, maxRequestRetries - advanced controls for detail and API-backed collection paths. Naukri search-page navigation is sequential.
  • proxyConfiguration - proxy settings used by the API-backed Naukrigulf path.

📤 Output

One row per job:

titlecompanyNamelocationworkModeexperienceLabelsalaryLabelcompanyRatingpostedAt
Senior Python DeveloperInfosysPune, Chennai, Bengaluruhybrid5-10 YrsNot disclosed3.52026-07-25T17:43:56Z
Data Engineer - AWSZomatoGurugramoffice3-6 Yrs18-28 Lacs PA3.82026-07-24T09:12:03Z
Backend Engineer (Remote)PostmanRemoteremote4-8 YrsNot disclosed4.22026-07-23T11:05:44Z

Every row also carries jobId, jobUrl, companyId, companyUrl, companyLogoUrl, companyReviewsCount, companyReviewsUrl, isConsultancy, locations as an array, experienceMin / experienceMax as numbers, skills as an array, descriptionSnippet, salaryDisclosed, salaryMin / salaryMax in rupees and salaryMinLakhs / salaryMaxLakhs in lakhs, salaryCurrency, vacancies, postedLabel, diversityTag, plus searchQuery, searchLocation, totalJobsMatchingSearch and scrapedAt so you can trace which search produced the row.

With Fetch full job descriptions on, each row gains description (plain text), descriptionHtml, highlights, role, roleCategory, industry, functionalArea, employmentType, educationUg, educationPg, applyCount, viewCount, isWalkIn, companyDescription and companyWebsite.

💵 How much does it cost?

You pay per job returned, and there is no start fee - a search that returns 5 jobs costs 5 jobs, not 5 jobs plus a run charge. Filtered-out rows are free: the salary, title and company filters run before anything is written to the dataset, so you are only billed for jobs that survived your criteria. A typical single-keyword city search matches thousands of jobs, so the Maximum jobs setting, not the search, is what decides your bill.

ResultFreeBronzeSilverGold and above
Base job (job-scraped)$1.50 / 1,000$1.20 / 1,000$0.90 / 1,000$0.50 / 1,000
Full detail (job-detail-scraped)$4.50 / 1,000$3.60 / 1,000$2.70 / 1,000$1.50 / 1,000

Every returned row incurs the base event. A successful full-detail fetch incurs the detail event as well. Exact jobIds fetches are detail records, so both events apply.

🔁 Run it on the Apify platform

Schedule it daily or weekly, call it from the Apify API or any of the client libraries, export results as CSV, JSON, Excel or XML, or push rows straight into Make, Zapier, a webhook, Google Sheets or your ATS. The Only jobs not seen in previous runs switch is built for exactly this: schedule it once and every run delivers only the new postings.

⚠️ Limits and caveats

  • Most salaries are hidden. Indian recruiters overwhelmingly post "Not disclosed", and Naukri returns zeros for those. The Actor reports salaryDisclosed: false rather than inventing a number, but it means pay-band analysis runs on a minority of rows.
  • Naukri search is browser-backed. Expect roughly one page navigation per 20 served cards. Full descriptions require an additional job-page navigation per result, so large enriched runs are intentionally slower.
  • Naukrigulf full descriptions are not fetched yet. Naukrigulf rows contain the public search-card summary in descriptionSnippet; includeJobDescription currently enriches Naukri.com rows only. Gulf rows are billed only at the base event.
  • No recruiter contact details. Naukri does not expose recruiter emails or phone numbers to logged-out clients, and this Actor does not log in. Apply links go to the posting.
  • vacancies is often empty. Naukri stores "unspecified" as a sentinel value; rather than pass that off as a headcount, the field is left blank.
  • Filters are Naukri's, with their quirks. experienceYears matches against a job's range, not exactly; salary filtering is banded server-side and only refined exactly on rows where the salary is visible.
  • Sponsored listings are included. Naukri injects promoted jobs into the result pages. They are deduplicated, but not labelled - there is no flag in the source to read.
  • Some rows have no posting date. A handful of listings, mostly internships, carry no timestamp at all; where possible postedAt is reconstructed from the relative label Naukri shows.

❓ FAQ

Am I charged for jobs that my filters remove? No. Title, company, rating and exact-salary filters run before rows reach the dataset, so you only pay for jobs you keep.

Does it need a Naukri login or an API key? No. It reads only what naukri.com serves to a logged-out visitor.

How deep does it really go? Deeper than you will usually want. A broad search paginates past 40,000 jobs. The practical limit is your Maximum jobs budget and how long you let the run go.

Why is salaryMinLakhs empty on most rows? Because the recruiter hid the salary. Check salaryDisclosed; when it is false the numbers are deliberately blank rather than zero. Turn on Only jobs with a disclosed salary to keep only rows with real figures.

How does the weekly new-jobs mode know what it has seen? It stores every returned job id in a named key-value store that persists between runs. Change Name of the memory store to start a fresh memory, or to keep two schedules independent.

Can I just paste a search URL from the website? Yes. Both URL shapes work - naukri.com/python-developer-jobs-in-pune and the query-string form with k= and l=.

Does it cover internships and walk-in interviews? Yes, they come through the same search. Use titleMustExclude with intern or walk-in if you would rather not see them.

🛠️ Support

Something wrong or missing? Open an issue on the Actor's Issues tab with the run URL, the input you used and what you expected. Fixes usually ship the same week.

⭐ Rate this Actor

If this saved you time, please leave a review on the Reviews tab. Review count is the main trust signal buyers have on the Apify Store, and reviews are what decide which improvements get built next. If something is broken, please open an issue first - it will usually be fixed faster than a rating can be changed.