# Internshala Scraper (`automly/internshala-scraper`) Actor

Scrape Internshala internships and fresher jobs by keyword, city, work from home, part time, stipend or salary, or from any internshala.com link: title, company, stipend, duration, skills, perks, openings, applicants, posted date and full description.

- **URL**: https://apify.com/automly/internshala-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.33 / 1,000 job with details

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Internshala Scraper

### What is Internshala Scraper?

**Internshala Scraper** is a tool that lets you **scrape internships and fresher jobs from internshala.com**, India's largest internship platform: title, company, city or work from home, stipend or salary, duration, start date, deadline, skills, perks, openings, applicants, posting date, the full description and the company's website and profile. Search by keyword and city with Internshala's own filters, or paste any Internshala link, click **Start**, and download the listings as Excel, CSV or JSON.

- ⚡ **Fast:** 1,000 listings in about 30 seconds, or 500 listings with every detail in under a minute (our tests)
- 🔎 **Whole searches:** every listing a search matches, up to the whole site
- 💰 **Stipends as numbers:** minimum, maximum, currency and period (month, year, lump sum)
- 🔓 **No login:** no Internshala account needed
- 🛡️ **No personal contact data:** emails and phone numbers written into listings are removed

### What can Internshala Scraper do?

- **Scrape Internshala internships** for any keyword, like `python`, `marketing`, `graphic design` or `content writing`
- **Scrape Internshala fresher jobs** with the same filters
- **Scrape internships by city**: Bangalore, Delhi, Mumbai, Pune, Hyderabad, Chennai, Kolkata or anywhere in India
- **Filter** by work from home, part time, minimum stipend (internships), minimum salary and experience (jobs)
- **Scrape from Internshala links**: list pages with any filters you set on the site, and single listings
- **Monitor new internships** daily with a schedule
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from Internshala?

| | | |
|---|---|---|
| 💼 Title, link and type | 🏢 Company name, logo and website | 📝 Full description |
| 📍 Cities or work from home | 💰 Stipend or salary as numbers | ⏳ Duration |
| 🚀 Start date | ⏰ Apply-by date | 📅 Posting date |
| 🛠️ Skills required | 🎁 Perks | 👥 Openings and applicants |
| 🏷️ Labels like "Internship with job offer" | 🕒 Part time | ℹ️ About the company and hiring since |

### How to scrape Internshala

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **Internshala Scraper**.
3. Choose internships or fresher jobs, enter keywords and a city, or paste Internshala links.
4. Pick filters if you like, and set how many listings you want per search.
5. Click **Start**, then download the listings as Excel, CSV, JSON or HTML.

### How much does it cost to scrape Internshala?

You pay per listing saved, and a listing with full details (the default) costs a little more than a listing from the search page alone (with **Include full details** turned off). The **Pricing** tab shows the exact price per 1,000 listings on your Apify plan, with lower prices on paid plans. Platform usage is included, so you pay nothing else for the run.

Every Apify account gets **$5 of free usage each month**, which is plenty to try the scraper on real searches. **Max listings per search or link** keeps the cost of a run under control, and you can also set a maximum cost per run.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **Internships or jobs** | Internships (default) or fresher jobs |
| **Search keywords** | Words to search for, one per line, like `python` or `digital marketing`. Empty for every listing |
| **City** | City, like `Bangalore` or `Delhi, Mumbai` (each searched on its own). Empty for all of India |
| **Internshala links** | List pages (`https://internshala.com/internships/python-internship-in-pune/`, with any filters) and single listings |
| **Max listings per search or link** | How many listings to save for each search or link (default 100). Set 0 for every matching listing |
| **Include full details** | On by default: adds the full description, posting date, deadline, start date, perks, openings, applicants and company details |
| **Work from home only** | Only work-from-home listings |
| **Part time only** | Only part-time listings |
| **Minimum monthly stipend** | Internships paying at least this much a month, in rupees |
| **Minimum salary (lakhs a year)** | Fresher jobs paying at least this much a year |
| **Experience (years)** | Fresher jobs open to this many years of experience |
| **Proxy configuration** | The default works for most runs |

Python internships in Bangalore:

```json
{
  "listingType": "internships",
  "keywords": ["python"],
  "location": "Bangalore",
  "maxItems": 100
}
```

Paid work-from-home marketing internships, at least ₹10,000 a month:

