CutShort Jobs Scraper avatar

CutShort Jobs Scraper

Pricing

from $1.80 / 1,000 results

Go to Apify Store
CutShort Jobs Scraper

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

3 days ago

Last modified

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

How CutShort Jobs Scraper 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/max band, 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} and remote- 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

WhoWhat they do with it
Recruiters & sourcing teamsTrack which companies and agencies are hiring for which stacks, with recruiter names for outreach
Salary-benchmark analystsBuild India tech compensation datasets from the internal (not just displayed) salary bands
Job aggregatorsIngest structured India startup jobs with full descriptions, skills, and remote flags
VC / market researchersMonitor hiring velocity by company stage (Bootstrapped, Raised funding, Profitable) via fullDetails
Job seekers & career toolsWatch fresh postings for a skill + city combo with the recency filter

📥 Supported inputs

InputExampleWhat happens
Listing / category URLhttps://cutshort.io/jobs/python-jobsWalks the category page by page, 50 jobs per call
Listing with cityhttps://cutshort.io/jobs/reactjs-jobs-in-bangalore-bengaluruSame, scoped to the city
Direct job URLhttps://cutshort.io/job/Senior-AI-Fullstack-Developer-Ande-ai-aXaLhwPIFetches that one job via the detail API
Search keywordreact, product manager, golangResolved to the best-matching category slug from the live sitemap
Keyword + cityreact + city bangaloreResolves to the city variant listing
Keyword + remoteOnlygolang + remoteOnly: truePrefers 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

  1. 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).
  2. Fetch listings via the backend JSON API — each page returns 50 complete job rows (title, salary, skills, description, recruiter, company, remote type).
  3. Optionally deepen each job via the detail API (fullDetails): posted date, company description, funding stage, size, founded year, tech stack, follower count.
  4. Filter by remoteOnly and/or postedWithinHours when set.
  5. Push one normalized row per job — canonical core fields first, CutShort-specific extras after.

⚙️ Input parameters

FieldTypeDefaultDescription
startUrlsarray["https://cutshort.io/jobs/python-jobs"]CutShort listing URLs and/or direct job URLs, mixed freely
searchQueriesarray[]Skill/role keywords resolved to listing categories
citystringCity applied to every keyword (bangalore, pune, mumbai, …)
remoteOnlybooleanfalseOnly fully-remote jobs
fullDetailsbooleanfalseOne extra API call per job → posted date + full company block
enrichEmailsbooleanfalseExperimental employer-email discovery (billed per found email)
postedWithinHoursintegerKeep only jobs with hiring activity in the last N hours (auto-enables fullDetails)
maxItemsinteger1000Hard cap on rows
maxConcurrencyinteger10Parallel detail-API calls
proxyobjectdirectNot 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

GroupFields
IdentityjobId, shortId, slug, jobUrl, title, source
Compensationsalary.{currency,min,max,raw,unit} (internal band), salaryDisplayedMin, salaryDisplayedMax, salaryRaw
Roleskills[], employmentTypes[], categories[], experienceMinYears, experienceMaxYears
Workplacelocation, locations[], remote, remoteType, workplaceType (remote / remote-allowed / onsite)
PeoplerecruiterName, recruiterAvatar, hiringForClient, staffingAgencyName
CompanycompanyName, companyAlias, companyProfileUrl, logoUrl, companyWebsite, companyDomain
Company (fullDetails)companyDescription, companyStage, companySize, companyType, companyFounded, companyTechStack[], companyFollowersCount, postedDate
Content & applydescription (HTML), descriptionText (plain), applyType, applyUrl
MetascrapedAt, 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

🛠 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", read salary + experienceMinYears off the rows.
  • Company research — feed a direct job URL with fullDetails: true to get funding stage, size, founded year, and tech stack alongside the role.
  • Fresh-postings watch — schedule with postedWithinHours: 24 and 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