CutShort Jobs Scraper
Pricing
from $1.80 / 1,000 results
CutShort Jobs Scraper
Scrape CutShort.io India tech & startup jobs — title, both salary bands (displayed + hidden internal floor), skills, experience, full description, recruiter name, remote type, company funding stage. Paste listing or job URLs, or search by skill + city. No login. JSON or CSV out.
Pricing
from $1.80 / 1,000 results
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape India's tech & startup hiring market from cutshort.io — full job descriptions, real salary bands (including the internal range the site doesn't display), skills, recruiter names, and company funding data. Paste listing URLs, direct job URLs, or just type skill keywords like react + bangalore. Every row comes from CutShort's own backend JSON API, so fields arrive structured and complete — no HTML guesswork.
How it works

✨ Why use this scraper?
- Pure JSON API — every field comes from CutShort's backend API, the same one the site itself renders from. No brittle CSS selectors, no HTML drift.
- Two salary bands per job — the publicly displayed range AND the internal
min/maxband, which is often wider at the bottom (e.g. displayed ₹32L–₹47L, internal floor ₹16L). - Keyword search built in — type
python,react,devops; the actor resolves keywords against CutShort's ~3,700 live listing categories and picks the right one, including-in-{city}andremote-variants. - Staffing-agency unmasking — when a recruiter posts for a hidden client ("Service Co"), the row still carries the actual posting agency in
staffingAgencyName. - Recruiter names on every row — the human who posted the job, useful for outreach and ATS enrichment.
- 50 jobs per HTTP call — listing responses arrive as complete rows, so runs are fast and cheap; no per-job fetches unless you opt into
fullDetails.
🎯 Use cases
| Who | What they do with it |
|---|---|
| Recruiters & sourcing teams | Track which companies and agencies are hiring for which stacks, with recruiter names for outreach |
| Salary-benchmark analysts | Build India tech compensation datasets from the internal (not just displayed) salary bands |
| Job aggregators | Ingest structured India startup jobs with full descriptions, skills, and remote flags |
| VC / market researchers | Monitor hiring velocity by company stage (Bootstrapped, Raised funding, Profitable) via fullDetails |
| Job seekers & career tools | Watch fresh postings for a skill + city combo with the recency filter |
📥 Supported inputs
| Input | Example | What happens |
|---|---|---|
| Listing / category URL | https://cutshort.io/jobs/python-jobs | Walks the category page by page, 50 jobs per call |
| Listing with city | https://cutshort.io/jobs/reactjs-jobs-in-bangalore-bengaluru | Same, scoped to the city |
| Direct job URL | https://cutshort.io/job/Senior-AI-Fullstack-Developer-Ande-ai-aXaLhwPI | Fetches that one job via the detail API |
| Search keyword | react, product manager, golang | Resolved to the best-matching category slug from the live sitemap |
| Keyword + city | react + city bangalore | Resolves to the city variant listing |
| Keyword + remoteOnly | golang + remoteOnly: true | Prefers CutShort's dedicated remote-golang-jobs listing and filters rows to remote_only |
Not supported: company profile pages (/companies/...), the /jobs root hub (it's a category directory, not a job list), and any URL behind a CutShort login.
🔄 How it works
- Classify every start URL: listing/category vs direct job. Keywords are resolved to category slugs against CutShort's live sitemap (~3,700 base categories, ~17,000 city variants).
- Fetch listings via the backend JSON API — each page returns 50 complete job rows (title, salary, skills, description, recruiter, company, remote type).
- Optionally deepen each job via the detail API (
fullDetails): posted date, company description, funding stage, size, founded year, tech stack, follower count. - Filter by
remoteOnlyand/orpostedWithinHourswhen set. - Push one normalized row per job — canonical core fields first, CutShort-specific extras after.
⚙️ Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | ["https://cutshort.io/jobs/python-jobs"] | CutShort listing URLs and/or direct job URLs, mixed freely |
searchQueries | array | [] | Skill/role keywords resolved to listing categories |
city | string | — | City applied to every keyword (bangalore, pune, mumbai, …) |
remoteOnly | boolean | false | Only fully-remote jobs |
fullDetails | boolean | false | One extra API call per job → posted date + full company block |
enrichEmails | boolean | false | Experimental employer-email discovery (billed per found email) |
postedWithinHours | integer | — | Keep only jobs with hiring activity in the last N hours (auto-enables fullDetails) |
maxItems | integer | 1000 | Hard cap on rows |
maxConcurrency | integer | 10 | Parallel detail-API calls |
proxy | object | direct | Not needed for CutShort; configure only to force all traffic through your proxy |
📊 Output overview
One row per job. The canonical core (identity, company, location, salary, dates, description, apply flow) always appears with the same field names as our other job-board actors, so multi-board pipelines map one column layout. CutShort-specific extras (both salary bands, experience range, recruiter, workplace type, company funding block) follow after the core.
📦 Output sample
Real row (trimmed) from a python-jobs listing run:
{"type": "job","source": "cutshort.io","jobId": "6a748e95d9c6d17c4fa75201","jobUrl": "https://cutshort.io/job/Principal-Lead-Data-Architect-AWS-Focus-Bengaluru-Bangalore-Vikash-Technologies-bCOF8H2B","title": "Principal / Lead Data Architect(AWS Focus)","companyName": "Service Co","location": "Bengaluru (Bangalore)","remote": false,"salary": { "currency": "INR", "min": 1600000, "max": 4700000, "raw": "₹32L - ₹47L / yr", "unit": "year" },"salaryDisplayedMin": 3200000,"salaryDisplayedMax": 4700000,"employmentTypes": ["full-time"],"description": "<p>Hiring for Prinipal / Lead Data Architect</p><p>Exp : 12 - 16 yrs</p>…","descriptionText": "Hiring for Prinipal / Lead Data Architect\nExp : 12 - 16 yrs\nWork Location : Bengaluru…","applyType": "internal","applyUrl": "https://cutshort.io/job/Principal-Lead-Data-Architect-AWS-Focus-Bengaluru-Bangalore-Vikash-Technologies-bCOF8H2B","shortId": "bCOF8H2B","skills": ["databricks", "Python", "Scala", "SQL", "Snowflake", "Structured Streaming", "Apache Kafka", "flink", "Amazon Web Services (AWS)"],"workplaceType": "onsite","experienceMinYears": 12,"experienceMaxYears": 16,"recruiterName": "Rishika Teja","hiringForClient": true,"staffingAgencyName": "Vikash Technologies","logoUrl": "https://cdn.cutshort.io/public/images/default_company_picture.jpg","companyProfileUrl": "https://cutshort.io/company/vikash-technologies-16-88qXblEn","scrapedAt": "2026-08-08T12:55:21.462Z"}
With fullDetails: true each row additionally carries values like:
{"postedDate": "2026-08-07T13:52:22.758Z","companyDescription": "Ande is an AI-native, full-stack TypeScript platform built on React, Node.js, GraphQL…","companyStage": "Raised funding","companySize": "0-20","companyType": "Product","companyFounded": 2023,"companyTechStack": ["NodeJS (Node.js)", "React.js", "Artificial Intelligence (AI)"],"companyFollowersCount": 1363}
🗂 Key output fields
| Group | Fields |
|---|---|
| Identity | jobId, shortId, slug, jobUrl, title, source |
| Compensation | salary.{currency,min,max,raw,unit} (internal band), salaryDisplayedMin, salaryDisplayedMax, salaryRaw |
| Role | skills[], employmentTypes[], categories[], experienceMinYears, experienceMaxYears |
| Workplace | location, locations[], remote, remoteType, workplaceType (remote / remote-allowed / onsite) |
| People | recruiterName, recruiterAvatar, hiringForClient, staffingAgencyName |
| Company | companyName, companyAlias, companyProfileUrl, logoUrl, companyWebsite, companyDomain |
| Company (fullDetails) | companyDescription, companyStage, companySize, companyType, companyFounded, companyTechStack[], companyFollowersCount, postedDate |
| Content & apply | description (HTML), descriptionText (plain), applyType, applyUrl |
| Meta | scrapedAt, fullDetailsFetched, jobValid |
❓ FAQ
Do I need a proxy? No. cutshort.io has no anti-bot protection; the actor connects directly and only falls back to a built-in residential proxy on retries. Configure the proxy input only if you want all traffic through your own.
What's the difference between salary and salaryDisplayedMin/Max?
CutShort stores an internal salary band and a "vanity" band that the site actually displays. salary.min/salary.max is the internal band — its floor is frequently lower than what candidates see. salaryDisplayedMin/Max matches the public display, and salary.raw is the display string (e.g. ₹32L - ₹47L / yr).
How do search keywords work?
The actor downloads CutShort's live listings sitemap (~3,700 categories) once per run and fuzzy-matches your keyword to the best category — react js lands on reactjs-jobs, golang + remoteOnly on remote-golang-jobs. The chosen slug is logged. If nothing matches, the keyword is skipped with a warning.
Why is companyName sometimes generic, like "Service Co"?
Staffing agencies posting for confidential clients get a masked client name. The row still includes hiringForClient: true and the real posting agency in staffingAgencyName.
How do I get posted dates?
postedDate comes from the detail API — enable fullDetails (or set postedWithinHours, which enables it automatically). It reflects the job's latest hiring-intent activity, which is CutShort's freshness signal.
How fresh is the data?
CutShort serves its API through a CDN cache of up to ~4 hours, so rows can lag the site by that much. For monitoring runs, postedWithinHours: 24 daily is a comfortable cadence.
How do I control cost?
Set maxItems. Listing runs are extremely efficient — 50 complete rows per HTTP call — and fullDetails is the only per-row fetch.
💬 Support
- For issues or feature requests, please use the Issues tab on the actor's Apify Console page.
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
🛠 Additional services
- Custom output shape, additional fields, or one-off datasets: muhamed.didovic@gmail.com
- Need a similar scraper for other job boards (Naukri, LinkedIn, Indeed, Instahyre, etc.)? Drop an email.
- For API access (no Apify fee, just a usage fee for the API): muhamed.didovic@gmail.com
🔎 Explore more scrapers
If this CutShort Jobs Scraper was useful, see other scrapers and actors at memo23's Apify profile — covering job boards, real estate, social media, and more.
🤖 For AI Agents & LLM Apps
This actor is MCP-ready: call it from AI agents via the Apify MCP server or the Apify API, using the same input schema documented above. Typical agent patterns:
- Talent-market questions — "What do senior React roles in Bangalore pay?" → run with
searchQueries: ["react"],city: "bangalore", readsalary+experienceMinYearsoff the rows. - Company research — feed a direct job URL with
fullDetails: trueto get funding stage, size, founded year, and tech stack alongside the role. - Fresh-postings watch — schedule with
postedWithinHours: 24and pipe new rows into your agent's context or a vector store.
Structured, deduplicated JSON rows with stable field names make the output safe to map directly into LLM tool responses.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by CutShort (cutshort.io) or any of its subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available job-listing data — the same backend JSON API that renders CutShort's public SEO pages. It uses no authenticated endpoints, recruiter-only features, or content behind a CutShort login. Users are responsible for ensuring their use complies with CutShort's Terms of Service, applicable data-protection law (GDPR, India's DPDP Act, CCPA, etc.), and any contractual obligations of their own organisation.
SEO Keywords
cutshort scraper, scrape cutshort, cutshort api, cutshort.io scraper, Apify cutshort, cutshort jobs scraper, india tech jobs scraper, india startup jobs api, india jobs data, bangalore tech jobs scraper, india salary benchmark data, india tech salaries dataset, indian recruitment data, india hiring trends, tech recruiter data india, india job board scraper, remote india jobs scraper, naukri alternative scraper, instahyre alternative scraper, india startup hiring data, cutshort job listings api