CutShort Jobs Scraper
Pricing
from $4.00 / 1,000 job scrapeds
CutShort Jobs Scraper
Scrape public CutShort.io India tech jobs by keyword, location, skills, experience or CutShort hub and job URLs. Returns title, company, salary, skills, experience, location, posted date and description, with no login.
Pricing
from $4.00 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
20 days ago
Last modified
Categories
Share
What is CutShort Jobs Scraper?
CutShort Jobs Scraper extracts public tech jobs from CutShort.io, the Indian startup and tech hiring platform, into one dataset row per job. Each row returns the title, company with its type, size and funding stage, location, experience band, public salary text with a parsed rupee range, skills, employment type, remote policy, posted date and job link, plus the full description when you keep detail enrichment on. Recruiters, talent-market researchers, salary benchmarkers and AI agents use it to pull India tech roles by keyword, city, skill or CutShort URL with no CutShort login.
Why recruiters and researchers use it
- Startup context on every row.
companyType,companySizeandcompanyStage(for example Product, 100-500, Bootstrapped or Profitable) let you segment roles by the kind of company hiring. - Salary you can sort.
salaryTextkeeps CutShort's wording, and listing rows addsalaryMin,salaryMaxandsalaryCurrencyas numbers. - Skills as a clean list.
skillsis an array such as Flutter, Firebase and Dart, ready for skill-demand counts. - Keyword, city and skill routing.
keywords,skillsandlocationare mapped onto CutShort's public job hubs, such aspython-jobs-in-pune. - Experience and remote filters.
minExperience,maxExperienceandremoteOnlytrim the dataset to the roles you want. - Provenance per row.
hubSlug,sourceApiUrlandscrapedAtshow exactly where and when each job was read.
Best fit for this Actor
- Best fit for India-focused tech and startup roles listed on CutShort job hubs.
- Use
startUrlswhen you already have acutshort.io/jobs/...hub orcutshort.io/job/...posting link. - Use
enrichDetails: falsefor fast listing-card rows, and keep it on when you want descriptions. - When you also want roles from a broad general India job board, continue with Naukri Jobs Scraper and merge on title and company.
Example workflow: a Pune mobile-developer salary benchmark
A talent partner at a Pune product startup starts with a hiring plan for two Flutter developers. She runs keywords: ["ios developer"] and skills: ["flutter"] with location: "pune", maxExperience: 4 and enrichDetails: false. The dataset returns rows with salaryMin, salaryMax, experience, companyStage and skills. She exports them to a sheet, compares bands for bootstrapped versus funded companies, then sets the offer range. She schedules the same input monthly to watch how the band moves.
Input
{"keywords": ["frontend developer"],"location": "bangalore","maxJobs": 25,"maxPagesPerHub": 1,"maxExperience": 5,"remoteOnly": false,"enrichDetails": true}
Start from known CutShort URLs instead:
{"startUrls": ["https://cutshort.io/jobs/ios-developer-jobs"],"maxJobs": 20,"enrichDetails": false}
| Field | Type | What it controls |
|---|---|---|
keywords | array of strings | Job titles or categories such as frontend developer or python, mapped to public CutShort hubs. |
skills | array of strings | Skill keywords such as golang or devops, each mapped to a skill hub when one exists. |
location | string | India city or region such as bangalore, pune, hyderabad or delhi, combined with keywords into city hubs. |
startUrls | array of strings | Public cutshort.io/jobs/{hub} or cutshort.io/job/{job} URLs, processed first. |
maxJobs | integer | Total job rows saved across all hubs, 1 to 500. Default 50. |
maxPagesPerHub | integer | Hub pages read per hub, about 50 jobs each, 1 to 20. Default 3. |
minExperience, maxExperience | integer | Keep jobs whose experience band fits these years. |
remoteOnly | boolean | Keep only jobs CutShort marks as remote. Default false. |
enrichDetails | boolean | Read each job's detail page for the description. Default true. |
useApifyProxy | boolean | Reserved routing option; default false works for public CutShort data. |
Output
One row per job. A real listing row from the ios-developer-jobs hub:
{"jobId": "6aab8dac2712769a26489b73","title": "Flutter Developer","companyName": "Zoop.one","companyType": "Product","companySize": "100-500","companyStage": "Bootstrapped","location": "Pune","locations": ["Pune"],"experience": "1 - 3 years","experienceMin": 1,"experienceMax": 3,"salaryText": "₹6L - ₹8L / yr","salaryMin": 600000,"salaryMax": 800000,"salaryCurrency": "INR","skills": ["Flutter", "riverpod", "Firebase", "iOS App Development", "Android Development", "DART"],"employmentTypes": ["full_time"],"remoteType": "remote_not_okay","isRemote": false,"jobUrl": "https://cutshort.io/job/Flutter-Developer-Pune-Zoop-one-r8mwkhRw","postedAt": "2026-09-17T06:50:20.959Z","postedLabel": "Posted 17 Sep 2026","descriptionHtml": null,"descriptionText": null,"hubSlug": "ios-developer-jobs","sourceApiUrl": "https://cutshort.io/backend-api/webpage/jobs/ios-developer-jobs?page=1","scrapedAt": "2026-09-17T13:25:20.640Z"}
With enrichDetails on, descriptionHtml and descriptionText carry the full job description, for example a WordPress Developer role's responsibilities and requirements.
| Field | What it contains |
|---|---|
jobId, title, jobUrl | Job identity and direct CutShort link |
companyName, companyId, companyType, companySize, companyStage | Hiring company and its profile |
location, locations, remoteType, isRemote | Where the role is based and its remote policy |
experience, experienceMin, experienceMax | Experience band as text and numbers |
salaryText, salaryMin, salaryMax, salaryCurrency | Public salary text and parsed range |
skills, employmentTypes | Skill tags and role types such as full_time |
postedAt, postedLabel | Posting time |
descriptionHtml, descriptionText | Full description when enrichDetails is on |
hubSlug, sourceApiUrl, scrapedAt | Source hub, source address and collection time |
Every run also writes OUTPUT and RUN_SUMMARY to the key-value store with an outcome such as COMPLETE, PARTIAL or VALID_EMPTY.
Pricing
This Actor uses Pay per event with Apify platform usage included in the event price. You pay one Job scraped event for each validated job row saved and one Actor Start event per run. Filtered-out jobs and runs that find no matching jobs add no Job scraped events. The live Pricing tab on this page shows the current event prices.
Worked example in words: maxJobs: 25 with matching hubs saves up to 25 rows, so the run costs at most 25 Job scraped events plus one start event. maxJobs doubles as your cost ceiling.
Use with AI agents (MCP)
Connect the Actor to an MCP client through Apify MCP and ask:
Find up to 15 public CutShort jobs for backend developers in Bangalore with at most 4 years of experience. Return title, company, salaryText, skills and jobUrl, and tell me the run outcome.
Agent checklist:
- Put role words in
keywords, the city inlocation, and setmaxJobsclose to the request. - Read rows with
get-dataset-items; keepjobUrlandscrapedAtas provenance. - Read
OUTPUT.outcometo tell a complete result from a valid empty one. - Scope note: rows come from CutShort's public hubs, and cost scales with saved rows.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~cutshort-jobs-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords": ["python"], "location": "pune", "maxJobs": 10, "enrichDetails": false}'
Related job tools
| Your next step | Use | Why |
|---|---|---|
| When you want broader India job-board coverage | Naukri Jobs Scraper | Large general India listings to merge with CutShort roles |
| When you track funded startups beyond India | Wellfound Jobs Scraper | Startup jobs with company context |
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| You know the CutShort hub | Paste it into startUrls | Exactly that hub's jobs |
| Salary benchmarking | Set enrichDetails: false | Listing rows with parsed salaryMin and salaryMax |
| Reading job content | Keep enrichDetails: true | descriptionText on each row |
| Junior hiring | Set maxExperience | Only bands that start within your range |
| Remote roles | Set remoteOnly: true | Jobs CutShort marks as remote |
| A quick first look | maxPagesPerHub: 1 and a small maxJobs | A fast sample before a deeper pull |
Builder's note
I found that CutShort organizes public jobs into hubs by role, skill and city, and those hubs are stable, so I built keyword input to map onto hubs rather than guess at free-text search results. I kept detail enrichment as a switch because salary research needs speed across many listings, while job-content analysis needs the full description.
FAQ
Do I need a CutShort account?
No. The Actor reads public CutShort job hubs and job pages.
Why does a frontend search include related roles?
CutShort hubs group related titles, so a hub can include roles such as WordPress or UI developers. Filter on title or skills for a narrower set.
Can I scrape one job posting?
Yes. Put the cutshort.io/job/... URL in startUrls.
Responsible use
This Actor collects publicly visible CutShort job postings. Use the data in line with CutShort's terms, employment and privacy laws, and your organization's data policies. CutShort is a trademark of its owner; this independent Actor is not affiliated with or endorsed by CutShort.