Internshala Scraper
Pricing
from $0.99 / 1,000 job listings
Internshala Scraper
Scrape Internshala internships and jobs by category, city, stipend, salary, and experience. Extract company, skills, badges, stipend/salary, duration, and full descriptions.
Pricing
from $0.99 / 1,000 job listings
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Internshala Scraper
Scrape Internshala internships and jobs — India's largest internship and fresher-jobs platform — by category, city, stipend or salary, and more, with clean structured data instead of a login-walled search page.
| Search internships (paid, monthly stipend) or jobs (annual salary, fresher-friendly) by category, city, work-from-home, part-time, stipend/salary tier, duration, experience cap, and badges — with an optional full-detail mode for descriptions, perks, and application deadlines. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
parsebird/internshala-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/internshala-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: mode (string, "internships" or "jobs", default "internships"), category (string, free text e.g. "Marketing"/"Web Development"/"Data Science", default all), location (string, city e.g. "Mumbai"/"Bangalore", ignored if workFromHome), workFromHome/partTime (booleans), minStipend (integer, internships only, tiers 2000-10000), minSalary (integer, jobs only, tiers 100000-1000000+), durationMonths (array, internships only, e.g. ["3 months"]), experienceMax (integer, jobs only, 0=fresher), specialFilters (array, any of "Internship with job offer"/"Early applicant"/"Fast response from employer"/"For women"), includeDetails (boolean, fetches full description/perks/deadline, default false), maxResults (integer, default 100, 0=all), startUrls (array of Internshala search URLs, overrides all filters above). Output fields: recordType, id, url, title, company, companyLogoUrl, locations, workMode, stipend/salary (object with min/max/currency/period), durationMonths or experienceYears, skills, badges, postedAt/postedAtIso, applyUrl, and — when includeDetails is on — description, perks, whoCanApply, openings, applicationDeadline, aboutCompany. Full actor spec: fetch build via GET https://api.apify.com/v2/acts/parsebird~internshala-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations
What does Internshala Scraper do?
This Actor scrapes internshala.com search results for both content types the site offers — internships (paid, monthly stipend, popular with students) and jobs (annual salary, explicitly fresher-friendly) — and normalizes every listing into one schema.
- 🔎 Category + city search — any free-text profile (Marketing, Web Development, Data Science, Content Writing, and 100+ others) crossed with any Indian city
- 🏠 Work-from-home and part-time filters — narrow to fully remote or part-time roles specifically
- 💰 Stipend / salary tiers — minimum monthly stipend for internships, minimum annual salary (in lakhs) for jobs
- 🏅 Badges — actively hiring, early applicant, job offer on completion (PPO), and for-women listings, detected directly from the page where Internshala shows them
- 📄 Optional full detail mode — description, complete skills list, perks, number of openings, eligibility text, and application deadline (converted from IST to UTC) for every listing
- ⏱️ Scheduling — run this Actor daily or weekly via Apify Scheduler to catch newly posted listings
- 🔌 API access — trigger runs and pull results programmatically via the Apify API or client libraries
- 📊 Flexible export — download results as JSON, CSV, or Excel, or query them via API
What data can you extract?
| Field | Description |
|---|---|
title / company / companyLogoUrl | Listing title, hiring company, and logo |
locations / workMode | City list (or "Work from home"), and wfh/onsite/partial_wfh |
stipend / salary | {min, max, currency, period, raw} — stipend for internships, salary for jobs |
durationMonths / experienceYears | Internship length in months, or years of experience required |
skills | Skills required, from the listing card |
badges | {activelyHiring, earlyApplicant, jobOffer, womenOnly, fastResponse}, plus flat convenience copies |
postedAt / postedAtIso | Relative posted-at text and a computed absolute UTC timestamp |
description / perks / whoCanApply / openings / applicationDeadline / aboutCompany | Full detail-page fields, populated only when includeDetails is on (null/[] otherwise, so your schema stays stable either way) |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | string | No | internships | internships (paid, monthly stipend) or jobs (annual salary, fresher-friendly) |
category | string | No | — | Free-text role/profile, e.g. Marketing, Web Development, Data Science. Empty = all |
location | string | No | — | City name, e.g. Mumbai, Bangalore. Ignored when workFromHome is on |
workFromHome | boolean | No | false | Only fully remote listings. Disables the city filter |
partTime | boolean | No | false | Only part-time roles |
minStipend | integer | No | — | Internships only. Minimum monthly stipend in ₹ (tiers: 2000/4000/6000/8000/10000) |
minSalary | integer | No | — | Jobs only. Minimum annual salary in ₹ (tiers: 100000 to 1000000+) |
durationMonths | string array | No | — | Internships only. One or more of 1 month…12+ months |
experienceMax | integer | No | — | Jobs only. Cap on years of experience; 0 = fresher-only, max 10 |
specialFilters | string array | No | — | Any of Internship with job offer, Early applicant, Fast response from employer, For women |
includeDetails | boolean | No | false | Fetch full description, perks, openings, and deadline. Slower but much richer |
maxResults | integer | No | 100 | Max listings to collect. 0 = all available across pagination |
startUrls | string array | No | — | Internshala search URLs. Overrides every filter above |
Output example
{"recordType": "internship","id": "3228180","url": "https://internshala.com/internship/detail/creative-marketing-internship-in-mumbai-at-cocoma-digital-private-limited1785672470","title": "Creative Marketing","company": "Cocoma Digital Private Limited","companyLogoUrl": "https://internshala.com/static/images/search/placeholder_logo.svg","locations": ["Mumbai"],"workMode": "onsite","workFromHome": false,"partTime": false,"skills": ["Social Media Marketing", "Content Writing", "Adobe Photoshop", "Video Editing"],"badges": {"activelyHiring": true,"earlyApplicant": true,"jobOffer": false,"womenOnly": false,"fastResponse": false},"activelyHiring": true,"earlyApplicant": true,"withJobOffer": false,"forWomen": false,"fastResponse": false,"postedAt": "Just now","postedAtIso": "2026-08-02T13:07:15.676505+00:00","applyUrl": "https://internshala.com/internship/detail/creative-marketing-internship-in-mumbai-at-cocoma-digital-private-limited1785672470","sourceUrl": "https://internshala.com/internships/marketing-internship-in-mumbai/","scrapedAt": "2026-08-02T13:07:15.676505+00:00","stipend": { "min": 8000, "max": 10000, "currency": "INR", "period": "month", "raw": "₹ 8,000 - 10,000 /month" },"salary": null,"durationMonths": 6,"experienceYears": null,"description": "Selected intern's day-to-day responsibilities include:\n\n1. Help with video editing and post-production.\n2. Design thumbnails, banners, and promotional materials for YouTube and OTT platforms.\n3. Develop visually appealing graphics for social media.","perks": [],"whoCanApply": "Only those candidates can apply who:\n- are available for full time (in-office) internship\n- can start the internship between 2nd Aug'26 and 6th Sep'26\n- are available for duration of 6 months","openings": 3,"applicationDeadline": "2026-09-01T18:29:59+00:00","aboutCompany": "Cocoma Digital Private Limited is a leading YouTube specialist and creative-first digital agency that helps media companies promote their films, web series, documentaries, and digital products on YouTube."}
Download results in JSON, CSV, or Excel directly from the Apify Console, or pull them programmatically via the API.
Use cases
- Lead generation for career services — build filtered internship/job feeds for a college placement cell or career platform
- Market research — track stipend/salary trends by category and city over time with scheduled runs
- Job aggregation — feed normalized Internshala listings into your own job board or Slack/email digest
- Recruitment intelligence — monitor which companies are actively hiring, offering PPOs, or hiring for women-focused roles in your category
- Skills demand analysis — aggregate the
skillsfield across hundreds of listings to see what's in demand
How it works
- Go to the Internshala Scraper page on Apify Store
- Click Try for free — new users get a free trial to test the Actor before paying
- Choose Internships or Jobs, then enter a category and/or city (or leave both empty for everything)
- Optionally enable work-from-home/part-time, set a minimum stipend/salary, or pick badges
- Toggle Include full details if you need descriptions, perks, and deadlines (slower, richer)
- Click Start — the Actor paginates through matching search results and normalizes every listing
- When the run finishes, download your data as JSON, CSV, or Excel, or fetch it via the API
Use with the Apify API
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("parsebird/internshala-scraper").call(run_input={"mode": "internships","category": "Marketing","location": "Mumbai","minStipend": 8000,"maxResults": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():stipend = item.get("stipend") or {}print(f"{item['title']} @ {item['company']} - {stipend.get('raw')}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('parsebird/internshala-scraper').call({mode: 'internships',category: 'Marketing',location: 'Mumbai',minStipend: 8000,maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(`${item.title} @ ${item.company} - ${item.stipend?.raw}`);});
See the Apify API documentation for full reference, or the Actor's API tab for ready-to-run request snippets in more languages.
How much does it cost to run?
This Actor uses Pay-per-event pricing — you only pay for listings actually returned, with no separate platform rental fee.
Listing scraped (every run):
| Plan | Price per event | Price per 1,000 |
|---|---|---|
| Free | $0.00199 | $1.99 |
| Bronze | $0.00149 | $1.49 |
| Silver | $0.00119 | $1.19 |
| Gold | $0.00099 | $0.99 |
Detail fetched (only charged when includeDetails is on, in addition to the listing event):
| Plan | Price per event | Price per 1,000 |
|---|---|---|
| Free / Bronze / Silver | $0.00099 | $0.99 |
| Gold | $0.00079 | $0.79 |
A 500-listing run without details costs about $1.00 (Free) to $0.50 (Gold). The same run with includeDetails on costs about $1.50 (Free) to $0.89 (Gold). Start with the free trial and a low maxResults to preview results before scaling up.
FAQ
Does this cover both internships and jobs?
Yes — set mode to internships or jobs. Internships return a stipend object (monthly); jobs return a salary object (annual) and experienceYears instead of durationMonths.
What happens if I use an unrecognized category? Internshala itself falls back to a broader result set rather than returning zero results for an unrecognized category slug — stick to real category names (Marketing, Web Development, Data Science, Content Writing, Finance, etc.) for a precise match.
Can I combine multiple filters?
Yes, most combine freely (e.g. category + city + minimum stipend + a badge). Two verified site-level limitations: workFromHome always drops the city filter (Internshala's own URL structure doesn't support combining them), and for Jobs mode specifically, the "job offer" and "fast response" badges don't have a working search filter (they're internship-specific concepts on Internshala's side) — an "Early applicant" badge is still detected directly from the page for both modes.
Why are description, perks, etc. null by default?
Those are detail-page-only fields. Enable includeDetails to fetch them — it's slower (one extra request per listing) and costs an additional detail-scraped event, so it's off by default.
Can I schedule recurring runs? Yes. Use Apify's Scheduler to run this Actor daily or weekly and catch newly posted listings.
Is it legal to scrape Internshala? Internshala's search results are publicly viewable without login. You're responsible for complying with Internshala's Terms of Service for your specific use case. See Apify's blog post on the legality of web scraping for general background.
Can I access results via API? Yes. Every run's dataset is available through the Apify API and client libraries (Python, JavaScript) — see the Actor's API tab for ready-made snippets.
Something not working? Open an issue on the Actor's Issues tab in Apify Console — the ParseBird team monitors it directly.
Related Actors
Other job and lead-data Actors from ParseBird:
- Hiring.cafe Jobs Scraper — search jobs by keyword, location, salary, and 20+ other filters
- Naukri Jobs Scraper — India's largest general job board
- Website Contact Finder — extract emails, phone numbers, and social links from any website