Shine Jobs Scraper
Pricing
from $0.84 / 1,000 item extracteds
Shine Jobs Scraper
Search public Shine.com India vacancies by role, city or job URL. Export stable job IDs, employers, titles, locations, publication dates, full descriptions and canonical URLs; salary only when published.
Pricing
from $0.84 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Search public Shine.com India vacancies by role and city, or supply Shine search/job URLs. Each record includes a stable job ID, employer, title, location, posting date, full published description and canonical URL. Salary is included only when Shine publishes one.
Who is this for?
Recruiting analysts can build a current vacancy feed; hiring-market researchers can compare snapshots by jobId; data teams can load the dataset into a spreadsheet or warehouse. This Actor reads currently public listings, not historical postings.
Why use this Actor?
The output is one normalized row per job, with a numeric ID that survives result ranking changes and a full description from the job's public structured data. Search and direct-job inputs share one parser. No Shine login or browser is required for the supported public pages.
Getting started
- Enter
data analystas the search phrase, optionally addingBangaloreas city, or supply a public Shine search/job URL. - Set the maximum vacancies. A small limit such as 10 is a useful first run.
- Run the Actor and open the default dataset to download JSON, CSV or Excel.
- For repeated monitoring, schedule runs and compare
jobIdvalues across datasets in your own workflow.
Input parameters
| Input | Use |
|---|---|
query | A role phrase, e.g. data analyst; creates a public Shine job-search URL. |
location | Optional Indian city; requires query. |
startUrls | Up to 30 Shine /job-search/ or /jobs/ pages, including direct vacancy URLs. |
maxItems | Maximum unique complete jobs, default 10, range 1–1000. |
Choose a query or URLs, not both; a city filter is available only for query searches. Search pages paginate until the limit or the last page; duplicates are omitted by job ID. A job URL can be supplied on its own. Only https://www.shine.com job/search URLs are accepted.
Output fields
| Field | Meaning |
|---|---|
jobId | Stable numeric Shine job identifier. |
title, employer, location | Public role, organization and location. |
postedAt | Source publication timestamp, including time zone when provided. |
description | Full publicly exposed description, not a search snippet. |
url | Canonical Shine job URL without tracking parameters. |
salary | Source-disclosed salary and period; absent when undisclosed. |
scrapedAt | Observation timestamp for snapshot comparisons. |
Sample vacancy
A real sampled listing returned jobId: "19588199", title: "Data Analyst", employer: "QRN Services", location: "Bangalore, Karnataka", and a public INR yearly salary. Listings change; that ID may disappear later.
How much does it cost to export Shine vacancies?
This Actor charges $0.001 once per run (start) and one item event for each emitted vacancy. At BRONZE ($0.0014/item), 1, 10 and 100 jobs cost an estimated $0.0024, $0.015 and $0.141 respectively, including the start event. FREE is $0.00161/item; SILVER $0.001092/item; GOLD, PLATINUM and DIAMOND $0.00084/item. Tiers depend on qualifying monthly Store spend, not on how many jobs you request from this Actor. An empty search incurs no item events but still incurs the start event. These are price estimates, not guaranteed invoices; Apify applies its current account tier, applicable billing rules and any adjustments, refunds, disputes, taxes or corrections. Runtime infrastructure cost is borne by the publisher, not an extra source-service bill to the user.
Monitoring and integrations
Schedule a run in Apify, export its dataset to Google Sheets or a warehouse through an integration, and compare IDs with the previous run. A changed description under the same ID indicates a changed posting; a new ID indicates a newly observed listing. The Actor does not maintain a cross-run history or send alerts itself. To avoid treating a vanished job as definitely closed, confirm source availability independently.
API usage
The API can run the Actor and return default dataset items. Keep your token in an environment variable; never commit it.
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~shine-com-public-vacancies/run-sync-get-dataset-items' \-H "Authorization: Bearer $APIFY_TOKEN" -H 'Content-Type: application/json' \-d '{"query":"data analyst","maxItems":5}'
JavaScript and Python clients
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/shine-com-public-vacancies').call({ query: 'data analyst', maxItems: 5 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/shine-com-public-vacancies').call(run_input={'query': 'data analyst', 'maxItems': 5})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
MCP use
After the Actor is available in the Store, connect an Apify MCP client using https://mcp.apify.com?tools=automation-lab/shine-com-public-vacancies. In Claude Code: claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/shine-com-public-vacancies". In an editor's remote MCP JSON config, set {"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/shine-com-public-vacancies"}}}. Example prompt: “Find five public Shine data analyst vacancies and summarize their published locations.”
Desktop and editor MCP setup
For Claude Desktop, add {"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/shine-com-public-vacancies"}}} to the desktop MCP settings. For Cursor, add the same apify server under MCP settings; for VS Code, configure the same remote HTTP MCP URL in your workspace MCP server list. Supply your Apify credentials through the client's supported authorization flow, not in the prompt.
FAQ
Does the Actor alert me when a vacancy changes? No. Schedule a run and compare the resulting datasets externally.
Why was a vacancy missing? It may have expired, fallen outside the capped search results, or temporarily been unavailable. Check the live source URL before treating absence as closure.
Can I use a Shine URL directly? Yes, pass one or more public /jobs/ or /job-search/ URLs in startUrls instead of a query.
Limits and troubleshooting
Shine controls availability and may change its page markup. This Actor requires a visible search result with links and detail pages containing JobPosting structured data; it fails with an error rather than silently claiming a successful empty run on an unrecognized challenge. Some vacancies have no salary. The maximum of 100 pages per run prevents runaway pagination. If a URL returns not found, open it in a browser and use a current public job or search URL. If a result has disappeared between search and detail, try a fresh search later.
Changes to search results
Search results can reorder between runs. Use jobId as the comparison key and retain scrapedAt to distinguish when each dataset observed the listing. A missing result within a capped batch is not proof that the listing was removed.
Legality and responsible use
Read public listings responsibly. Respect Shine's terms, applicable privacy law and rate limits; avoid building profiles about individuals. The Actor does not bypass a login, CAPTCHA or private application flow. An external application process, when available, happens on the source site.
Data handling and dependencies
The Actor fetches publicly accessible Shine search and job pages, then writes vacancy fields and observation times to the run's default Apify dataset. Input search terms and submitted URLs are used only to fetch the requested pages. The Actor does not request a Shine account, read applicant profiles, use AI, or send records to a separate enrichment service. Shine controls the source pages; Apify hosts the run, logs and dataset. No persistent cross-run cache or session store is created by this Actor. Apify's account/storage retention and deletion controls govern run records; delete unneeded datasets and runs in your Apify account. Do not include secrets or private applicant information in search inputs or URLs.
The start event is charged once for a run and item only for each emitted job record; no external API key or off-platform payment is needed. Failed or unavailable source pages cause a run error instead of a fabricated vacancy. Source listings may contain employer contact details or other personal information in descriptions: handle exported records under your own privacy obligations.
Support
For a source-format change, empty/unexpected results, or a billing question, open a Store issue for this Actor and include the input shape and run URL. Do not post access tokens or personal data in a public report.
Related workflows
For a separate India recruiting source, see Apna India Job Listings Scraper. Its data is not merged into Shine results.