# Unstop Jobs & Internship Scraper (`parsebird/unstop-jobs-internships-scraper`) Actor

Scrape Unstop hackathons, jobs, internships, competitions, quizzes, scholarships, workshops, and conferences. Filter by keyword or type, export structured data as JSON, CSV, or Excel.

- **URL**: https://apify.com/parsebird/unstop-jobs-internships-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** Jobs, Developer tools, Lead generation
- **Stats:** 9 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.90 / 1,000 opportunities

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

### Unstop Jobs & Internship Scraper

Extract hackathons, jobs, internships, competitions, quizzes, scholarships, workshops, and conferences from [Unstop](https://unstop.com/) (formerly Dare2Compete) — India's largest platform for student and early-career opportunities.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Search by keyword across titles and organizers, or browse any of 8 opportunity types — get deadlines, prize money, eligibility, registration counts, and 15+ other fields per listing, ready for analysis or integration.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Apify Actor: parsebird/unstop-jobs-internships-scraper. Scrapes hackathons, jobs, internships, competitions, quizzes, scholarships, workshops, and conferences from Unstop.com. Call via ApifyClient: client.actor("parsebird/unstop-jobs-internships-scraper").call(run_input={"searchKeyword": "finance", "opportunityTypes": ["competitions", "internships", "jobs"], "maxResults": 200}). Supports searchKeyword (string, matches titles and organizers), opportunityTypes (array: hackathons/competitions/jobs/internships/quizzes/scholarships/workshops/conferences), startUrls (array of Unstop listing or single-opportunity URLs, overrides opportunityTypes), maxResults (integer, 0 = unlimited). Returns per opportunity: id, title, opportunityType, organizer, organizerType, url, deadline, deadlineText, status, prize, registrationFee, registrationCount, eligibility, mode, location, tags, bannerImageUrl, scrapedAt. Full API spec: https://apify.com/parsebird/unstop-jobs-internships-scraper/api. Get your token: https://console.apify.com/settings/integrations.
```

### What does Unstop Jobs & Internship Scraper do?

**Unstop Jobs & Internship Scraper** pulls structured opportunity data directly from Unstop's own search API — no browser rendering required, which keeps runs fast and cost-efficient. Unstop lists jobs, internships, hackathons, case competitions, quizzes, scholarships, workshops, and conferences, most aimed at students and early-career professionals across India.

You can search by keyword, browse by opportunity type, or paste Unstop URLs directly. This makes the actor a practical **Unstop API alternative** for anyone who needs Unstop's opportunity data outside the website — recruiters, campus placement teams, hackathon organizers, and researchers tracking student engagement trends.

- 🔍 **Keyword search** — matches across opportunity titles and organizer names (e.g. searching "finance" also surfaces listings from organizers like "Indexia Finance")
- 🗂️ **8 opportunity types** — Hackathons, Competitions, Jobs, Internships, Quizzes, Scholarships, Workshops, and Conferences, selectable individually or combined
- 🔗 **Direct URL support** — paste a listing URL (e.g. `unstop.com/hackathons`) to collect a whole type, or a single-opportunity URL to grab exactly one
- 💰 **Prize and fee data** — cash prize amounts (with currency symbol), and whether registration is Free or Paid
- 📊 **Registration signals** — live registration counts per opportunity, useful for gauging popularity and deadlines
- 🎯 **Eligibility and skill tags** — structured eligibility labels (Undergraduate, Fresher, Engineering Students, etc.) and required-skill tags per listing
- 🔄 **Schedule recurring runs** — track newly posted opportunities daily or weekly with [Apify scheduling](https://docs.apify.com/platform/schedules)
- 🔗 **API access and integrations** — connect to Google Sheets, Zapier, Make, webhooks, or any workflow via the [Apify API](https://docs.apify.com/api/v2)

### What data can you extract from Unstop?

| Field | Description |
|-------|-------------|
| `title` | Opportunity title |
| `opportunityType` | hackathons, competitions, jobs, internships, quizzes, scholarships, workshops, or conferences |
| `organizer` | Hosting company, institution, or organization |
| `deadline` / `deadlineText` | Registration close date (ISO 8601) and the original human-readable text (e.g. "9 days left") |
| `status` | live, closed, or upcoming |
| `prize` | Cash prize with currency symbol, when listed |
| `registrationFee` | Free or Paid |
| `registrationCount` | Number of registrations so far |
| `eligibility` | Eligibility labels (Undergraduate, Postgraduate, Fresher, etc.) |
| `mode` / `location` | online or offline, plus city/state for offline opportunities |
| `tags` | Topic and skill tags |
| `url` | Direct link to the opportunity page on Unstop |

Some fields — `prize`, `location`, and `organizerType` — are populated only when Unstop lists them for that opportunity, and are `null` otherwise. Jobs and quizzes, for example, rarely carry a cash prize.

### How to scrape Unstop

1. Go to the [Unstop Jobs & Internship Scraper](https://apify.com/parsebird/unstop-jobs-internships-scraper) page on Apify Store
2. Click **Try for free** to open the Actor console
3. Leave the defaults to collect the newest hackathons, or enter a **Search keyword** and pick one or more **Opportunity types**
4. Alternatively, paste Unstop URLs into **Start URLs** to target a specific listing page or single opportunity
5. Set **Max Results** to control how many opportunities to collect (0 = no cap)
6. Click **Start** and wait for the run to finish
7. Download your data in **JSON, CSV, Excel**, or connect via the **Apify API**

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `searchKeyword` | string | No | `""` | Word or phrase to search across opportunity titles and organizers. Leave blank to browse by type. |
| `opportunityTypes` | array | No | `["hackathons"]` | Which opportunity types to collect: hackathons, competitions, jobs, internships, quizzes, scholarships, workshops, conferences. Ignored when Start URLs are provided. |
| `startUrls` | array | No | `[]` | Unstop URLs. A listing link (e.g. `https://unstop.com/hackathons`) collects that whole type; a single-opportunity link collects just that one. Overrides `opportunityTypes` when present. |
| `maxResults` | integer | No | `100` | Cap on total opportunities returned across all inputs. Set to 0 for no cap. |

### Output example

```json
{
    "id": 1737241,
    "title": "Matrix 2026",
    "opportunityType": "hackathons",
    "organizer": "Government Engineering College (GEC), Thrissur",
    "organizerType": null,
    "url": "https://unstop.com/hackathons/matrix-2026-government-engineering-college-gec-thrissur-1737241",
    "deadline": "2026-08-25T23:59:00+05:30",
    "deadlineText": "9 days left",
    "status": "live",
    "prize": "₹15,000",
    "registrationFee": "Free",
    "registrationCount": 26,
    "eligibility": ["Undergraduate", "Postgraduate", "Engineering Students"],
    "mode": "offline",
    "location": "Thrissur, Kerala",
    "tags": ["Artificial Intelligence (AI)", "MATLAB/Python Programming", "Simulink"],
    "bannerImageUrl": "https://d8it4huxumps7.cloudfront.net/uploads/images/150x150/uploadedManual-6a80777e790d3_matrix_logo_11.jpg",
    "scrapedAt": "2026-08-16T01:22:31.809924+00:00"
}
```

Download results in JSON, HTML, CSV, or Excel.

### How to use Unstop Jobs & Internship Scraper with the API

#### Python API example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("parsebird/unstop-jobs-internships-scraper").call(run_input={
    "searchKeyword": "finance",
    "opportunityTypes": ["competitions", "internships", "jobs"],
    "maxResults": 200,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['title']} — {item['organizer']} — {item['deadlineText']}")
