India Jobs Scraper - Shine, Internshala, Apna, Cutshort & More avatar

India Jobs Scraper - Shine, Internshala, Apna, Cutshort & More

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
India Jobs Scraper - Shine, Internshala, Apna, Cutshort & More

India Jobs Scraper - Shine, Internshala, Apna, Cutshort & More

Search six India job boards at once (Shine, iimjobs, Hirist, Cutshort, Internshala, Apna): one keyword and city, one table of jobs with company, salary, experience, skills, posted date and full description. Cross-board duplicates removed free. Monitor mode. Export to JSON, CSV or Excel, or via API.

Pricing

from $1.50 / 1,000 jobs

Rating

0.0

(0)

Developer

Steady Scrape

Steady Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

India Jobs Scraper — Shine, iimjobs, Hirist, Cutshort, Internshala and Apna in one feed

Scrape India jobs from six job boards at once with one search: type a keyword and a city, and get one table of jobs from Shine.com, iimjobs.com, Hirist.tech, Cutshort.io, Internshala and Apna.co, all in the same columns: title, company, places, salary (as printed and in rupees), experience (as printed and in years), work mode, skills, posted date, apply link and job link. Turn on the job page (on by default) to also get the full description, every skill, openings, applicants, category, industry and the last day to apply. The same job posted on two boards is delivered once, and the copy is free.

No login, no API key, no browser to configure. Unofficial: this Actor is not affiliated with, endorsed or sponsored by Shine, iimjobs, Hirist, Cutshort, Internshala or Apna.

What the India jobs feed is for

  • One job search across India's job boards: tech roles (Hirist, Cutshort), management and finance (iimjobs), freshers and early careers (Internshala), blue-collar and entry-level (Apna) and everything (Shine) in one run.
  • Job alerts and job boards: schedule it with monitor mode to receive only the jobs no earlier run delivered.
  • Recruitment and staffing leads: which companies are hiring for a role in a city right now, on any board.
  • Salary and skills research: salary ranges in rupees and experience in years, comparable across boards.
  • Datasets for analytics or AI: thousands of structured India job descriptions with skills attached.

Input

FieldWhat it does
Job titles or skillsWhat you would type in a board's search box: python developer, data analyst, sales executive. Each keyword is searched in each city on every board you choose.
CitiesBangalore, Pune, Mumbai, Gurgaon, Hyderabad… Common spellings (Bengaluru, Gurugram, New Delhi) are understood. Empty = all of India.
Job boardsAny of the six (all by default). A job found on two of them is kept from the one earlier in the list.
Maximum jobs per board and searchHow many jobs to take from each board for each keyword and city (default 20; 0 = every page).
Open each job's pageOne extra page per job for the description and the rest (priced as a job with details).
Only jobs not delivered beforeMonitor mode: skips, for free, every job an earlier run with the same searches delivered, and its copies on other boards.
{
"keywords": ["python developer", "data analyst"],
"locations": ["Bangalore", "Pune"],
"boards": ["shine", "iimjobs", "hirist", "cutshort", "internshala", "apna"],
"maxJobsPerBoard": 20,
"includeDetails": true,
"onlyNewJobs": false
}

Output: one India job per row, the same columns for every board

Example (with the job page, shortened):

