India Jobs Scraper - Shine, Internshala, Apna, Cutshort & More
Pricing
from $1.50 / 1,000 jobs
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
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
| Field | What it does |
|---|---|
| Job titles or skills | What 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. |
| Cities | Bangalore, Pune, Mumbai, Gurgaon, Hyderabad… Common spellings (Bengaluru, Gurugram, New Delhi) are understood. Empty = all of India. |
| Job boards | Any 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 search | How many jobs to take from each board for each keyword and city (default 20; 0 = every page). |
| Open each job's page | One extra page per job for the description and the rest (priced as a job with details). |
| Only jobs not delivered before | Monitor 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}}
| Field | Meaning |
|---|---|
status | ok on a job row (the free rows below carry their own status). |
board | shine, iimjobs, hirist, cutshort, internshala or apna. |
jobId / url | The board's own id and page for the job. |
title | The job title as the board shows it. |
applyUrl | Where to apply: the employer's own link when the board gives one (iimjobs, Hirist, Apna's careers-site jobs), else the job's page. |
company | As the board shows it; null on the few jobs a board lists without one. |
companyLogo | The logo's image link (on Shine, the job's own image when the company has no logo). |
locations | Places as the board writes them (Bangalore, Hinjewadi, Pune, Gurgaon/Gurugram); empty for remote jobs on boards that name no place. |
workMode | office, remote or hybrid (Cutshort's "remote or office" included); null when the board does not say. |
experienceText / experienceMinYears / experienceMaxYears | As 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 / salaryPeriod | As printed, and the figures in salaryCurrency per year or month (Apna pays by the month). null when the employer hides the salary. |
skills | The skills the board's list shows for the job (Apna's list shows none). |
postedAt / postedText | ISO 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 / location | The search that found the job (python developer in Bangalore), its keyword, and its city (null for all of India). |
position | The job's place among those its board listed for the search, from 1. |
alsoOn | The 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. |
scrapedAt | When the row was made, ISO 8601 UTC. |
details | null 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.descriptionHtml | The 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.skills | Every skill the job page names. |
details.employmentType / details.category / details.industry | As the board writes them (Full Time, Regular, Backend Development, IT Services & Consulting); null when the board has no such field. |
details.openings / details.applicants | Openings and applicants so far, on the boards that show them. |
details.validThrough | The last day to apply, when the board gives one. |
details.companyWebsite / details.companyDescription | The 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 developerreads the Python list. A keyword that names no skill gives a freenot_foundrow 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 developeralso 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.
Is it legal?
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.