```

#### JavaScript API example

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

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("parsebird/unstop-jobs-internships-scraper").call({
    searchKeyword: "finance",
    opportunityTypes: ["competitions", "internships", "jobs"],
    maxResults: 200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.log(`${item.title} — ${item.organizer} — ${item.deadlineText}`);
});
```

Get your API token at [console.apify.com/settings/integrations](https://console.apify.com/settings/integrations). See the full [API documentation](https://apify.com/parsebird/unstop-jobs-internships-scraper/api) for details.

### Use cases

- **Campus recruiting** — Track live internships and entry-level jobs matching specific skills or industries to build sourcing lists for early-career hiring.
- **Hackathon and competition discovery** — Monitor newly posted hackathons and competitions by domain (AI, finance, design) for participation or sponsorship scouting.
- **Scholarship and workshop research** — Collect open scholarships and workshops with eligibility criteria for student advisory or counseling tools.
- **Market and engagement research** — Analyze registration counts, prize sizes, and organizer activity across opportunity types to study student engagement trends.
- **Lead generation** — Build structured lists of active organizers (companies, institutions) running opportunities on Unstop for B2B or partnership outreach.
- **Opportunity aggregation** — Feed structured Unstop listings into your own job board, newsletter, student portal, or internal tool.

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

| Plan | Price per event | Price per 1,000 |
|------|-----------------|------------------|
| Free | $0.0035 | **$3.50** |
| Bronze | $0.0033 | **$3.30** |
| Silver | $0.0031 | **$3.10** |
| Gold | $0.0029 | **$2.90** |

One `opportunity-scraped` event is charged each time an opportunity is collected and saved to the dataset — the price depends on your [Apify plan](https://apify.com/pricing). You only pay for opportunities actually returned.

**Cost examples (Free plan):**

| Opportunities | Cost |
|----------------|------|
| 100 (default run) | $0.35 |
| 500 | $1.75 |
| 1,000 | $3.50 |
| 5,000 | $17.50 |

Apify offers a **free trial** with $5 of platform credits — enough to scrape over 1,400 opportunities at no cost.

### Is it legal to scrape Unstop?

This Actor extracts publicly available opportunity listings from [Unstop.com](https://unstop.com/) via the same search endpoint the website itself uses to render its listing pages. It does not bypass login walls, access private accounts, or collect personal user data — only opportunity details that organizers have made public for visibility and registration. Scraping publicly available data is generally considered legal based on precedent, including the US Ninth Circuit's decision in *hiQ Labs v. LinkedIn*. Users are responsible for ensuring their use of scraped data complies with applicable laws and [Unstop's Terms of Service](https://unstop.com/terms-conditions). For more information, read Apify's blog post on [web scraping legality](https://blog.apify.com/is-web-scraping-legal/).

### FAQ

**Does the keyword search match organizer names, not just titles?**
Yes. `searchKeyword` matches across both opportunity titles and organizer names, so searching "finance" also returns listings organized by companies like "Indexia Finance" even if "finance" isn't in the title.

**Can I collect opportunities from more than one type in a single run?**
Yes. Select multiple values in `opportunityTypes` (e.g. `["hackathons", "competitions", "internships"]`) and the actor collects from all of them, up to your `maxResults` cap.

**What happens if I provide both a search keyword and Start URLs?**
Start URLs take priority — when `startUrls` is set, `opportunityTypes` is ignored. The keyword still applies when browsing by type without Start URLs.

**Can I scrape a single opportunity instead of a whole listing?**
Yes. Paste the direct URL of the opportunity (e.g. `https://unstop.com/hackathons/some-hackathon-name-123456`) into `startUrls` and the actor returns just that one record.

**Why are `prize`, `location`, or `organizerType` sometimes null?**
Unstop only populates these fields when the organizer provides that information. Jobs and quizzes rarely carry a cash prize, and online-only opportunities have no physical location.

**Can I schedule recurring runs?**
Yes. Use [Apify scheduling](https://docs.apify.com/platform/schedules) to run the Unstop Jobs & Internship Scraper daily or weekly and catch newly posted opportunities. Combine with [webhooks](https://docs.apify.com/platform/integrations/webhooks) or [integrations](https://docs.apify.com/platform/integrations) to automate your pipeline.

**Can I access the data via API?**
Yes. Every run produces a dataset accessible via the [Apify API](https://docs.apify.com/api/v2). Integrate with Python, JavaScript, Google Sheets, Zapier, Make, or any HTTP-capable tool. See the [API tab](https://apify.com/parsebird/unstop-jobs-internships-scraper/api) for code examples.

Found an issue or have a feature request? Open a ticket on the Actor's **Issues** tab in Apify Console.

### Related job & opportunity scrapers

| Actor | Description |
|-------|-------------|
| [CutShort Scraper](https://apify.com/parsebird/cutshort-jobs-scraper) | Scrape CutShort.io tech and startup jobs with salaries, skills, and funding stage |
| [Handshake Jobs Scraper](https://apify.com/parsebird/handshake-jobs-scraper) | Extract student and early-career job listings from Handshake |
| [Hiring.cafe Jobs Scraper](https://apify.com/parsebird/hiring-cafe-scraper) | Scrape job listings aggregated from dozens of ATS platforms |
| [Data Deduplicator](https://apify.com/parsebird/dataset-deduplicator) | Remove duplicate records from any Apify dataset |

Browse all ParseBird actors on the [Apify Store](https://apify.com/parsebird).

# Actor input Schema

## `searchKeyword` (type: `string`):

Word or phrase to search across opportunity titles and organizers (e.g. "coding", "finance", "Flipkart"). Leave blank to browse by type.

## `opportunityTypes` (type: `array`):

Which kinds of opportunities to collect. Pick one or more. Ignored when Start URLs are provided.

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

Paste Unstop URLs directly. A listing link (e.g. https://unstop.com/hackathons) collects that whole type; a single-opportunity link collects just that one. When present, overrides the type picker.

## `maxResults` (type: `integer`):

Cap on total opportunities returned across all inputs. Set to 0 for no cap. The last page is always kept in full, so a run may return slightly more than this number.

## Actor input object example

```json
{
  "searchKeyword": "",
  "opportunityTypes": [
    "hackathons"
  ],
  "startUrls": [],
  "maxResults": 100
}
```

# Actor output Schema

## `dataset` (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 = {
    "searchKeyword": "",
    "opportunityTypes": [
        "hackathons"
    ],
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/unstop-jobs-internships-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 = {
    "searchKeyword": "",
    "opportunityTypes": ["hackathons"],
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/unstop-jobs-internships-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 '{
  "searchKeyword": "",
  "opportunityTypes": [
    "hackathons"
  ],
  "maxResults": 100
}' |
apify call parsebird/unstop-jobs-internships-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/unstop-jobs-internships-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/netCnfVaYDlTMCZd6/builds/RsHYiaHTwQvvN2RpP/openapi.json