```json
{
  "listingType": "internships",
  "keywords": ["marketing"],
  "workFromHome": true,
  "minStipend": 10000,
  "maxItems": 0
}
```

Fresher jobs paying at least 4 lakhs a year, from a list page copied from Internshala:

```json
{
  "listingType": "jobs",
  "minSalaryLakhs": 4,
  "startUrls": ["https://internshala.com/jobs/data-science-jobs/"]
}
```

### ⬆️ Output

Every listing is one row. An internship with full details:

```json
{
  "jobId": "3291339",
  "url": "https://internshala.com/internship/detail/influencer-marketing-internship-in-bangalore-at-flutch-technology-private-limited1789727196",
  "type": "internship",
  "title": "Influencer Marketing",
  "companyName": "Flutch Technology Private Limited",
  "companyLogo": null,
  "companyWebsite": "http://flutch.in/",
  "companyDescription": "Welcome to Flutch, an influencer marketing platform focused on India! Our goal at Flutch is to facilitate collaboration between brands and creators...",
  "companyHiringSince": "February 2023",
  "companyListingsPosted": 59,
  "activelyHiring": true,
  "location": "Bangalore",
  "locations": ["Bangalore"],
  "workFromHome": false,
  "partTime": false,
  "salaryText": "₹ 10,000 - 15,000 /month",
  "salaryMin": 10000,
  "salaryMax": 15000,
  "salaryCurrency": "INR",
  "salaryPeriod": "month",
  "duration": "6 Months",
  "experience": null,
  "startDate": "Immediately",
  "applyBy": "2026-10-31",
  "postedAt": "2026-09-18",
  "postedText": "3 weeks ago",
  "skills": ["Collaboration", "Data Extraction", "Digital Marketing", "Effective Communication", "MS-Excel"],
  "perks": ["Certificate", "Letter of recommendation", "Informal dress code", "5 days a week"],
  "labels": [],
  "openings": 6,
  "applicants": 54,
  "category": "Influencer Marketing",
  "industry": "Marketing",
  "employmentType": "INTERN, FULL_TIME",
  "descriptionText": "About the internship:\nKey Responsibilities\n\n1. Research and identify potential influencers across platforms like Instagram, YouTube...",
  "descriptionHtml": "<br><p>About the internship:</p>Key Responsibilities<br />...",
  "source": "internships",
  "scrapedAt": "2026-10-15T09:48:11Z"
}
```

`salaryPeriod` says whether the pay is per month (internships), per year (jobs) or a lump sum. The **Overview** tab shows the main fields as a table; every field is in the downloads. The run report lists how many listings were saved for each search and names any listing link that is no longer on Internshala.

### Which fields need full details?

| Field | From the search page | With full details |
|---|---|---|
| Title, company, cities, stipend or salary, duration, experience, skills, labels, posted | ✅ | ✅ |
| Full description (a short excerpt without full details) | | ✅ |
| Posting date, apply-by date, start date | | ✅ |
| Perks, openings, applicants, category, industry | | ✅ |
| Company website, description, hiring since | | ✅ |

### How can I use Internshala data?

- **Campus and early-career hiring research:** which roles, skills and cities have the most openings for students and freshers
- **Stipend benchmarking:** what internships pay by role, city and duration
- **Lead generation for EdTech, training and HR tools:** companies that hire interns and freshers in volume
- **Job boards, college placement cells and aggregators:** fresh internships with clean, structured fields
- **Career planning for students:** which skills employers ask for

### How many listings can I get?

Every listing a search matches, up to the whole site. If you search a city where Internshala has no listings for your keyword, the run saves nothing for that search and says so in the run report, instead of filling your data with other cities. A listing that turns up in two of your searches is saved once.

### Scrape more India jobs data

