Internshala Scraper โ€” Internships & Jobs, 24 Fields avatar

Internshala Scraper โ€” Internships & Jobs, 24 Fields

Pricing

from $1.20 / 1,000 listing scrapeds

Go to Apify Store
Internshala Scraper โ€” Internships & Jobs, 24 Fields

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

๐ŸŽ“ Internshala Scraper: Internships, Fresher Jobs & Stipends

Overview

Internshala is India's dominant internship and early-career job platform โ€” the first stop for students and freshers looking for a paid internship, a work-from-home gig, or an entry-level job. This actor turns any Internshala search into structured data: title, company, stipend or salary, duration, required skills, location, and posting date, delivered as clean JSON rows.

Search by free-text keyword (digital marketing, python), category (computer-science, content-writing), city, or work-from-home โ€” filter by minimum stipend and maximum duration โ€” and get every matching listing without touching Internshala's HTML. No login, no captcha, no browser: the actor calls the same JSON endpoint Internshala's own search page uses internally, so results are exactly what a real visitor would see.

โœ… No login required | โœ… No browser / anti-bot friction | โœ… Pay per listing returned | โœ… MCP-ready for AI agents

Features

Keyword & category search. Query any role, skill, or Internshala profile category โ€” each keyword is searched separately and results are merged and deduplicated.

Three listing boards. Internships, regular jobs, and fresher jobs โ€” Internshala runs all three on the same search infrastructure, and this actor covers all three via the employmentType input.

Real filters, server-side. Location, work-from-home, part-time, minimum stipend/salary, and maximum internship duration are all applied by Internshala's own servers, not filtered after the fact from a partial scrape.

Stipend & salary parsed to numbers. Raw strings like โ‚น 10,000 - 15,000 /month or Unpaid are parsed into compensation_min_inr, compensation_max_inr, compensation_unit, and is_unpaid so you can sort and filter compensation directly.

Deep pagination. Internshala's paginated result set is followed to the end within your maxResults budget, with duplicate-listing and stalled-page protection so a run never spins on a repeating page.

How it works

Internshala's own search page loads results through a plain JSON AJAX endpoint (/internships_ajax/, /jobs_ajax/, /fresher-jobs_ajax/) that returns an HTML fragment of listing cards plus pagination flags. This actor calls that same endpoint directly with a plain HTTP GET โ€” no browser, no session warm-up, no residential proxy required, because no anti-bot challenge was found anywhere in the search or pagination flow during testing.

Filters compose as URL path segments exactly the way Internshala's own front-end builds them (verified against the site's own search JavaScript): keywords-<term>, category-<slug>, location-<city>, work_from_home-true, part_time-true, stipend-<amount>, duration-<months>. Any combination can be requested at once, and the actor walks pages until Internshala reports is_last_page: true or your maxResults budget is reached, whichever comes first.

๐Ÿงพ Input configuration

{
"searchKeywords": ["digital marketing"],
"employmentType": "internship",
"location": "bangalore",
"workFromHome": false,
"stipendMin": 5000,
"durationMaxMonths": 3,
"maxResults": 100
}
FieldDescription
searchKeywordsArray of free-text keywords. Leave empty to browse by category/location/filters only.
employmentTypeinternship (default), job, or fresher_job โ€” which Internshala board to search.
categoryInternshala profile/category slug, e.g. computer-science, digital-marketing, content-writing.
locationCity name, e.g. bangalore, mumbai. Leave blank for all locations.
workFromHomeOnly return remote / work-from-home listings.
partTimeOnly return part-time listings.
stipendMinMinimum monthly stipend (internships) or annual salary (jobs) in INR.
durationMaxMonthsInternships only โ€” cap on internship duration in months.
maxResultsMaximum listings to return across all keywords. Hard cap 1000.
includeDescriptionInclude the full description text (default: truncated to 400 characters).
monitorModeDeliver only listings not seen in a previous run โ€” see below.
proxyConfigurationApify proxy config. Default Apify proxy works; no residential proxy needed.

๐Ÿ“ค Output format

{
"listing_id": "3226637",
"employment_type": "internship",
"title": "Digital Marketing",
"company": "Sanyukt Organisation",
"actively_hiring": true,
"location": "Work from home",
"work_from_home": true,
"compensation_text": "โ‚น 9,000 - 10,000 /month",
"compensation_min_inr": 9000,
"compensation_max_inr": 10000,
"compensation_unit": "month",
"is_unpaid": false,
"duration_text": "6 Months",
"duration_months": 6,
"skills": ["Social Media Marketing", "Digital Marketing", "Email Marketing"],
"description": "1. Manage and actively contribute to social media platforms...",
"apply_url": "https://internshala.com/internship/detail/work-from-home-digital-marketing-internship-at-sanyukt-organisation1784697392",
"posted_text": "1 week ago",
"posted_days_ago": 7,
"scraped_at": "2026-07-31T18:12:02.910Z"
}

Every record contains these fields:

