# Internshala Jobs Search Scraper (`stealth_mode/internshala-jobs-search-scraper`) Actor

Scrape internship listings from Internshala.com effortlessly. Collect job titles, company names, stipends, locations, skills, and more — perfect for job aggregators, career researchers, and HR analysts targeting the Indian internship market.

- **URL**: https://apify.com/stealth\_mode/internshala-jobs-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Internshala Jobs Search Scraper: Extract Internship Listings at Scale

---

### What Is Internshala?

Internshala is India's largest internship and fresher job platform, connecting students and recent graduates with companies across hundreds of cities and domains — from tech and marketing to design and finance. With thousands of listings updated daily, manually tracking opportunities at scale is impractical. The **Internshala Jobs Search Scraper** automates this, turning paginated search results into clean, structured datasets.

---

### Overview

The **Internshala Scraper** crawls internship search result pages and extracts key listing data into structured records. It is built for:

- **Job aggregators** feeding internship data into their platforms
- **Career counselors** monitoring market trends for students
- **Researchers** studying India's entry-level job market
- **Recruiters** benchmarking stipends, durations, and skill demand

It supports bulk URL input, configurable item limits, and fault-tolerant runs via failure-skipping.

---

### Input Format

```json
{
  "urls": ["https://internshala.com/internships/internship-in-bangalore/page-3/"],
  "ignore_url_failures": true,
  "max_items_per_url": 50
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | `array` | One or more Internshala search/listing page URLs. Supports city-filtered, category-filtered, or paginated URLs. Add URLs one by one or via bulk edit. |
| `max_items_per_url` | `integer` | Maximum listings to scrape per URL. Default: `20`. Increase for larger result pages. |
| `ignore_url_failures` | `boolean` | If `true`, the scraper continues running when a URL fails instead of stopping the entire run. Recommended for bulk jobs. |

> **Tip:** Use paginated URLs (e.g., `/page-2/`, `/page-3/`) to collect listings beyond the first page of results.

***

### Output Format

**Sample record:**

```json
{
  "internship_id": "3138435",
  "employment_type": "internship",
  "url": "/internship/detail/content-and-social-media-marketing-internship-in-bangalore-at-lagorii1777895703",
  "title": "Content and Social Media Marketing",
  "company_name": "Lagorii",
  "location": "Bangalore",
  "stipend": "₹ 15,000 /month",
  "duration": "3 Months",
  "description": "As a Content and Social Media Marketing intern at Lagorii, you will have the exciting opportunity to work on a variety of projects that will expand your skills in content editing, marketing campaigns, branding, Instagram marketing, video making, video editing, graphic design, and ChatGPT. Your main responsibilities will include: 1. Creating engaging and impactful content for our social media platforms 2. Developing and executing marketing campaigns to increase brand awareness and drive traffic 3. Collaborating with the team to maintain brand consistency across all channels 4. Managing and growing our Instagram account through strategic content and engagement 5. Producing high-quality videos for various marketing purposes 6. Editing videos and graphics to enhance our visual storytelling 7. Utilizing ChatGPT to improve customer interactions and enhance user experience If you are passionate about content creation, social media marketing, and building a strong brand presence, this internship is perfect for you. Join us at Lagorii and gain valuable experience in the fast-paced world of digital marketing!",
  "skills": [
    "Social Media Marketing",
    "Branding",
    "Video Editing",
    "Video Making",
    "Content Marketing",
    "Instagram Marketing",
    "Marketing Campaigns"
  ],
  "skills_hidden_count": 3,
  "posted_time": "2 weeks ago",
  "logo_url": null,
  "from_url": "https://internshala.com/internships/internship-in-bangalore/"
}
```

Each record represents one internship listing with 13 fields:

#### Identification & Discovery

| Field | Meaning |
|---|---|
| `Internship ID` | Unique internal Internshala identifier for the listing |
| `URL` | Direct link to the full internship detail page |
| `Title` | Role title as displayed (e.g., "Python Developer Intern") |
| `Employment Type` | Classification of the opportunity (e.g., internship, fresher job) |

#### Company & Location

| Field | Meaning |
|---|---|
| `Company Name` | Name of the hiring organization |
| `Logo URL` | URL of the company's logo image |
| `Location` | Work location(s) — city name or "Work from home" |

#### Role Details

| Field | Meaning |
|---|---|
| `Stipend` | Monthly compensation offered (e.g., "₹5,000/month" or "Unpaid") |
| `Duration` | Length of the internship (e.g., "3 Months", "6 Months") |
| `Description` | Summary or full description of the role and responsibilities |
| `Posted Time` | Relative or absolute time since the listing was published |

#### Skills & Requirements

| Field | Meaning |
|---|---|
| `Skills` | List of required or preferred skills shown on the listing card |
| `Skills Hidden Count` | Number of additional skills not shown in the preview (truncated on listing cards) |

***

### How to Use

1. **Find search URLs** — Go to Internshala, filter by city, category, or keyword, then copy the results page URL.
2. **Add pagination** — For more listings, append `/page-2/`, `/page-3/`, etc. to your URLs.
3. **Configure input** — Paste URLs into the `urls` array; set `max_items_per_url` as needed.
4. **Run the scraper** — Start the actor and monitor progress in the run log.
5. **Export** — Download results as JSON, CSV, or Excel.

**Common issues:**

- Ensure URLs point to **search/listing pages**, not individual job detail pages.
- If listings appear fewer than expected, the page may have fewer results than `max_items_per_url` — this is normal.
- Set `ignore_url_failures: true` for multi-URL runs to prevent one bad URL from halting the job.

***

### Use Cases & Business Value

- **Stipend benchmarking:** Compare compensation across cities, domains, or company sizes
- **Skill demand analysis:** Identify which skills appear most frequently in a given domain
- **Job board integration:** Pipe structured internship data into aggregator platforms
- **Student research tools:** Build dashboards tracking opportunities by location or field

***

### Conclusion

The **Internshala Jobs Search Scraper** delivers fast, structured access to India's most active internship marketplace. With flexible filtering via search URLs and clean output across 13 fields, it's a practical tool for anyone working with entry-level job market data at scale.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://internshala.com/internships/internship-in-bangalore/page-3/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 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 = {
    "urls": [
        "https://internshala.com/internships/internship-in-bangalore/page-3/"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/internshala-jobs-search-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 = {
    "urls": ["https://internshala.com/internships/internship-in-bangalore/page-3/"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

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

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://internshala.com/internships/internship-in-bangalore/page-3/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/internshala-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/internshala-jobs-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Internshala Jobs Search Scraper",
        "description": "Scrape internship listings from Internshala.com effortlessly. Collect job titles, company names, stipends, locations, skills, and more — perfect for job aggregators, career researchers, and HR analysts targeting the Indian internship market.",
        "version": "0.0",
        "x-build-id": "fnCz7P8JOj9klcTea"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~internshala-jobs-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-internshala-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/stealth_mode~internshala-jobs-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-internshala-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/stealth_mode~internshala-jobs-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-internshala-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the Jobs list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
