Shine.com Jobs Scraper | 22 Fields, Monitor Mode, No Login
Pricing
from $1.50 / 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 $1.50 / 1,000 jobs
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
99
Total users
43
Monthly active users
6 hours ago
Last modified
Categories
Share
✨ Shine.com Jobs Scraper: No Login · From $1.50/1k
What does Shine.com Jobs Scraper do?
It turns a keyword search into structured Shine.com job listings: title, company, every listed location, a normalised experience range, a normalised salary range in ₹ lakhs a year (when published), employment type, shift type, Shine's own skill tags, the full description, and a direct apply URL. Give it python developer and optionally a city, and you get clean JSON rows for every matching listing, filtered exactly the way Shine's own site filters, with no browser and no login.
Shine.com (Times Group) is one of India's larger broad market job boards, covering IT, BPO, banking, retail and manufacturing roles. This actor reads the same public JSON endpoint Shine's own search page calls to load and filter results, so location, experience band, salary band, employment type, shift type and sort order are all real input fields here, each mapped to Shine's own internal filter IDs rather than guessed.
✅ No login required | ✅ No browser, plain HTTP | ✅ Pay only for delivered jobs | ✅ MCP-ready for AI agents
Who is it for?
Recruiters and staffing agencies building an India sourcing pipeline by role, city and experience band. Compensation and HR teams benchmarking salary by experience across cities. Job board and newsletter operators who need a fresh India jobs feed without maintaining their own scraper. Anyone feeding an AI agent that needs live India job market data.
How much does it cost to scrape Shine.com jobs?
You pay per job actually delivered. Nothing else: no subscription, no per-run start fee.
| Apify plan | Price per 1,000 jobs |
|---|---|
| Free | $2.50 |
| Bronze | $2.00 |
| Silver | $1.75 |
| Gold and above | $1.50 |
The Pricing tab on this page is the single source of truth and always shows the rate for your own plan. If this table and the Pricing tab ever disagree, the Pricing tab is right.
What a real job costs. Apify's Free plan includes $5 of usage credit every month, roughly 2,000 Shine.com jobs a month at no cost to you. A single run is capped at 1,000 jobs; a full 1,000 job run costs $1.50 on Gold. A more typical 100 job daily pull costs about $0.15 on Gold.
What is never charged. Empty searches, failed pages and duplicate listings are never billed. The charge event fires only after a job record is validated and stored.
How does it work?
Shine's search page is a Next.js app, but the client itself calls a fully public, unauthenticated JSON endpoint (/api/v2/search/simple/) to load and filter results. This actor calls that same endpoint directly with no browser, no session cookies and no login wall, and (verified at build time) no anti-bot challenge of any kind.
Each keyword you supply becomes Shine's own canonical search slug (python developer becomes python-developer-jobs), and every filter you set (location, experience, salary, employment type, shift, sort order) maps to Shine's own internal filter ID and is sent as a query parameter, so Shine does the filtering server side rather than this actor guessing from HTML. Common Indian metros resolve to Shine's internal location ID for exact matching; any other city name falls back to Shine's own <slug>-in-<city> search convention, so no location is ever silently dropped. Results are paginated at 20 per page up to a 40 page ceiling per keyword (800 jobs), deduplicated by job ID, and each field (experience text, salary string, posted date) is parsed into both the raw text and a normalised numeric value.
Salary and experience are read exactly as Shine publishes them. When a recruiter hides the salary, Shine returns [Salary Hidden] and this actor reports that faithfully rather than inventing a number, the numeric salary_min_lakhs / salary_max_lakhs fields are simply absent on those records.
What input does it take?
{"searchKeywords": ["python developer"],"location": "Bangalore","experienceLevel": "3to5","salaryRange": "6to8","maxJobs": 100,"includeJobDescription": false}
| 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. |
experienceLevel | select | No | Any | lt1, 1to2, 3to5, 6to8, 9to10, 11to15, gt15, Shine's own experience bands. |
salaryRange | select | No | Any | 0to2 through gt25 (₹ lakhs a year), Shine's own 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 or freshness (newest postings first, pairs well with Monitor mode). |
maxJobs | integer | No | 5 | Maximum jobs to return across all keywords. Hard cap 1,000. |
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 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. |
What data do you get back?
One record per job, and a real run returns an array of them. Three example records below (a regular listing, a salary hidden listing and a work from home listing) are taken from a real run, not a mock up.
[{"job_id": "19181937","title": "Python Developer with ReactJS REST API AI, 2 Plus Yrs, Chennai, Pune & Bangalore","company": "WHITE HORSE MANPOWER CONSULTANCY (P) LTD","locations": ["Bangalore", "Chennai", "Pune"],"location": "Bangalore, Chennai, Pune","experience_min_years": 2,"experience_max_years": 7,"experience_text": "2 to 7 Yrs","salary_text": "Rs 4.0 - 6 Lakh/Yr","salary_min_lakhs": 4,"salary_max_lakhs": 6,"employment_type": "regular","shift_type": "full-time","skills": ["javascript", "python", "react developer", "reactjs developer", "rest api"],"description": "Job Description (JD): Hiring Python Developer with ReactJS & AI experience. Candidate should have strong hands on experience building REST APIs, integrating third party services and working in an Agile team...","apply_url": "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": "White Horse Manpower Consultancy","posted_date": "2026-08-11T18:30:05.000Z","posted_days_ago": 30,"expiry_date": "2026-10-10T00:00:00.000Z","early_applicant": false,"scraped_at": "2026-09-10T09:18:20.597Z"},{"job_id": "19204512","title": "HR Executive, Recruitment & Onboarding, 1 to 3 Yrs, Mumbai","company": "SATGURU HR SOLUTIONS PVT LTD","locations": ["Mumbai"],"location": "Mumbai","experience_min_years": 1,"experience_max_years": 3,"experience_text": "1 to 3 Yrs","salary_text": "[Salary Hidden]","employment_type": "contractual","shift_type": "part-time","skills": ["recruitment", "onboarding", "hr operations", "screening"],"description": "Job Description (JD): Looking for an HR Executive to manage end to end recruitment, candidate screening and onboarding for a growing BPO client. Prior staffing agency experience preferred...","apply_url": "https://www.shine.com/jobs/hr-executive-recruitment-onboarding-1-to-3-yrs-mumbai/satguru-hr-solutions-pvt-ltd/19204512","recruiter_name": "Satguru HR Solutions","posted_date": "2026-09-02T11:05:00.000Z","posted_days_ago": 8,"expiry_date": "2026-11-01T00:00:00.000Z","early_applicant": true,"scraped_at": "2026-09-10T09:18:21.203Z"},{"job_id": "19198765","title": "Data Analyst, SQL & Power BI, 3 to 5 Yrs, Work From Home","company": "QUANTECH ANALYTICS LLP","locations": ["Hyderabad"],"location": "Hyderabad","experience_min_years": 3,"experience_max_years": 5,"experience_text": "3 to 5 Yrs","salary_text": "Rs 6.0 - 9 Lakh/Yr","salary_min_lakhs": 6,"salary_max_lakhs": 9,"employment_type": "work-from-home","shift_type": "full-time","skills": ["sql", "power bi", "data analysis", "python", "excel"],"description": "Job Description (JD): Seeking a Data Analyst to build dashboards and reporting pipelines for a retail analytics client. Strong SQL and Power BI skills required, Python a plus...","apply_url": "https://www.shine.com/jobs/data-analyst-sql-power-bi-3-to-5-yrs-work-from-home/quantech-analytics-llp/19198765","recruiter_name": "Quantech Analytics","posted_date": "2026-08-28T07:40:00.000Z","posted_days_ago": 13,"expiry_date": "2026-10-28T00:00:00.000Z","early_applicant": false,"scraped_at": "2026-09-10T09:18:22.910Z"}]
Note the second record: when Shine hides the salary, salary_text reads [Salary Hidden] and the numeric salary_min_lakhs / salary_max_lakhs fields are simply absent, not zero.
| Field | Description |
|---|---|
job_id | Shine's internal job ID |
title | Job title |
company | Company or recruiting consultancy name |
locations | Array of every listed location |
location | Same locations, joined into one string |
experience_min_years / experience_max_years | Experience band, parsed to integers |
experience_text | Raw experience text as Shine shows it |
salary_text | Raw salary string, or [Salary Hidden] when the recruiter withheld it |
salary_min_lakhs / salary_max_lakhs | Salary band in ₹ lakhs a year, numeric, absent when hidden |
employment_type | regular, contractual, internship or work-from-home |
shift_type | full-time or part-time |
skills | Shine's own keyword tags for this listing |
description | Full or truncated job description, HTML stripped |
apply_url | Direct link to the listing on shine.com |
recruiter_name | Name of the posting recruiter or consultancy |
posted_date / posted_days_ago | When the listing went live |
expiry_date | When the listing closes |
early_applicant | Shine's own "early applicant" badge |
scraped_at | ISO timestamp when this record was captured |
Every run also ends with a final _type: "summary" record with counts for the run. It is informational only and never billed.
What are the limitations?
Worth knowing before you buy, so there are no surprises:
- Salary is frequently withheld. Many Indian recruiters and consultancies choose not to publish a number. When Shine hides it,
salary_textreads[Salary Hidden]and the numeric salary fields are simply absent rather than a guessed value. - Per keyword ceiling. Each keyword is paginated up to 40 pages (800 jobs); the run overall stops at a 1,000 job hard cap regardless of how many keywords you supply.
- Description is truncated by default.
includeJobDescription: false(the default) truncates descriptions to 500 characters. Turn it on for the full text, which increases dataset size. - Smaller towns use a URL fallback, not an exact filter. Common metros match Shine's internal location ID exactly; any other city falls back to Shine's
<slug>-in-<city>search convention, which is how Shine's own site handles the same search, but is not guaranteed to be as precise as the ID based filter for major cities. - Company field can carry the recruiter, not the employer. When a consultancy posts on behalf of a client and Shine does not separately expose the end employer,
companyreflects the poster.
What can you use it for?
Recruiter and staffing sourcing lists. Combine experienceLevel, location and employmentType to build a targeted candidate outreach or client lead list.
India hiring demand tracking. Pull a keyword daily with monitorMode: true to see only newly posted roles, without re-paying for the whole feed each run.
Salary benchmarking. salary_min_lakhs and salary_max_lakhs are numeric, so compensation by experience analysis is a groupby, not a text parsing project.
Remote and work from home tracking. Filter employmentType to work-from-home to isolate remote listings specifically, rather than guessing from free text.
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 to 8 lakhs in Bangalore right now" directly from live data.
How do I get started?
- Open the actor and add one or more
searchKeywords, for examplepython developer. - Optionally set
location,experienceLevel,salaryRange,employmentTypeorshiftType. - Set
maxJobsto control cost. - Click Start.
- Download as JSON, CSV or Excel, or pull the dataset via API or MCP.
Can I run it on a schedule?
Yes, with Apify's built in Schedules. No code and no cron server of your own.
- Run the actor once with the input you want repeated, then click Save as a task at the top of the run form. This keeps your exact input attached for every future run.
- In the Apify Console, go to Schedules in the left sidebar, then Create new.
- Name it, set your timezone, and pick a frequency: a preset (hourly, daily, weekly) or a cron expression such as
0 6 * * *for daily at 6am. - Under Actors or tasks to run, add the task you saved in step 1.
- Save. It then runs unattended, billed the same pay per job way as a manual run. Nothing is charged just for the schedule existing.
Combine with monitorMode: true to turn a schedule into a "what's new" feed: the actor remembers what it delivered last time and charges you only for genuinely new jobs on each scheduled run.
Full options, including time zones, run notifications and pausing, are in Apify's Schedules documentation.
Is scraping Shine.com jobs legal?
This actor reads only Shine.com's public job search results, the same listings any visitor can see without logging in. It does not access any authenticated area and does not attempt to bypass a login wall or paywall.
This is general information, not legal advice. If a result set contains personal data (a recruiter's name, for instance), your use of it may fall under data protection laws such as India's DPDP Act, GDPR or CCPA depending on where you and your data subjects are. You are responsible for using the output in line with Shine.com's terms and the law that applies to you.
FAQ
Does it log in to Shine.com? No. It calls the same public JSON endpoint Shine's own web app uses to load and filter results, with no browser, no cookies and no account.
Why is salary_text sometimes "[Salary Hidden]"?
Many Indian recruiters and consultancies choose not to publish a number on the listing itself. This actor reports that faithfully; the numeric salary fields are absent on those records rather than set to zero or guessed.
Why is my result count lower than maxJobs?
Each keyword is capped at 800 jobs (40 pages), and a keyword can simply run out of listings before reaching your maxJobs. Adding more keywords or removing narrow filters widens the pool.
Do I need a proxy?
No. Shine's 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 way to run this actor.
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 or scheduled runs.
Can I use Shine.com Jobs Scraper through an MCP server? Yes. It is exposed as an MCP tool, so any MCP-compatible AI assistant, Claude, ChatGPT, or your own agent, can call it directly. See "Use in Claude, ChatGPT and any MCP agent" above for the paste-ready prompt and setup.
Use in Claude, ChatGPT and 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
Things an agent can ask for once connected:
- "Find 50 Python developer jobs in Bangalore paying 6 to 8 lakhs."
- "Pull the newest work from home jobs on Shine.com for data analysts."
- "Compare average salary for 3 to 5 year and 6 to 8 year Python developers on Shine.com."
Copy this into your AI assistant
Paste the line below into ChatGPT, Claude, or any assistant connected to Apify's MCP, and it will run the job for you:
Use the Apify actor themineworks/shine-jobs-scraper to find 50 python developer jobs in Bangalore paying 6 to 8 lakhs a year. Return the results as a table.
Or call it programmatically with the Apify client:
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": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Related actors
Same India job market, different boards and different enrichment:
- Naukri Jobs Scraper: India's largest generalist job board, with salary and skills normalisation.
- CutShort Jobs Scraper: India tech and startup roles with a structured skills taxonomy.
- Indeed Jobs Scraper: the same kind of listing data across 17 country sites, including India.
- Apna Jobs Scraper: blue collar and entry level India roles across 50 categories.
- LinkedIn Company Scraper: firmographics for the companies posting on Shine.
- LinkedIn Employees Scraper: find the recruiters and hiring managers at any of those companies.
Found a bug or have a feature request? Open an issue on the actor's Apify Console page.