{
"status": "ok",
"board": "iimjobs",
"jobId": "1739956",
"title": "Sagility - Senior Manager - Company Secretary",
"company": "SAGILITY INDIA LIMITED",
"url": "https://www.iimjobs.com/j/sagility-senior-manager-company-secretary-1739956",
"applyUrl": "https://www.iimjobs.com/j/sagility-senior-manager-company-secretary-1739956",
"companyLogo": "https://recruiter-static-content.s3.ap-south-1.amazonaws.com/CompanyLogos/centralised-18545.webp",
"locations": ["Bangalore"],
"workMode": null,
"experienceText": "5 - 10 years",
"experienceMinYears": 5,
"experienceMaxYears": 10,
"salaryText": "₹15,00,000 - ₹20,00,000 /year",
"salaryMin": 1500000,
"salaryMax": 2000000,
"salaryCurrency": "INR",
"salaryPeriod": "year",
"skills": ["Compliance", "CS", "Regulatory Compliance"],
"postedAt": "2026-10-15T04:03:01.258Z",
"postedText": null,
"search": "company secretary in Bangalore",
"keyword": "company secretary",
"location": "Bangalore",
"position": 1,
"alsoOn": [],
"scrapedAt": "2026-10-28T12:00:00.000Z",
"details": {
"description": "Board and Committee meetings - India / overseas subsidiaries:\n\n- Preparation of Agenda and…",
"descriptionHtml": "<p><b>Board and Committee meetings - India / overseas subsid…",
"skills": ["Compliance", "CS", "Regulatory Compliance", "Legal Jobs in IT/ITeS"],
"employmentType": null,
"category": "Legal",
"industry": "BPO",
"openings": null,
"applicants": 34,
"validThrough": null,
"companyWebsite": null,
"companyDescription": null
}
}
FieldMeaning
statusok on a job row (the free rows below carry their own status).
boardshine, iimjobs, hirist, cutshort, internshala or apna.
jobId / urlThe board's own id and page for the job.
titleThe job title as the board shows it.
applyUrlWhere to apply: the employer's own link when the board gives one (iimjobs, Hirist, Apna's careers-site jobs), else the job's page.
companyAs the board shows it; null on the few jobs a board lists without one.
companyLogoThe logo's image link (on Shine, the job's own image when the company has no logo).
locationsPlaces as the board writes them (Bangalore, Hinjewadi, Pune, Gurgaon/Gurugram); empty for remote jobs on boards that name no place.
workModeoffice, remote or hybrid (Cutshort's "remote or office" included); null when the board does not say.
experienceText / experienceMinYears / experienceMaxYearsAs printed (0 to 4 Yrs, Min. 2 years, No experience required), and in years; the maximum is null when there is none.
salaryText / salaryMin / salaryMax / salaryPeriodAs printed, and the figures in salaryCurrency per year or month (Apna pays by the month). null when the employer hides the salary.
skillsThe skills the board's list shows for the job (Apna's list shows none).
postedAt / postedTextISO 8601 UTC. Internshala's list shows only an age (3 days ago, kept in postedText); its job page gives the date, and Apna's the time.
search / keyword / locationThe search that found the job (python developer in Bangalore), its keyword, and its city (null for all of India).
positionThe job's place among those its board listed for the search, from 1.
alsoOnThe same job on other boards in this search (same company, title and city), e.g. a Shine row with [{ "board": "iimjobs", "jobId": "1723268", "url": "https://www.iimjobs.com/j/data-analyst-risk-financial-markets-1723268" }]. Those copies are not delivered again and not charged.
scrapedAtWhen the row was made, ISO 8601 UTC.
detailsnull without the job page, or when that page could not be read (the row is then charged as a plain job). Cutshort's list already carries its description, so its details cost no extra request.
details.description / details.descriptionHtmlThe full job description as text and as the board's HTML; empty when the employer wrote none (some Apna jobs list only their tags).
details.skillsEvery skill the job page names.
details.employmentType / details.category / details.industryAs the board writes them (Full Time, Regular, Backend Development, IT Services & Consulting); null when the board has no such field.
details.openings / details.applicantsOpenings and applicants so far, on the boards that show them.
details.validThroughThe last day to apply, when the board gives one.
details.companyWebsite / details.companyDescriptionThe employer's website and profile, on the boards that show them (Shine, Cutshort, Internshala).

A board that gives no job for a search produces one free row with board, search, keyword, location, status, reason and scrapedAt, where status is no_results, location_not_found (a city that board does not list), not_found (Cutshort lists jobs by skill and has no list for the keyword), blocked (the board refused to answer) or unreadable. The run's SUMMARY record lists, per search and board, the board's own total, jobs delivered, copies found on other boards and jobs skipped by monitor mode.

Pricing

Pay per result, nothing per run, the same rate as our single-board Actors:

  • US$0.0015 per job as its board's list shows it (US$1.50 per 1,000).
  • US$0.0025 per job with its own page (US$2.50 per 1,000).

Copies of a job on other boards, jobs repeated across your searches, jobs skipped by monitor mode, expired Apna jobs and free rows are never charged. Set a maximum cost per run in Apify and the Actor stops before reading pages it cannot charge for.

How each board is searched, and the limits

  • Shine and iimjobs / Hirist: their own keyword search, in their own order, with the city as their location filter. iimjobs' search also matches skills, so a tech keyword there can bring finance roles that use that skill.
  • Cutshort lists jobs by skill (its free-text search is closed to crawlers), so a keyword is matched to its skill list: python developer reads the Python list. A keyword that names no skill gives a free not_found row naming similar skills. Cutshort has city lists for 14 cities; any other place is read from the India list.
  • Internshala: its jobs (not internships) for the keyword in the city.
  • Apna: its keyword search in the city. Apna's search matches loosely (python developer also lists Java and WordPress developers), so jobs whose title does not name the keyword's distinctive word are left out, for free.
  • Each board is asked at its own polite pace (about one request a second), all six at the same time; with job pages most of a run is reading them, one a second or so on each board.
  • No recruiter field of any board is read. Phones and e-mails an employer typed into a description, a company name or a company profile are replaced by [phone hidden] / [e-mail hidden]. A name can remain: Shine's consultancies sometimes write the hiring person's name into the company name ("… Hiring For
  • If a board refuses requests, the run stops asking that board, returns what the others gave, and charges nothing undelivered.

This Actor reads only public job listings that each board shows to any visitor without an account, honours each board's robots.txt for the pages it reads, and never solves or bypasses a challenge. It collects no personal data beyond what employers publish with their jobs; a person's name in a company name or a description is still personal data. Check that your use of the data complies with each board's terms and the laws that apply to you (such as India's DPDP Act or the GDPR) before using it commercially.