# 🇮🇳 CutShort India Tech Jobs Scraper (`hipersoft/cutshort-scraper`) Actor

Scrape tech and startup job listings from CutShort.io, one of India's top hiring platforms. Search any skill or paste a CutShort jobs URL and export one clean row per opening: job title, company, location, experience, salary, skills and the job URL as JSON, CSV or Excel.

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

## Pricing

from $0.0015 / job scraped

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?

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

## 🇮🇳 CutShort India Tech Jobs Scraper

Scrape **tech and startup job listings from CutShort.io**, one of India's leading hiring platforms, as clean, structured **JSON, CSV, Excel or XML**. Search any skill or role — **Java, Python, DevOps, data science, product management, full‑stack** and hundreds more — or paste a CutShort jobs URL, and get one tidy row per opening: **job title, company, location, experience, salary, skills** and the **job URL**. Ideal for job-market research, recruiting, salary benchmarking, and building job boards or dashboards for India's tech hiring scene.

### What does the CutShort Scraper do?

This actor turns CutShort job searches and skill pages into a ready-to-use dataset. Type one or more skills or roles (for example `java`, `data science`, `devops`, `product manager`) or paste a CutShort jobs URL straight from your browser, and it collects each open role with structured fields. It works across **every skill and city** on CutShort — engineering, data, design, product, marketing and more — with no configuration.

### What data can you get?

**Per job opening:**

| Field | Description |
| --- | --- |
| `jobId` | CutShort internal job id. |
| `title` | Job title / headline (e.g. Senior Full Stack Engineer). |
| `company` | Hiring company name. |
| `location` | Primary job location, or `Remote` for remote roles. |
| `locations` | All listed locations for the role. |
| `remote` | Work mode: `Remote`, `Remote OK` or `On-site`. |
| `roleType` | Employment type (e.g. full time, internship). |
| `experience` | Required experience range, in years (e.g. `2 - 5 yrs`). |
| `experienceMin` | Minimum years of experience. |
| `experienceMax` | Maximum years of experience. |
| `salary` | Displayed annual salary range, when the company shows it. |
| `salaryCurrency` | Salary currency code (e.g. INR). |
| `salaryMin` | Minimum salary as a number, when shown. |
| `salaryMax` | Maximum salary as a number, when shown. |
| `skills` | Skills and technologies required for the role. |
| `companyLogo` | Company logo image URL. |
| `url` | Link to the job's page on CutShort. |
| `sourceUrl` | The skill or category URL the job was collected from. |
| `collectedAt` | Timestamp when the row was collected. |

### Use cases

- **Recruiting & sourcing** — build lists of open tech roles and hiring companies across India.
- **Job-market research** — map which skills, roles and cities are hiring right now.
- **Salary benchmarking** — compare posted salary ranges by role, skill and experience.
- **Job boards & aggregators** — feed fresh India tech openings into your own site or app.
- **Dashboards** — power reports and dashboards from clean, structured rows.
- **Automation** — pull fresh CutShort job data into your own pipelines on a schedule.

### How to use it

1. Add **CutShort India Tech Jobs Scraper** to your Apify account and open its input.
2. Enter one or more **Search keywords** (skills or roles), or paste **Start URLs** — CutShort jobs pages copied from your browser (e.g. `https://cutshort.io/jobs/python-jobs`).
3. Set **Max items** to cap the output.
4. Click **Run**.
5. Export the results as JSON, CSV, Excel or XML.

### Input

```json
{
  "queries": ["java"],
  "maxItems": 100
}
```

| Field | Description |
| --- | --- |
| `queries` | One or more skills or roles to search on CutShort. |
| `startUrls` | Optional. One or more CutShort.io jobs page URLs to scrape. |
| `maxItems` | Cap the number of job openings. `0` = no limit. |
| `maxConcurrency` | How many pages to fetch in parallel. |

### What you get

One flat JSON row per job opening, ready to export to CSV, Excel, JSON or XML.

```json
{
  "jobId": "6a7d9ac56a9370399b1bfc6a",
  "title": "Founding Full Stack Engineer",
  "company": "ProofofSkill",
  "location": "Remote",
  "locations": [],
  "remote": "Remote",
  "roleType": "full time",
  "experience": "2 - 5 yrs",
  "experienceMin": 2,
  "experienceMax": 5,
  "salary": "INR 4,00,000 - 7,00,000",
  "salaryCurrency": "INR",
  "salaryMin": 400000,
  "salaryMax": 700000,
  "skills": ["React.js", "TypeScript", "NextJs (Next.js)", "Software architecture"],
  "companyLogo": "https://cdnv2.cutshort.io/company-static/company_logo.png",
  "url": "https://cutshort.io/job/Founding-Full-Stack-Engineer-ProofofSkill-MhZYPd8e",
  "sourceUrl": "https://cutshort.io/jobs/software-architecture-jobs",
  "collectedAt": "2026-09-05T09:00:00.000Z"
}
```

### FAQ

**Which roles are covered?**
Any tech and startup role listed on CutShort — engineering, data, design, product, marketing and more, across every skill and Indian city. Just search a skill or paste the jobs URL from your browser.

**Does it collect candidate profiles?**
No. This actor collects **public job listings only** — the open roles that companies post on CutShort.

**In what currency are salaries returned?**
Salaries are returned in the currency the company posts (typically INR), as an annual range, whenever the company chooses to show it. Roles with a hidden salary return an empty salary.

**How many results can I get?**
Set **Max items** to any cap you like, or `0` for no limit. The actor automatically expands across related skill and city pages to gather more openings.

**What export formats are supported?**
JSON, CSV, Excel and XML — plus the Apify API and integrations for automation.

# Actor input Schema

## `queries` (type: `array`):

One or more skills or roles to search on CutShort — for example 'java', 'data science', 'devops' or 'product manager'. Each keyword collects its matching job openings and the results are combined. Leave Start URLs empty to use this.

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

Optional. One or more CutShort.io jobs page URLs to scrape — a skill/category page such as https://cutshort.io/jobs/python-jobs, a city page, or the full directory https://cutshort.io/jobs. Paste the URL straight from your browser. When set, these are scraped in addition to any keywords.

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

Maximum number of job openings to collect across all searches (0 = no limit; collect everything the searches return).

## `maxConcurrency` (type: `integer`):

How many pages to fetch in parallel. Leave at the default unless you have a reason to change it.

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

Proxy settings. Not required by default. If you experience reduced results, enable Apify Residential proxy for the most reliable access.

## Actor input object example

```json
{
  "queries": [
    "java"
  ],
  "maxItems": 100,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

The results as dataset items.

# 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 = {
    "queries": [
        "java"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/cutshort-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 = { "queries": ["java"] }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/cutshort-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 '{
  "queries": [
    "java"
  ]
}' |
apify call hipersoft/cutshort-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/cutshort-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/Hr2f6mBNnUt908fdt/builds/rk0i2aKvay3ela44W/openapi.json