FieldDescription
๐Ÿ†” listing_idInternshala internal listing ID
๐Ÿท๏ธ employment_typeinternship, job, or fresher_job
๐Ÿ“Œ titleListing title
๐Ÿข companyCompany name
๐Ÿ–ผ๏ธ company_logoCompany logo image URL
๐Ÿ”ฅ actively_hiringWhether Internshala shows the "Actively hiring" badge
๐Ÿ“ locationLocation text (city name(s) or "Work from home")
๐Ÿ  work_from_homeTrue if the listing is remote
๐Ÿ’ฐ compensation_textRaw stipend/salary string from Internshala
๐Ÿ’ต compensation_min_inr / compensation_max_inrParsed numeric stipend/salary
๐Ÿ”– compensation_unitmonth (internship stipend), year (job salary), or lump_sum
๐Ÿšซ is_unpaidTrue if explicitly marked Unpaid
โณ duration_text / duration_monthsInternship duration, raw and normalised (internships only)
๐Ÿ“ˆ experience_text / experience_min_years / experience_max_yearsExperience requirement (jobs only)
๐Ÿ› ๏ธ skillsRequired skills as an array
๐Ÿ“ descriptionListing description (truncated to 400 chars unless includeDescription: true)
๐Ÿ”— apply_urlURL to the Internshala listing detail / apply page
๐Ÿ—“๏ธ posted_text / posted_days_agoRaw and parsed posting recency

A minority of remote/global listings on Internshala are quoted in USD rather than INR โ€” compensation_text always carries the raw string with its currency symbol, so check it when compensation_unit alone isn't enough.

One more row at the end of every run: every run also ends with a final _type: "info" record โ€” informational only, never billed โ€” with a nudge on scheduling and Store reviews.

๐Ÿ’ผ Common use cases

Internship & fresher-job market monitoring Track how many internships or fresher roles open in a category or city each week, and what stipend range they cluster around.

Stipend/salary benchmarking Pull every work-from-home digital marketing internship and compute the median and range of stipends offered.

Talent sourcing for campus/early-career hiring Feed listings into a sourcing tool to see what competitors are offering freshers in a given function.

Career-content & jobs-board feeds Power a niche "internships this week" digest or enrich an existing student jobs board with fresh listings and normalised stipend data.

๐Ÿš€ Getting started

  1. Open the actor and add one or more search keywords (digital marketing, python), or leave blank and use category/location filters only.
  2. Pick employmentType: internships, jobs, or fresher jobs.
  3. Optionally set category, city, work-from-home, part-time, minimum stipend, and max duration.
  4. Set max results.
  5. Click Start. Download as JSON, CSV, or Excel, or pull the dataset via API or MCP.

๐Ÿ” Run on a schedule

Turn this from a one-off pull into a standing feed with Apify's built-in Schedules โ€” no code, no cron server of your own.

  1. Run the actor once with the input you want repeated, then click Save as a task โ€” this keeps your exact input attached for every future run.
  2. In the Apify Console, go to Schedules โ†’ Create new.
  3. Name it, set your timezone, and pick a frequency โ€” a preset (hourly/daily/weekly) or a custom cron expression.
  4. Under Actors or tasks to run, add the task you saved in step 1.
  5. Save. From then on it runs unattended, billed the same pay-per-listing way as a manual run.

Monitor mode โ€” pay only for NEW listings

Set monitorMode: true and this actor remembers what it delivered last time (keyed on listing_id) โ€” on the next scheduled run, only genuinely new listings are pushed and charged.

{ "monitorMode": true }

Pairs directly with Run on a schedule above: save a task with monitorMode: true, attach it to a daily schedule, and you have a standing "what's new" feed with no duplicate charges. The summary row reports new_this_run and skipped_duplicates. First run establishes the baseline; every run after that is incremental.

FAQ

Does it log in to Internshala? No. The actor works from public search endpoints only. No account, no cookies, no captcha, no ban risk.

Why do some listings show Unpaid with no numeric stipend? Internshala allows unpaid internships. is_unpaid is set to true and compensation_min_inr/compensation_max_inr are omitted rather than set to zero, so they don't skew any average you compute.

I set stipendMin but I still got some Unpaid listings โ€” is that a bug? No โ€” this matches Internshala's own filter behaviour. Their minimum-stipend filter is inclusive of Unpaid listings, not a strict floor (verified directly against internshala.com). Filter is_unpaid / check compensation_min_inr in the output if you need a strict "paid only, above X" cut.

Can I search jobs and fresher jobs, not just internships? Yes โ€” set employmentType to job or fresher_job. Field coverage differs slightly: job/fresher_job listings carry experience_text/experience_min_years/experience_max_years instead of duration_text/duration_months.

How do I get more than one page of results? Set maxResults to whatever budget you want. The actor follows Internshala's paginated result set until the budget is reached or Internshala reports the last page.

Can I use it in an AI agent? Yes. It's exposed as an MCP tool. See below.

Use in Claude, ChatGPT & any MCP agent

https://mcp.apify.com/?tools=themineworks/internshala-jobs-scraper

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/internshala-jobs-scraper').call({
searchKeywords: ['digital marketing'],
workFromHome: true,
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

๐Ÿ› ๏ธ Complete your hiring intelligence pipeline

Found the roles. Now enrich and act on them with the rest of the suite:

Questions or need a custom field set? Reach out through the Apify profile.