# Internshala Scrapper (`bareezh_codes/internshala-scrapper`) Actor

This Apify actor scrapes jobs and internship listings from Internshala.com based on custom filters like job category, location, work-from-home preferences, and more.

- **URL**: https://apify.com/bareezh_codes/internshala-scrapper.md
- **Developed by:** [Salman Bareesh](https://apify.com/bareezh_codes) (community)
- **Categories:** Jobs
- **Features:** Limited permissions
- **Stats:** 559 total users, 3 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

### 🤖 Overview

This Apify actor scrapes jobs and internship listings from Internshala.com based on custom filters like job category, location, work-from-home preferences, and more. With this actor, you can easily collect detailed information about internships and use the data for research, job hunting, aggregation services, or any other purpose.

### ✅ Features

- **Customizable Search**: Filter internships by job category, location, work-from-home status, part-time availability, and minimum stipend
- **Detailed Data**: Collects comprehensive information about each internship, including job title, company name, location, stipend, duration, and more
- **Duplicate Prevention**: Built-in logic to avoid collecting duplicate internship listings
- **Robust Parsing**: Advanced parsing algorithms to handle website changes and ensure reliable data extraction
- **Pagination Support**: Automatically navigates through multiple pages to collect all relevant listings
- **Rate Limiting**: Implements respectful scraping practices to avoid overloading the target website

### 📋 Input Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `max_results` | Integer | Maximum number of internships to collect (default: 30) |
| `job_category` | String | Category of internships to search for (e.g., "Software Development", "Marketing") |
| `work_from_home` | Boolean | Whether to search for work-from-home internships |
| `location` | String | Location for internships (used if work_from_home is false) |
| `part_time` | Boolean | Whether to search for part-time internships |
| `stipend` | String | Minimum stipend requirement (leave empty if not applicable) |
| `pages_to_scrape` | Integer | Maximum number of pages to scrape (default: 20) |

### 📊 Output Data Structure

Each internship object contains the following fields (when available):

```json
{
    "title": "Software Development Intern",
    "company": "Tech Solutions Ltd",
    "location": "Delhi",
    "duration": "3 months",
    "stipend": "₹10,000 /month",
    "actively_hiring": true,
    "early_applicant": false,
    "type": "Internship",
    "posted": "Posted 2 days ago",
    "apply_link": "https://internshala.com/internship/detail/...",
    "logo_url": "https://internshala.com/uploads/logo/..."
}
```

### 💰 Usecase of This Actor

1. **Job Aggregation Websites**: Create a niche job portal focused on internships and early-career opportunities
2. **Subscription Services**: Offer premium internship alerts or reports to students and job seekers
3. **Data Analysis**: Sell insights on internship trends, popular skills, and compensation patterns
4. **College & University Services**: Partner with educational institutions to provide customized internship feeds
5. **Integration Services**: Build APIs or plugins that integrate this data with career portals, student management systems, or HR software
6. **Custom Search Tools**: Create specialized search engines for students looking for internships with specific criteria
7. **Content Marketing**: Use the data to generate articles about internship opportunities, trends, and advice
8. **Lead Generation**: Sell qualified leads to companies looking to hire interns in specific fields

# Actor input Schema

## `max_results` (type: `integer`):

Maximum number of internships to collect

## `job_category` (type: `string`):

Category of internships to search for (e.g., Software Development, Marketing)

## `work_from_home` (type: `boolean`):

Search for work from home internships

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

Location for internships (used if work from home is false)

## `part_time` (type: `boolean`):

Search for part-time internships

## `stipend` (type: `string`):

Minimum stipend requirement (leave empty if not applicable)

## `pages_to_scrape` (type: `integer`):

Maximum number of pages to scrape

## Actor input object example

```json
{
  "max_results": 30,
  "job_category": "Software Development",
  "work_from_home": true,
  "location": "Delhi",
  "part_time": false,
  "stipend": "",
  "pages_to_scrape": 20
}
```

# 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 = {
    "max_results": 30,
    "job_category": "Software Development",
    "location": "Delhi",
    "pages_to_scrape": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("bareezh_codes/internshala-scrapper").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 = {
    "max_results": 30,
    "job_category": "Software Development",
    "location": "Delhi",
    "pages_to_scrape": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("bareezh_codes/internshala-scrapper").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 '{
  "max_results": 30,
  "job_category": "Software Development",
  "location": "Delhi",
  "pages_to_scrape": 20
}' |
apify call bareezh_codes/internshala-scrapper --silent --output-dataset

```

## MCP server setup

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

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/OtrnbpfGhsUherhZ5/builds/sMhSa2vGRDRI1WH5u/openapi.json
