Shine.com Jobs Scraper — 22 Fields, Monitor Mode, No Login
Pricing
from $0.60 / 1,000 jobs
Shine.com Jobs Scraper — 22 Fields, Monitor Mode, No Login
Scrape live Shine.com (Times Group) job listings: title, company, salary, experience band, location, employment type, skills and full description. Filter by keyword, location, experience, salary and employment type. No login, no browser. Use it as an MCP server in Claude, ChatGPT & AI agents.
Pricing
from $0.60 / 1,000 jobs
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 hours ago
Last modified
Categories
Share
Shine.com Jobs Scraper: Salary, Experience & Skills
Scrape live Shine.com (Times Group) job listings — title, company, salary, experience band, location, employment type and full description. Filter by keyword, location, experience, salary and employment type, exactly the way Shine's own site does. No login, no browser, pay per job. Use it as an MCP server in Claude, ChatGPT & AI agents.
⚡ Part of a 90+ scraper suite with thousands of runs · no login, no cookies, no ban risk.
💸 You are only charged for delivered results — empty searches, failed pages and duplicates are never billed.
What it does
Shine.com is one of India's larger broad-market job boards (Times Group), covering IT, BPO, banking, retail and manufacturing roles. Its search page is a Next.js app, but the client itself calls a fully public, unauthenticated JSON endpoint to load and filter results — the same endpoint this actor reads directly. No browser, no session cookies, no login wall, and (verified during build) no anti-bot challenge of any kind.
That means every filter you see on shine.com — location, experience, salary band, employment type, shift type, sort order — is a plain input field here, each mapped to Shine's own internal filter IDs rather than a guess. You get one record per job: title, company, every listed location, a normalised experience range, a normalised salary range (in ₹ lakhs/year, when published), employment type, shift type, Shine's own skill/keyword tags, the description with HTML stripped, and a direct apply URL.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchKeywords | array | yes | — | One or more keywords, e.g. "python developer", "data scientist". Each is searched separately and results are merged. |
location | string | no | (all India) | City name, e.g. "Bangalore". Common Indian cities resolve to Shine's own location filter; any other name falls back to Shine's own location search so nothing is silently dropped. |
experienceLevel | select | no | Any | < 1 Year, 1 to 2 Years, 3 to 5 Years, 6 to 8 Years, 9 to 10 Years, 11 to 15 Years, > 15 Years — Shine's own experience bands. |
salaryRange | select | no | Any | Up to 2 Lakh through > 25 Lakh — Shine's own annual CTC bands. |
employmentType | select | no | Any | Regular, Contractual, Internship, Work from home. |
shiftType | select | no | Any | Full time or Part time. |
sortBy | select | no | relevance | relevance (Shine's default ranking) or freshness (newest postings first — pairs well with Monitor mode). |
maxJobs | integer | no | 5 | Maximum jobs to return across all keywords. Hard cap 1000. |
includeJobDescription | boolean | no | false | Return the full job description; otherwise truncated to 500 characters. |
monitorMode | boolean | no | false | Deliver only jobs not seen in a previous run with the same input — for scheduled daily/weekly monitoring. |
proxyConfiguration | object | no | none | Optional. Shine's search endpoint is publicly reachable with no proxy at all; only enable this for very high-volume runs. |
Example input
{"searchKeywords": ["python developer"],"location": "Bangalore","experienceLevel": "3to5","salaryRange": "6to8","maxJobs": 25,"includeJobDescription": false}
Output
One record per job. Field list and example below are taken from a real run against the live actor, not a mock-up.
| Field | Type | Example |
|---|---|---|
job_id | string | "19181937" |
title | string | "Python Developer with ReactJS REST API AI 2Plus Yrs Chennai, Pune & Blore" |
company | string | "WHITE HORSE MANPOWER CONSULTANCY (P) LTD" |
locations | array | ["Bangalore", "Chennai", "Pune"] |
location | string | "Bangalore, Chennai, Pune" |
experience_min_years | number | 2 |
experience_max_years | number | 7 |
experience_text | string | "2 to 7 Yrs" |
salary_text | string | "Rs 4.0 - 6 Lakh/Yr" |
salary_min_lakhs | number | 4 |
salary_max_lakhs | number | 6 |
employment_type | string | "regular" |
shift_type | string | "full-time" |
skills | array | ["javascript", "python", "react developer", "reactjs developer", …] |
description | string | "Job Description (JD) Hiring Python Developer with ReactJS & AI…" |
apply_url | string | "https://www.shine.com/jobs/python-developer-with-reactjs-rest-api-ai-2plus-yrs-chennai-pune-blore/white-horse-manpower-consultancy-p-ltd/19181937" |
recruiter_name | string | "Coders Brain Technology" |
posted_date | string | "2026-06-30T18:30:05.000Z" |
posted_days_ago | number | 30 |
expiry_date | string | "2026-08-29T00:00:00.000Z" |
early_applicant | boolean | false |
scraped_at | string | "2026-07-31T18:18:20.597Z" |
Example output
{"job_id": "19307153","title": "Python Developer with Rest api (banglore)","company": "G-Jobs Hiring For Coders Brain Technology","locations": ["Bangalore"],"location": "Bangalore","experience_min_years": 6,"experience_max_years": 10,"experience_text": "6 to 10 Yrs","salary_text": "[Salary Hidden]","employment_type": "regular","shift_type": "full-time","skills": ["Python", "REST API", "Automation Testing", "DevOps", "Azure", "Pytest"],"description": "Experience: 6 +Years Location: Bangalore The minimum necessary qualification is a bachelors degree in a relevant Engineering field…","apply_url": "https://www.shine.com/jobs/python-developer-with-rest-api-banglore/coders-brain-technology/19307153","recruiter_name": "Coders Brain Technology","posted_date": "2026-07-26T08:26:14.000Z","posted_days_ago": 5,"expiry_date": "2026-09-24T08:26:12.000Z","early_applicant": false,"scraped_at": "2026-07-31T18:18:20.704Z"}
Use cases
- India hiring-demand tracking — pull a keyword daily with Monitor mode on to see only newly posted roles, without re-paying for the whole feed each run.
- Salary benchmarking —
salary_min_lakhs/salary_max_lakhsare numeric, so compensation-by-experience analysis is a groupby, not a text-parsing project. - Recruiter sourcing lists — combine
experienceLevel+location+employmentTypeto build a targeted candidate-outreach or client-lead list. - Remote/WFH tracking — filter
employmentTypetowork-from-hometo isolate remote listings specifically, rather than guessing from free text. - Skills-demand research — the
skillsarray reflects Shine's own keyword tags per listing, so you can count technology demand without NLP over the description. - Feeding an AI agent or job-alert bot — call this actor as an MCP tool so an agent can answer "what Python jobs pay 6-8 LPA in Bangalore right now" directly from live data.
FAQ
Is this scraping HTML?
No. It calls the same public JSON endpoint (/api/v2/search/simple/) Shine's own web app calls to
load and filter results client-side — no browser, and it runs in a few seconds per keyword rather
than the tens of seconds a Playwright-based scraper needs.
Do I need a proxy?
No. The endpoint was verified reachable with no User-Agent, no cookies and no proxy at all.
proxyConfiguration is exposed for very high-volume users who want IP rotation, but leaving it
unset is the normal, supported way to run this actor.
Why is salary_text sometimes "[Salary Hidden]"?
Many Indian recruiters and consultancies choose not to publish a number on the listing itself.
When Shine hides it, this actor reports that faithfully rather than inventing a figure — the
numeric salary_min_lakhs/salary_max_lakhs fields are simply absent on those records.
How does location filtering work for cities you don't list?
Common Indian metros map to Shine's own internal location IDs for exact filtering. Any other city
name (a smaller town, for instance) falls back to Shine's own <keyword>-jobs-in-<city> search
convention, so no location input is ever silently ignored — it is simply matched the way Shine's
own site would match a manual search for that city.
Can I get only the newest postings?
Yes — set sortBy to freshness, and turn on monitorMode if you want the actor to remember
what it already delivered and charge you only for genuinely new listings on repeat/scheduled runs.
Billing
Pay per event: one job-scraped event per delivered record, charged only after the record is
validated and stored. Empty results, failed pages and duplicates are never charged. Store-plan
discounts apply automatically for Apify Bronze/Silver/Gold+ users.
Run on a schedule
In Apify Console: open this Actor → Schedules → Add schedule → pick a cadence (e.g. daily)
→ Save. Combined with monitorMode: true, each scheduled run delivers only jobs not seen in
the previous run, so you pay for new postings, not the whole feed every time.
Use in Claude, ChatGPT & any MCP agent
This actor runs as an MCP server, so an AI agent can call it directly:
https://mcp.apify.com/?tools=themineworks/shine-jobs-scraper
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("themineworks/shine-jobs-scraper").call(run_input={"searchKeywords": ["python developer"],"location": "Bangalore","maxJobs": 25,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Legal and compliance
This actor collects only publicly available information — the same data any visitor can see on shine.com without logging in. It does not access private or authenticated areas, does not attempt to bypass any paywall or login wall, and collects no personal data beyond what the source already publishes openly. You are responsible for using the output in line with Shine.com's terms and with the data protection law that applies to you.
MIT © The Mine Works