Internshala Scraper
Pricing
Pay per event
Internshala Scraper
Scrape internship and job listings from Internshala — India's largest internship platform. Extract title, company, stipend, skills, location, duration, and more.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
6
Monthly active users
8 days ago
Last modified
Categories
Share
What does it do?
Internshala Scraper extracts internship and job listings from Internshala — India's largest internship and fresher jobs platform with over 7,000 active listings at any time. The scraper fetches structured data from search results pages and optionally enriches each listing with full detail page information including the complete job description, start date, apply-by deadline, and company background.
The actor uses pure HTTP requests and Cheerio for fast, lightweight scraping — no browser required. It runs in 256 MB of memory and typically completes 100 listings in under 30 seconds.
Who is it for?
- 🎓 Career coaches and placement officers who maintain internship databases for students and need bulk exports on a schedule
- 📊 HR analytics teams tracking stipend benchmarks, skill demand trends, and hiring velocity across industries in India
- 🤖 Job board developers building aggregator platforms focused on Indian fresher hiring
- 📈 Recruiters and talent acquisition teams monitoring competitor hiring activity and supply of candidates by skill
- 🔬 Researchers and policy analysts studying the Indian internship market, WFH trends, and industry skill requirements
Why use it?
✅ No browser required — pure HTTP+Cheerio means fast, cheap runs (< $0.01 for 100 listings)
✅ Filters by keyword — narrow results by role type, technology, or domain (e.g. python, marketing, data-science)
✅ Covers both internships and jobs — switch between internship listings and fresher job listings with one input field
✅ Rich skill data — every listing includes the full array of required skills extracted from the card
✅ Detail page enrichment — optionally fetch the full job description, company about section, start date, and apply-by deadline
✅ Automatic pagination — scrapes as many pages as needed to hit your maxResults target
What data does it extract?
| Field | Description | Example |
|---|---|---|
id | Internshala listing ID | 3145597 |
title | Job/internship title | Business Development (Sales) |
company | Company name | Basti Ki Pathshala Foundation |
companyLogoUrl | Company logo image URL | https://internshala-uploads.internshala.com/... |
location | City or "Work from home" | Mumbai, Work from home |
isWorkFromHome | Boolean WFH flag | true |
stipend | Monthly or lump-sum stipend | ₹ 5,000 /month, ₹ 15,000 lump sum |
duration | Internship duration or job experience | 3 Months, 1-3 year(s) |
skills | Array of required skills | ["Python", "SQL", "Excel"] |
description | Brief job description from listing card | "1. Build dashboards..." |
postedAt | When posted | Few hours ago, 2 days ago |
isPartTime | Part-time flag | false |
isActivelyHiring | Currently actively hiring | true |
applyBy | Application deadline (detail page) | 10 Jun' 26 |
startDate | Start date (detail page) | Immediately, 1 Jul' 26 |
aboutCompany | Company description (detail page) | "DineMatters is a fast-growing SaaS..." |
fullDescription | Full job description (detail page) | "Selected intern's day-to-day..." |
url | Full detail page URL | https://internshala.com/internship/detail/... |
Note:
applyBy,startDate,aboutCompany, andfullDescriptionare only populated whenfetchDetails: trueis set.
How much does it cost?
Internshala Scraper uses Pay Per Event pricing:
| Tier | Price per listing |
|---|---|
| FREE | $0.005/result |
| BRONZE | $0.0035/result |
| SILVER | $0.0027/result |
| GOLD | $0.0021/result |
| PLATINUM | $0.0014/result |
| DIAMOND | $0.001/result |
A one-time run start fee of $0.005 covers initialization. Volume-tier discounts apply automatically based on your Apify subscription plan.
Typical costs at BRONZE:
- 20 listings (test run): ~$0.075
- 100 listings (standard research): ~$0.355
- 500 listings (bulk export): ~$1.755
- With
fetchDetails: true, each run makes one additional HTTP request per listing, adding a small amount of compute cost
The per-result pricing is competitive with similar scrapers on the Apify Store (market range: $0.001–$0.005 per result). Start with 20 results to verify output before scaling up.
How to use it
- Go to the Input tab in the Apify Console
- Set your search keyword (e.g.
python,marketing) or leave blank for all listings - Choose search mode:
internshipsorjobs - Set max results (start with 20 for testing)
- Toggle fetch details if you need the full description and apply-by date
- Click Start — results appear in the Output tab within seconds
Step-by-step example
Goal: Find all Python internships and export to a spreadsheet
- Set
searchQuery: "python" - Set
searchMode: "internships" - Set
maxResults: 100 - Click Start
- In the Output tab, click Export → CSV
- Open in Excel/Google Sheets — each row is one internship with title, company, stipend, skills, and more
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "" | Keyword to filter listings. Passed directly to Internshala's URL slug. Use hyphens for multi-word terms: data-science, business-development. |
searchMode | select | internships | Whether to scrape internships or jobs. |
fetchDetails | boolean | false | Fetch the detail page for each listing to get applyBy, startDate, aboutCompany, and fullDescription. Adds one HTTP request per listing. |
maxResults | integer | 50 | Maximum number of results. Pagination is handled automatically. |
maxRequestRetries | integer | 3 | Retry attempts for failed requests. |
Output example
{"id": "3145597","title": "Business Development (Sales)","company": "Basti Ki Pathshala Foundation","companyLogoUrl": "https://internshala-uploads.internshala.com/logo/...","location": "Work from home","isWorkFromHome": true,"stipend": "₹ 1,500 - 15,000 lump sum","duration": "1 Month","skills": ["Social Media Marketing", "MS-Office", "Digital Marketing"],"description": "1. Develop and implement strategic sales plans...","postedAt": "Few hours ago","isPartTime": true,"isActivelyHiring": true,"applyBy": "10 Jun' 26","startDate": "Immediately","aboutCompany": "Basti Ki Pathshala Foundation is a Government-registered organization...","fullDescription": "Selected intern's day-to-day responsibilities include: ...","url": "https://internshala.com/internship/detail/work-from-home-business-development-sales-..."}
Tips for best results
💡 Use hyphens in multi-word keywords — Internshala's URL system uses hyphens: data-science not data science
💡 Leave searchQuery blank for the broadest results — scrapes all active listings, not filtered by category
💡 Use fetchDetails: false first — get 100 listings in seconds, then refine your keyword before enabling detail fetching
💡 Combine with scheduling — run daily to detect new postings; compare with yesterday's export using the id field as a stable key
💡 Filter by WFH — use isWorkFromHome: true in downstream processing (no input filter needed; the field is always extracted)
💡 Internship categories — popular Internshala keyword slugs: computer-science, marketing, finance, design, engineering, data-science, content-writing, accounting
Integrations
Google Sheets pipeline
Run the scraper daily with a schedule → connect the Apify dataset to Google Sheets via the Google Sheets integration in Apify → share a live sheet with your team that auto-updates with new Internshala listings every morning.
Airtable internship database
Use Apify's Airtable integration to push each new result to an Airtable base. Add a formula field to flag listings where isActivelyHiring = true and stipend contains "month" for paid internships, and share the filtered view with candidates.
Slack job alerts
Connect the actor output to a Zapier or Make webhook trigger → filter for listings where postedAt is "Few hours ago" → post to a Slack channel for real-time alerts on new hot internships.
CRM lead enrichment
For recruiters: extract the company field and company URL from url, then cross-reference with your CRM. Use the isActivelyHiring flag and skills array to identify target companies and auto-tag them by tech stack in your CRM.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/internshala-scraper').call({searchQuery: 'python',searchMode: 'internships',maxResults: 100,fetchDetails: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} listings`);items.forEach(item => console.log(item.title, item.company, item.stipend));
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("automation-lab/internshala-scraper").call(run_input={"searchQuery": "marketing","searchMode": "internships","maxResults": 50,"fetchDetails": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["company"], item["stipend"])
cURL
curl -s -X POST \"https://api.apify.com/v2/acts/automation-lab~internshala-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQuery": "data-science","searchMode": "internships","maxResults": 50}'
Use with Claude (MCP)
You can use this scraper directly from Claude Code, Claude Desktop, Cursor, or VS Code via the Apify MCP server.
Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/internshala-scraper"
Then in Claude Code:
"Scrape 50 Python internships from Internshala and list the top ones by stipend"
"Get all marketing internships with fetchDetails enabled and summarize the most common required skills"
Claude Desktop / Cursor / VS Code
Add to your MCP config (e.g. ~/.claude/claude_desktop_config.json):
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/internshala-scraper","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
Example Claude prompts:
- "Find the 20 best-paying Python internships on Internshala right now"
- "Scrape 100 marketing jobs from Internshala and show the ones that are work-from-home"
- "Get Internshala internships for data science and list all unique required skills"
Legality — Is scraping Internshala legal?
Web scraping publicly available job listings is generally permissible for personal research, academic, and business intelligence purposes under most jurisdictions. Internshala's listings are publicly accessible without login. Always review Internshala's Terms of Service for the latest guidance, and use this tool responsibly and respectfully.
This actor only reads publicly available data and does not submit applications, create accounts, or interact with authenticated endpoints. Respect rate limits and avoid running extremely large scrapes that could impact Internshala's service for real users.
FAQ — Frequently asked questions
Q: Can I filter by location?
A: Not directly via input — but you can use the location field in the output to filter results downstream, or use Internshala's URL patterns as a searchQuery value (e.g. internship-in-mumbai maps to their Mumbai filter page).
Q: Why does my run return fewer results than maxResults?
A: This happens when there are fewer matching listings than your limit. For example, searching "fortran" may only find a handful of results. The actor stops gracefully when no more pages are available.
Q: The run succeeded but some fields like stipend or postedAt are empty — is that a bug?
A: No. Some listings (especially fresher jobs) don't display stipend or posted-date in their listing card. Jobs listings use a salary range format instead of ₹/month. These fields are optional on Internshala's side.
Q: I see "Ignored attempt to charge for an event" in local test logs — is that normal?
A: Yes, this message appears during local apify run testing and can be safely ignored. Pay-per-event charges only apply during cloud runs on the Apify platform.
Q: Can I scrape a specific company's listings?
A: Not directly — Internshala's public search doesn't expose company-specific URLs in a predictable pattern. Use the actor to scrape broadly and filter by company in the output.
Related scrapers
- LinkedIn Scraper — for global job listings
- Naukri Scraper — India's largest job portal for experienced professionals
- Indeed Scraper — multi-country job listings