Operated by Sourcelane✓ verified
A web-scraping connector for CutShort.io that extracts India-focused tech and startup job listings and returns one structured record per job: job identifiers, title and URL, posting timestamp and activity timestamps, employment type and remote status, displayed salary band plus numeric min/max and the hidden internal salary floor (and a flag when the band is hidden), experience range, a list of required skills, full job description in plain text and original HTML, recruiter information and whether the posting is company- or agency-posted, company metadata (name, type, headcount range, funding stage, founding year, website, LinkedIn and logo), location(s), and a source-page identifier. The scraper operates by crawling CutShort listing pages and individual job pages, resolves user keywords to a fixed catalogue of role/skill pages (around 3,700 pages combined with city and remote variants), downloads that catalogue at run start to map keywords to the closest listing page, prioritizes pasted job URLs, and supports filters for remote-friendly roles and minimum salary; it does not require login.
Verified Sep 28, 12:10 AM
$0.003
per job listing
Up to 100 per call. Only pay for results returned; failed calls are refunded.
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"cutshort-jobs-scraper","params":{"startUrls":["https://cutshort.io/jobs/reactjs-jobs-in-bangalore-bengaluru"],"maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array | optional | CutShort listing pages (https://cutshort.io/jobs/reactjs-jobs-in-bangalore-bengaluru) and/or individual job pages (https://cutshort.io/job/...). Listing pages are paginated automatically. Leave empty to search by skill / role instead. |
skills | array | optional | Skill or role keywords, e.g. 'react', 'python', 'data science', 'devops', 'product manager'. Each keyword is matched to the closest CutShort listing page (the site only publishes a fixed set of role pages, not free-text search). |
city | string | optional | Optional city, e.g. 'Bangalore', 'Mumbai', 'Delhi NCR', 'Hyderabad', 'Pune', 'Chennai'. Applied to the Skills / roles search; cities without a dedicated page fall back to the all-India page filtered by location text. |
remoteOnly | boolean | optional | Keep only jobs marked remote or remote-okay; drop on-site-only jobs. |
minSalary | integer | optional | Keep only INR jobs whose displayed salary range reaches at least this many lakhs per year (e.g. 12 = ₹12 LPA). Jobs without a numeric salary or in another currency are dropped when this is set. 0 = no filter. |
maxItems | integer | optional | Maximum number of jobs to return in this run across all listing pages and job URLs. 0 = unlimited. Capped at 100 per call. |
fetchDetails | boolean | optional | Listing pages already include the full description and salary bands. Enable this to also open every job page (5 at a time) for lastActiveAt and validThrough dates. |
Each result contains
| Field | Type | Description |
|---|---|---|
jobId | string | Job Id |
title | string | Title |
url | string | Url |
company | string | Company |
companyUrl | string | Company Url |
companyType | string | Company Type |
companySize | string | Company Size |
fundingStage | null | Funding Stage |
companyFounded | integer | Company Founded |
companyWebsite | string | Company Website |
companyLinkedin | string | Company Linkedin |
companyLogo | string | Company Logo |
hiringForClient | boolean | — |
postedByCompany | string | — |
locations | array | — |
locationsText | string | — |
remoteType | string | — |
roleTypes | array | — |
salaryText | string | — |
currency | string | — |
salaryMin | integer | — |
salaryMax | integer | — |
salaryFloorInternal | integer | — |
salaryMaxInternal | integer | — |
salaryHidden | boolean | — |
experienceMin | integer | — |
experienceMax | integer | — |
skills | array | — |
description | string | — |
descriptionHtml | string | — |
recruiterName | string | — |
postedAt | string | — |
lastActiveAt | null | — |
validThrough | null | — |
sourceSlug | string | — |
scrapedAt | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “Which Series A fintechs are hiring backend engineers in London right now?”
Connect Claude
Web, desktop and mobile. Paste one URL.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://cool-puffin-608.convex.site/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://cool-puffin-608.convex.site/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://cool-puffin-608.convex.site/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://cool-puffin-608.convex.site/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://sourcelane-amber.vercel.app/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"cutshort-jobs-scraper","params":{"startUrls":["https://cutshort.io/jobs/reactjs-jobs-in-bangalore-bengaluru"],"maxItems":5},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://cool-puffin-608.convex.site/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "cutshort-jobs-scraper",
"params": {"startUrls":["https://cutshort.io/jobs/reactjs-jobs-in-bangalore-bengaluru"],"maxItems":5},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…