# CutShort Jobs Scraper (`automly/cutshort-jobs-scraper`) Actor

Scrape CutShort tech job listings by skill and city, or from any cutshort.io job list or job link: title, company profile, salary range, experience, skills, remote policy, posted date and full description.

- **URL**: https://apify.com/automly/cutshort-jobs-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.89 / 1,000 jobs

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

## CutShort Jobs Scraper

### What is CutShort Jobs Scraper?

**CutShort Jobs Scraper** is a tool that lets you **scrape tech job listings from cutshort.io**, the Indian hiring platform for startups and tech companies: job title, company, cities, remote policy, experience range, salary range, skills, posting date, the full job description and the company's profile (website, LinkedIn, size, type, funding stage, founding year and followers). Search by skill and city, or paste CutShort links, click **Start**, and download the jobs as Excel, CSV or JSON.

- ⚡ **Complete rows:** every job comes with its full description and company profile, no extra step
- 🔎 **Wider searches:** a skill search also collects that skill's city and remote lists, with repeats removed
- 🧹 **Clean data:** salary and experience as numbers, posting dates as real dates, skills as a list
- 🔓 **No login:** no CutShort account needed
- 🛡️ **No personal contact data:** recruiter names and photos are left out

### What can CutShort Jobs Scraper do?

- **Scrape CutShort jobs by skill or role**, like `python`, `reactjs`, `datascience`, `devops` or `product manager`
- **Scrape CutShort jobs by city**: Bangalore, Pune, Hyderabad, Mumbai, Delhi NCR, Chennai and more, or Remote
- **Scrape from CutShort links**: job lists like `cutshort.io/jobs/python-jobs-in-pune` and single job pages
- **Monitor new CutShort jobs** with a schedule: jobs come newest first
- 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 CutShort?

| | | |
|---|---|---|
| 💼 Job title and link | 🏢 Company name, logo and page | 📝 Full job description |
| 📍 Cities | 🏠 Remote policy | 🎓 Experience range in years |
| 💰 Salary range | 🛠️ Skills | 📅 Posting date |
| 🌐 Company website and LinkedIn | 👥 Company size and type | 🚀 Funding stage, founded, followers |
| 🤝 Hiring agency (when an agency posts for a client) | 📜 Employment type | |

### How to scrape CutShort jobs

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **CutShort Jobs Scraper**.
3. Enter skills or roles and a city, or paste CutShort links, one per line.
4. Set how many jobs you want per search.
5. Click **Start**, then download the jobs as Excel, CSV, JSON or HTML.

### How much does it cost to scrape CutShort jobs?

You pay per job saved, and every job comes with its full description and company profile. The **Pricing** tab shows the exact price per 1,000 jobs 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 jobs 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 |
|---|---|
| **Skills or job titles** | Skills or roles to collect jobs for, one per line, like `python`, `reactjs` or `data science` |
| **City** | City, like `Bangalore` or `Pune, Hyderabad`, or `Remote`. Empty for all of India |
| **CutShort links** | Job lists (`https://cutshort.io/jobs/python-jobs-in-pune`) and single job pages (`https://cutshort.io/job/...`) |
| **Max jobs per search or link** | How many jobs to save for each search or link (default 100). Set 0 for every job |
| **Proxy configuration** | The default works for most runs |

Python jobs in Bangalore:

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

Remote React and Node.js jobs:

```json
{
  "keywords": ["reactjs", "nodejs"],
  "location": "Remote",
  "maxItems": 0
}
```

Every Python job across India (all of its city and remote lists):

```json
{
  "keywords": ["python"],
  "maxItems": 0
}
```

### ⬆️ Output

Every job is one row:

```json
{
  "jobId": "6ad07bff085ef7a9362b9906",
  "url": "https://cutshort.io/job/Java-Developer-Engineer-Mumbai-Wissen-Technology-sG4fpf3z",
  "title": "Java Developer Engineer",
  "companyName": "Wissen Technology",
  "hiringAgency": null,
  "companyUrl": "https://cutshort.io/company/wissen-technology-79-09J2iH1M",
  "companyLogo": "https://cdnv2.cutshort.io/company-static/62a727e23734df00285206ea/user_uploaded_data/logos/wissen_technology_logo.jpeg",
  "companyWebsite": "https://wissen.com",
  "companyLinkedin": "https://linkedin.com/company/wissen-technology",
  "companyDescription": "The Wissen Group was founded in the year 2000. Wissen Technology, a part of Wissen Group, was established in the year 2015...",
  "companyFounded": 2015,
  "companySize": "1000-5000",
  "companyType": "Products & Services",
  "companyStage": "Profitable",
  "companyFollowers": 49967,
  "location": "Mumbai",
  "locations": ["Mumbai"],
  "remotePolicy": "Office",
  "experienceMin": 3,
  "experienceMax": 10,
  "experienceText": "3 - 10 years",
  "salaryText": "Best in industry",
  "salaryMin": null,
  "salaryMax": null,
  "salaryCurrency": null,
  "employmentTypes": ["full time"],
  "skills": ["Java", "Spring Boot", "Microservices", "Hibernate (Java)", "Data Structures", "Multithreading"],
  "postedAt": "2026-10-15T07:08:47.319Z",
  "descriptionText": "JOB DESCRIPTION\n\nExperience: 3-10 years\n\nWissen Technology is now hiring for a Java Developer...",
  "descriptionHtml": "<p>JOB DESCRIPTION</p><p><br /></p><p>Experience: 3-10 years</p>...",
  "source": "java",
  "scrapedAt": "2026-10-15T09:48:27Z"
}
```

