Internshala Scraper avatar

Internshala Scraper

Pricing

from $0.99 / 1,000 job listings

Go to Apify Store
Internshala Scraper

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

ParseBird

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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?

FieldDescription
title / company / companyLogoUrlListing title, hiring company, and logo
locations / workModeCity list (or "Work from home"), and wfh/onsite/partial_wfh
stipend / salary{min, max, currency, period, raw} — stipend for internships, salary for jobs
durationMonths / experienceYearsInternship length in months, or years of experience required
skillsSkills required, from the listing card
badges{activelyHiring, earlyApplicant, jobOffer, womenOnly, fastResponse}, plus flat convenience copies
postedAt / postedAtIsoRelative posted-at text and a computed absolute UTC timestamp
description / perks / whoCanApply / openings / applicationDeadline / aboutCompanyFull detail-page fields, populated only when includeDetails is on (null/[] otherwise, so your schema stays stable either way)

Input parameters

ParameterTypeRequiredDefaultDescription
modestringNointernshipsinternships (paid, monthly stipend) or jobs (annual salary, fresher-friendly)
categorystringNoFree-text role/profile, e.g. Marketing, Web Development, Data Science. Empty = all
locationstringNoCity name, e.g. Mumbai, Bangalore. Ignored when workFromHome is on
workFromHomebooleanNofalseOnly fully remote listings. Disables the city filter
partTimebooleanNofalseOnly part-time roles
minStipendintegerNoInternships only. Minimum monthly stipend in ₹ (tiers: 2000/4000/6000/8000/10000)
minSalaryintegerNoJobs only. Minimum annual salary in ₹ (tiers: 100000 to 1000000+)
durationMonthsstring arrayNoInternships only. One or more of 1 month12+ months
experienceMaxintegerNoJobs only. Cap on years of experience; 0 = fresher-only, max 10
specialFiltersstring arrayNoAny of Internship with job offer, Early applicant, Fast response from employer, For women
includeDetailsbooleanNofalseFetch full description, perks, openings, and deadline. Slower but much richer
maxResultsintegerNo100Max listings to collect. 0 = all available across pagination
startUrlsstring arrayNoInternshala 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 skills field across hundreds of listings to see what's in demand

How it works

  1. Go to the Internshala Scraper page on Apify Store
  2. Click Try for free — new users get a free trial to test the Actor before paying
  3. Choose Internships or Jobs, then enter a category and/or city (or leave both empty for everything)
  4. Optionally enable work-from-home/part-time, set a minimum stipend/salary, or pick badges
  5. Toggle Include full details if you need descriptions, perks, and deadlines (slower, richer)
  6. Click Start — the Actor paginates through matching search results and normalizes every listing
  7. 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 ApifyClient
client = 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):

PlanPrice per eventPrice 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):

PlanPrice per eventPrice 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.

Other job and lead-data Actors from ParseBird: