Internshala Scraper | Internships & Jobs, 24 Fields
Pricing
from $1.20 / 1,000 listing scrapeds
Internshala Scraper | Internships & Jobs, 24 Fields
Scrape Internshala.com internships and fresher jobs: title, company, stipend/salary, duration, skills, location, work-from-home. Filter by keyword, category, city, stipend and duration. No login, no browser, pay per listing. Use it as an MCP server in Claude, ChatGPT & any AI agent.
Pricing
from $1.20 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
189
Total users
40
Monthly active users
3 days ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with nearly 139,000 runs across our actors.
Internshala is where Indian students and recent graduates look for internships, work-from-home gigs and first jobs. It runs three boards: internships, jobs, and fresher jobs. This actor reads any of them and returns one row per listing with the stipend or salary as numbers, the duration in months, the skills asked for and the city.
Why choose this actor?
- 1,000 internships in one run. On 30 Sep 2026 a run over the whole internship board returned 1,000 listings from 26 pages in 212 seconds. It reads the same public listing pages any visitor sees, so there is no login and no cookies to supply.
- Stipends you can sort and average. 966 of those 1,000 rows came with the stipend parsed into
compensation_min_inrandcompensation_max_inr; the typical lower bound was ₹9,000 a month. The 31 unpaid internships are flaggedis_unpaid: truewith no number, so they never drag an average to zero. - Only new listings on repeat runs. With
monitorModeon, our second run skipped the 15 data science internships it had already delivered and returned 15 new ones. You pay from $1.20 per 1,000 listings, and only for new rows.
Part of The Mine Works Jobs and hiring family: Foundit Monster India Jobs, Hirist Jobs Scraper, India Jobs MCP, Naukri Jobs Scraper, Shine.com Jobs Scraper, Instahyre Jobs Scraper.
Try it in one minute
Copy this into the input page's JSON view and start the run. It returns 10 data science internships from across India.
{"searchKeywords": ["data science"],"maxResults": 10}
The actor takes search terms and filters, not Internshala page links. Pick the board with employmentType (internship, job or fresher_job). Give keywords such as a role, skill or company in searchKeywords, or leave them out and browse by category, using the slug from an Internshala address such as internshala.com/internships/content-writing-internship. location takes a city as Internshala writes it (bangalore, mumbai, delhi), and two switches narrow to work-from-home or part-time listings.
Apify's free plan includes $5 of credit every month, which covers about 2,497 results at this actor's price (one run at the default 512 MB).
Copy to your AI assistant
themineworks/internshala-jobs-scraper on Apify. It reads Internshala's internship, job and fresher-job boards and returns one row per listing with title, company, city or work from home, stipend or salary as numbers, duration or experience, skills, posting age and apply link. Call ApifyClient("TOKEN").actor("themineworks/internshala-jobs-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: nothing. Optional: searchKeywords (array of strings), employmentType ("internship" default, "job" or "fresher_job"), category (Internshala slug such as "digital-marketing"), location (city such as "bangalore"), workFromHome and partTime (default false), stipendMin (integer INR, monthly for internships, yearly for jobs), durationMaxMonths (integer 1 to 24, internships only), maxResults (default 5, maximum 1000), includeDescription (default false), monitorMode (default false), proxyConfiguration (Apify proxy on by default). Rows with a _type field are run summaries, not listings. Full spec: GET https://api.apify.com/v2/acts/themineworks~internshala-jobs-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
Key features
- 3 boards, one input: internships, jobs and fresher jobs, picked with
employmentType. - Up to 22 fields per listing. 16 are on every row. Internships add the duration as text and in months; jobs add the experience text and, when it gives a number, years; and any listing with stated pay adds two amounts and a unit.
- 7 filters that combine: keywords, category, city, work from home, part time, minimum stipend or salary, and maximum internship length.
- Pay parsed into numbers. "₹ 5,000 /month" becomes
5000with the unitmonth; job salaries come out peryear; one-off payments are markedlump_sum; "Unpaid" setsis_unpaid: true. - Up to 1,000 listings per run, about 40 per page, with repeats removed by Internshala's listing ID before anything is saved or charged.
- Monitor mode remembers up to 50,000 listing IDs you have already received and delivers only new ones.
How to use it
Basic: one keyword
{"searchKeywords": ["graphic design"],"maxResults": 100}
Several keywords in one city
{"searchKeywords": ["marketing", "sales", "business development"],"location": "mumbai","maxResults": 300}
Each keyword is searched on its own and the results are merged. maxResults is a cap across all of them, worked through in order.
Paid, short internships in one city
{"searchKeywords": ["digital marketing"],"location": "mumbai","stipendMin": 10000,"durationMaxMonths": 3,"maxResults": 200}
In our test all 20 rows lasted 3 months or less and none was unpaid. Internshala keeps listings whose stipend range reaches your minimum, so one paying ₹8,000 to ₹19,000 still qualifies. Filter on compensation_min_inr afterwards if you need a strict floor.
Daily alert for new internships
{"searchKeywords": ["data science", "machine learning"],"maxResults": 200,"monitorMode": true}
Save it as a task and schedule it every morning, for example with the cron 0 8 * * *. The first run records a baseline; every run after that delivers only listings you have not received before, and the summary row counts the ones it skipped.
Fresher jobs by city for campus hiring research
{"employmentType": "fresher_job","location": "bangalore","maxResults": 300}
Salaries on the job boards are yearly: in our Bangalore sales test they ran from ₹2,50,000 to ₹11,00,000 a year. Listings from the fresher board are labelled job in employment_type, so tag the rows yourself if you mix boards in one dataset.
Remote internships in one category
{"category": "content-writing","workFromHome": true,"maxResults": 100}
All 10 rows in our test were work from home; 3 of them were unpaid, which is_unpaid makes easy to drop.
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
searchKeywords | array of strings | none | Role, skill or company, such as digital marketing or python. Each is searched separately. Leave empty to browse by the filters alone. |
employmentType | string | internship | Which board: internship, job or fresher_job. |
category | string | none | Internshala category slug, such as computer-science, digital-marketing, human-resources, content-writing or graphic-design. |
location | string | none (all cities) | City as Internshala writes it, such as bangalore, mumbai, delhi or pune. For remote roles use workFromHome. |
workFromHome | boolean | false | Only work-from-home listings. |
partTime | boolean | false | Only part-time listings. |
stipendMin | integer, 0 to 10,000,000 | none | Minimum stipend in rupees a month for internships, or salary in rupees a year for jobs. |
durationMaxMonths | integer, 1 to 24 | none | Internships only: longest duration in months. |
maxResults | integer, 1 to 1,000 | 5 | Cap on listings delivered across all keywords. Set it; the default is only 5. |
includeDescription | boolean | false | Asks for the full description instead of a 400-character cut. See the note on descriptions below. |
monitorMode | boolean | false | Deliver only listings not delivered to you in an earlier run. |
proxyConfiguration | object | {"useApifyProxy": true} | Apify's proxy, included and enough for Internshala. |
The Console form starts with digital marketing, the digital-marketing category and bangalore filled in, so a run from the form without edits uses those filters. API and assistant runs start from the defaults above plus your own input, with no prefill.
What data do you get?
One row per listing. Fields Internshala does not publish for a listing are left out of that row rather than sent as null.
The listing: listing_id, employment_type, title, skills, description, actively_hiring (Internshala's badge), apply_url.
The company: company and company_logo.
Where: location (a city, several cities, or "Work from home") and work_from_home.
Pay: compensation_text as Internshala shows it, compensation_min_inr, compensation_max_inr, compensation_unit (month, year or lump_sum) and is_unpaid.
Length or experience: internships carry duration_text and duration_months; jobs carry experience_text, and experience_min_years with experience_max_years when the text has a number.
When: posted_text (such as "1 week ago" or "Today"), posted_days_ago as a number, and scraped_at.
Run rows: every run ends with a _type: "summary" row and, when at least one listing was delivered, a _type: "info" row. Neither is charged. A run that delivers nothing says why in the summary's note field. Filter on _type to keep only listings.
Things to know from our 30 Sep 2026 runs:
- Descriptions are short. Internshala's listing pages now carry only a teaser: all 1,100 descriptions we collected were 59 to 94 characters long, with or without
includeDescription. Openapply_urlfor the full text. - Pay was parsed on 966 of 1,000 internships: 959 per month, 7 lump sums, and 31 unpaid.
- 462 internships ran 6 months and 349 ran 3 months; 72 were work from home.
- On the job boards, "No experience required" carries no experience numbers (32 of 40 job rows in our tests), and "1 year(s)" gives 1 and 1.
actively_hiringwastrueon every row, and 363 of 1,000company_logolinks point to Internshala's placeholder image.- Weeks are turned into months, so a 1-week internship has
duration_months: 0.23, and "Few hours ago" or "Today" count as 0 days.
Stable fields for automations
These 14 fields were present on every row from all three boards in our tests. We will not rename them, so a campus-hiring sheet or an n8n flow built on them keeps working.
| Field | What it is |
|---|---|
listing_id | Internshala's listing ID. Use it as the unique key. |
employment_type | internship or job |
title | Listing title |
company | Company name |
company_logo | Logo image link, sometimes a placeholder |
actively_hiring | Internshala's "actively hiring" badge |
location | City, cities, or "Work from home" |
work_from_home | true for remote listings |
compensation_text | Pay as shown, or "Unpaid" |
is_unpaid | true when the listing is unpaid |
skills | List of skills asked for |
apply_url | Link to the listing on internshala.com |
posted_days_ago | Days since posting, approximate for "weeks ago" |
scraped_at | When the row was collected, ISO 8601 in UTC |
Internship rows also always carried duration_text and duration_months; job rows always carried experience_text.
Output examples
All the listings below come from our 30 Sep 2026 runs; anything cut is marked.
A paid internship in Mumbai
{"listing_id": "3306846","employment_type": "internship","title": "Content Programming","company": "Hungama Digital Media Entertainment Private Limited","company_logo": "https://internshala-uploads.internshala.com/logo%2F6475ccd155ff21685441745.png.webp","actively_hiring": true,"location": "Mumbai","work_from_home": false,"compensation_text": "₹ 5,000 /month","compensation_min_inr": 5000,"compensation_max_inr": 5000,"compensation_unit": "month","is_unpaid": false,"duration_text": "3 Months","duration_months": 3,"skills": ["Operations"],"description": "1. Perform quality checks on music and content videos based on defined parameters and standard","apply_url": "https://internshala.com/internship/detail/content-programming-internship-in-mumbai-at-hungama-digital-media-entertainment-private-limited1790687837","posted_text": "Few hours ago","posted_days_ago": 0,"scraped_at": "2026-09-29T23:15:05.898Z"}
An unpaid internship (no pay numbers, is_unpaid set)
{"listing_id": "3304473","employment_type": "internship","title": "Sales","company": "RSHCE Renu Sharma Health Care And Education Foundation","company_logo": "https://internshala.com/static/images/search/placeholder_logo.svg","actively_hiring": true,"location": "Gurgaon","work_from_home": false,"compensation_text": "Unpaid","is_unpaid": true,"duration_text": "3 Months","duration_months": 3,"skills": ["MS-Office", "MS-PowerPoint", "MS-Excel", "English Proficiency (Spoken)", "Hindi Proficiency (Spoken)"],"description": "Are you a dynamic and enthusiastic individual looking to kickstart your career in sales? Join","apply_url": "https://internshala.com/internship/detail/sales-internship-in-gurgaon-at-rshce-renu-sharma-health-care-and-education-foundation1790576861","posted_text": "1 day ago","posted_days_ago": 1,"scraped_at": "2026-09-29T23:15:10.444Z"}
A lump-sum internship
{"listing_id": "3295559","employment_type": "internship","title": "Human Resources (HR)","company": "Bizknowmics","location": "Chennai","work_from_home": false,"compensation_text": "₹ 15,000 lump sum","compensation_min_inr": 15000,"compensation_max_inr": 15000,"compensation_unit": "lump_sum","is_unpaid": false,"duration_text": "3 Months","duration_months": 3,"skills": ["English Proficiency (Spoken)", "English Proficiency (Written)"],"apply_url": "https://internshala.com/internship/detail/human-resources-hr-internship-in-chennai-at-bizknowmics1789982231","posted_text": "1 week ago","posted_days_ago": 7,"scraped_at": "2026-09-29T23:15:05.886Z"}
(company_logo, actively_hiring and description left out here.)
An entry-level job from a Bangalore sales search on the jobs board (compensation_text left out and skills trimmed here; the text reads as a rupee range)
{"listing_id": "3288863","employment_type": "job","title": "Marketing & Growth Executive","company": "The Third Eye Films","company_logo": "https://internshala-uploads.internshala.com/logo%2F5e2fdbe2d783b1580194786.png.webp","actively_hiring": true,"location": "Bangalore","work_from_home": false,"compensation_min_inr": 420001,"compensation_max_inr": 1000000,"compensation_unit": "year","is_unpaid": false,"experience_text": "No experience required","skills": ["Social Media Marketing", "Digital Marketing", "Sales Management", "Marketing"],"description": "We are looking for a 'Marketing & Growth Executive ' who can help us grow our own brand, gener","apply_url": "https://internshala.com/job/detail/fresher-marketing-growth-executive-job-in-bangalore-at-the-third-eye-films1789543893","posted_text": "1 week ago","posted_days_ago": 7,"scraped_at": "2026-09-29T23:19:17.961Z"}
Monitor mode, second run: the summary row
{"_type": "summary","employment_type": "internship","keywords_searched": ["data science"],"work_from_home": false,"results_requested": 15,"results_scraped": 15,"results_failed": 0,"charged_for": 0,"monitor": true,"monitor_degraded": false,"previously_seen": 15,"new_this_run": 15,"skipped_duplicates": 15,"scraped_at": "2026-09-29T23:21:15.056Z"}
The second run left out the 15 listings from the first and brought 15 new ones. We ran this test off the Apify platform, so nothing was billed and charged_for is 0; on Apify it counts the listings you paid for.
Pricing
Pay per event: a small start fee per run, then a price for each listing saved to your dataset. The listing price drops as your Apify plan goes up.
| Event | Free plan | Bronze (Starter) | Silver (Scale) | Gold and above (Business) |
|---|---|---|---|---|
listing-scraped, per listing | $0.002 | $0.00168 | $0.00142 | $0.0012 |
| Per 1,000 listings | $2.00 | $1.68 | $1.42 | $1.20 |
apify-actor-start, per run | $0.005 per GB of run memory, minimum one | same | same | same |
- Start fee: $0.005 per GB of run memory, charged once when a run starts (Apify's
apify-actor-startevent), minimum one. The default 512 MB run pays $0.005. It has applied since 14 Sep 2026. - Never charged: listings already delivered in monitor mode, the same listing found under two keywords, the
summary,infoanderrorrows, empty searches and failed pages. You do not pay separately for compute. - Spending cap: if you set a maximum cost per run in Apify, the actor stops adding listings once that budget is used, so you never receive rows you were not charged for and never pay past your cap.
- No price change is scheduled.
Worked examples: 100 internships on the Free plan cost $0.205 with the start fee. 1,000 on Gold cost $1.205.
FAQ
What is Internshala? Internshala is India's best-known site for internships and first jobs. Students and recent graduates use it to find paid internships, work-from-home roles and fresher jobs, and employers use it for campus and entry-level hiring.
How many listings can I get? Up to 1,000 per run, at about 40 per page. Each keyword stops after 40 pages. For more, split by city, category or keyword.
How fresh is the data?
Each run reads Internshala live when it starts. posted_text and posted_days_ago give each listing's age; Internshala shows it in words, so "3 weeks ago" becomes 21 days.
Do I need an Internshala account or cookies? No. The actor reads the same public listing pages any visitor sees. You only need an Apify account.
Do I need a special proxy?
No. The actor uses Apify's default proxy, which is included and enough for Internshala. Every test run behind this page used it. If you pick a proxy group your Apify account cannot use, the run switches to the default proxy instead of failing and says so in the summary's proxy_note field.
Why do some listings have no pay numbers?
They are unpaid, and is_unpaid is true. The number fields are left out instead of being set to zero, so averages stay honest.
Does includeDescription give me the full job text?
Not at the moment. Internshala's listing pages now show only a short teaser, and that is all the actor can read from them: 59 to 94 characters in our tests, with the switch on or off. The full text is on the page at apply_url.
Why do fresher-board listings say job?
Internshala labels them that way on the page, and the actor keeps its label. Tag the rows yourself if you need to tell the two job boards apart.
How does monitor mode decide what is new?
By listing ID. Each run adds the IDs it delivered to a store in your Apify account, capped at 50,000, and later runs leave those listings out. One store serves every run of this actor on your account, so different searches share it. If a run cannot reach the store, it sends all matching listings and marks the summary with monitor_degraded: true.
What happens if Internshala blocks a run?
If Internshala refuses the request outright, the run stops and adds a _type: "error" row saying why. Other failed pages are retried, and after 10 failed or empty pages in a row the run stops to limit cost. Listings already collected stay in your dataset. If anything unexpected stops a run early, the run still ends as Succeeded with a _type: "error" row that says what happened; you pay only for the listings delivered before it.
Which formats can I export?
Export from the run's Storage tab in JSON, CSV, Excel, XML, RSS or HTML, or pull it with the Apify API. In CSV and Excel, the skills list is split into numbered columns (skills/0, skills/1 and so on).
Can an AI assistant use it?
- Connector URL:
https://mcp.apify.com/?tools=themineworks/internshala-jobs-scraper. - Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code:
claude mcp add -t http internshala-jobs-scraper "https://mcp.apify.com/?tools=themineworks/internshala-jobs-scraper".
Is it legal to scrape Internshala? The actor collects only public listings posted by companies, the same pages anyone can view without logging in, and nothing about students or applicants. You are responsible for how you use the data, including Internshala's terms and data protection law such as GDPR, CCPA and India's DPDP Act. This is general information, not legal advice.
Integrations
- Google Sheets: send new internships to a shared sheet for a placement cell or careers team.
- Make, Zapier and n8n: trigger a run, then post new listings to Slack, email or Notion.
- Webhooks: receive a request on your server when a run completes.
- API: control runs and download results over HTTP, or through Apify's Python and JavaScript clients.
- MCP clients: let Claude, ChatGPT or Cursor search Internshala for you through
https://mcp.apify.com.
More from The Mine Works
Jobs and hiring
- Foundit Monster India Jobs
- Hirist Jobs Scraper
- India Jobs MCP
- Naukri Jobs Scraper
- Shine.com Jobs Scraper
- Instahyre Jobs Scraper
- Indeed Jobs Scraper
- CutShort Jobs Scraper
- Apna Jobs Scraper
- LinkedIn Jobs Scraper
- Recruiting & Jobs MCP
- Career Site Jobs Scraper
Social media and video
Leads and business directories
Marketing, SEO and reviews
Real estate
Science, health and government data
E-commerce and marketplaces
Company and business data
Food and local services
Developer and AI tools
More tools
- Tennis Match & Player Data Scraper
- Google Hotels Prices Scraper
- LandWatch Scraper
- Taobao Products Scraper 淘宝 天猫
Support
Use the Issues tab for bugs or missing fields. Ideas for new sources go to dmineworks@gmail.com.
Internshala Scraper turns India's internship and fresher-job boards into rows with stipends as numbers, durations in months and new-listing monitoring, from $1.20 per 1,000.