Salaries are a year, in rupees unless `salaryCurrency` says otherwise; when the employer shows no range ("Best in industry"), the numbers are empty. The **Overview** tab shows the main fields as a table; every field is in the downloads. The run report lists how many live jobs CutShort counts for each search and how many were saved.

### How can I use CutShort data?

- **Startup hiring research:** which skills, roles and cities Indian startups hire for, and at what salary
- **Recruitment and staffing:** startups and product companies hiring for the roles you place, with their funding stage and size
- **Lead generation for HR tech, dev tools and B2B services:** fast-growing companies hiring engineers, with their website and LinkedIn page
- **Salary benchmarking:** salary ranges by role, experience and city
- **Job boards and aggregators:** fresh tech jobs with clean, structured fields

### How many jobs can I get?

CutShort shows each job list's newest few hundred jobs to visitors who are not signed in. A skill search therefore collects the skill's all-India list and each of its city and remote lists and removes the repeats: a `python` search with no city gave about 2,700 different jobs in our tests. Skills and cities are matched to CutShort's own job lists (`React` finds `reactjs`, `Data Science` finds `datascience`); a skill with no list on CutShort is named in the run report.

### 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 |
| [Instahyre Jobs Scraper](https://apify.com/automly/instahyre-jobs-scraper) | Instahyre tech jobs with experience ranges and company profiles |
| [Foundit Jobs Scraper](https://apify.com/automly/foundit-jobs-scraper) | Foundit (Monster India) jobs with experience, salary, skills and apply links |
| [Internshala Scraper](https://apify.com/automly/internshala-scraper) | Internshala internships and fresher jobs with stipends, perks and applicants |
| [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 CutShort?

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

#### Which skills can I search?

Any skill or role CutShort has a job list for: python, java, react, nodejs, golang, data science, machine learning, devops, android, ios, flutter, frontend, full stack, product manager, sales, digital marketing and many more. Spaces, dots and capitals do not matter (`React.js`, `react js` and `reactjs` are the same). If CutShort has no list for a word, the run says so and suggests pasting a CutShort link instead.

#### Can I scrape CutShort jobs from a link I copied?

Yes. Paste a CutShort job list (`cutshort.io/jobs/...`) or a single job page (`cutshort.io/job/...`) into **CutShort links**.

#### Do I need a CutShort account?

No. The scraper gets the same public job listings anyone can see on CutShort without signing in. It does not collect recruiter names or photos or job seekers' data, and it removes email addresses and phone numbers written into job descriptions.

#### Can I connect CutShort Jobs 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 "remote Golang jobs on CutShort" and it runs `{"keywords": ["golang"], "location": "Remote"}`.

#### Is it legal to scrape CutShort?

This scraper only collects public job listings that anyone can see on CutShort 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/)

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

#### 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 CutShort Jobs Scraper saved you time, a short review on the **Reviews** tab helps other people find it.

# Actor input Schema

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

Skills or roles to collect CutShort jobs for, one per line, e.g. python, reactjs, data science, product manager.

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

City in India, e.g. Bangalore, Pune, Hyderabad, Mumbai or Delhi; Remote for remote jobs. Several: separate them with commas. Leave empty for all of India.

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

Paste cutshort.io links, e.g. job lists (cutshort.io/jobs/python-jobs-in-pune) and single jobs (cutshort.io/job/...).

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

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

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

Apify Proxy works out of the box.

## Actor input object example

```json
{
  "keywords": [
    "python"
  ],
  "location": "Bangalore",
  "maxItems": 30,
  "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 = {
    "keywords": [
        "python"
    ],
    "location": "Bangalore",
    "maxItems": 30,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/cutshort-jobs-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 = {
    "keywords": ["python"],
    "location": "Bangalore",
    "maxItems": 30,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/cutshort-jobs-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 '{
  "keywords": [
    "python"
  ],
  "location": "Bangalore",
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/cutshort-jobs-scraper --silent --output-dataset

```

## MCP server setup

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