| Actor | What it gets |
|---|---|
| [Naukri Scraper](https://apify.com/automly/naukri-jobs-scraper) | Naukri.com jobs with salaries, company ratings, skills and full descriptions |
| [Foundit Jobs Scraper](https://apify.com/automly/foundit-jobs-scraper) | Foundit (Monster India) jobs with experience, salary, skills and apply links |
| [Instahyre Jobs Scraper](https://apify.com/automly/instahyre-jobs-scraper) | Instahyre tech jobs with experience ranges and company profiles |
| [CutShort Jobs Scraper](https://apify.com/automly/cutshort-jobs-scraper) | CutShort tech jobs with salary ranges, skills and company details |
| [LinkedIn Jobs Scraper](https://apify.com/automly/linkedin-jobs-scraper) | LinkedIn job listings with salaries, company info and descriptions |

### ❓FAQ

#### How much does it cost to scrape Internshala?

You pay per listing saved; the **Pricing** tab shows the price per 1,000 listings on your plan. Platform usage is included, and **Max listings per search or link** keeps every run's cost under control.

#### Can I scrape both internships and jobs?

Yes. Choose **Internships** or **Fresher jobs** in the input, or paste links of both kinds into **Internshala links**: each row says whether it is an internship or a job.

#### Can I scrape Internshala from a link I copied?

Yes. Paste any Internshala list page, with the filters you set on the site, or a single listing into **Internshala links**.

#### Do I need an Internshala account?

No. The scraper gets the same public listings anyone can see on Internshala without signing in. It does not collect students' or recruiters' personal data, and it removes email addresses and phone numbers written into listings.

#### Can I connect Internshala Scraper to other tools or AI agents?

Yes. Start runs and download results with the Apify API or the Python and JavaScript clients, send results to Make, Zapier, n8n, Google Sheets or Slack with Apify integrations and webhooks, or let AI assistants and agents run it through the Apify MCP server at [mcp.apify.com](https://mcp.apify.com). For example, ask an agent for "paid work-from-home Python internships" and it runs `{"keywords": ["python"], "workFromHome": true, "minStipend": 5000}`.

#### Is it legal to scrape Internshala?

This scraper only collects public listings that anyone can see on Internshala without signing in. Personal data may be protected by laws such as GDPR and India's data protection law, so only use the data for a legitimate reason and ask a lawyer if you are unsure. You can read more in [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

Internshala Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by Internshala.

#### Something isn't working?

Open an issue in the **Issues** tab with your input and what you expected. We read every one and usually reply within a day.

### ⭐ Your feedback

Have an idea or found a problem? Tell us in the **Issues** tab. If Internshala Scraper saved you time, a short review on the **Reviews** tab helps other people find it.

# Actor input Schema

## `listingType` (type: `string`):

What to search on Internshala: internships or fresher jobs.

## `keywords` (type: `array`):

Words to search for, one per line, e.g. python, marketing, graphic design. Leave empty for every listing in the city or filters you set.

## `location` (type: `string`):

City in India, e.g. Bangalore, Delhi, Mumbai or Pune. Several cities: separate them with commas (each is searched on its own). Leave empty for all of India.

## `startUrls` (type: `array`):

Paste internshala.com links, e.g. list pages with any filters you set on the site (internshala.com/internships/python-internship-in-pune/) and single listings (internshala.com/internship/detail/...).

## `maxItems` (type: `integer`):

How many listings to save for each keyword, city or link, e.g. 100. Set 0 for every matching listing.

## `includeDetails` (type: `boolean`):

Adds the full description, posted date, deadline, start date, perks, openings, applicants and the company's website and profile to each listing. Turn off for a faster, cheaper list.

## `workFromHome` (type: `boolean`):

Only work-from-home listings (the city is then ignored).

## `partTime` (type: `boolean`):

Only part-time listings.

## `minStipend` (type: `integer`):

Only internships paying at least this much a month, e.g. 10000.

## `minSalaryLakhs` (type: `integer`):

Only fresher jobs paying at least this many lakhs a year, e.g. 4.

## `experience` (type: `integer`):

Only fresher jobs open to this many years of experience, e.g. 1 (0 for freshers).

## `proxyConfiguration` (type: `object`):

Apify Proxy works out of the box.

## Actor input object example

```json
{
  "listingType": "internships",
  "keywords": [
    "python"
  ],
  "location": "Bangalore",
  "maxItems": 30,
  "includeDetails": true,
  "workFromHome": false,
  "partTime": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `jobs` (type: `string`):

No description

## `results` (type: `string`):

No description

## `report` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "listingType": "internships",
    "keywords": [
        "python"
    ],
    "location": "Bangalore",
    "maxItems": 30,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/internshala-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "listingType": "internships",
    "keywords": ["python"],
    "location": "Bangalore",
    "maxItems": 30,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/internshala-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "listingType": "internships",
  "keywords": [
    "python"
  ],
  "location": "Bangalore",
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/internshala-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/internshala-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/eeCWgVuKOZSoBdv8W/builds/t6MnunceeaqPRkplX/openapi.json
