Shine Jobs Scraper avatar

Shine Jobs Scraper

Pricing

from $0.84 / 1,000 item extracteds

Go to Apify Store
Shine Jobs Scraper

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

Automation Lab

Maintained by Community

Actor 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

  1. Enter data analyst as the search phrase, optionally adding Bangalore as city, or supply a public Shine search/job URL.
  2. Set the maximum vacancies. A small limit such as 10 is a useful first run.
  3. Run the Actor and open the default dataset to download JSON, CSV or Excel.
  4. For repeated monitoring, schedule runs and compare jobId values across datasets in your own workflow.

Input parameters

InputUse
queryA role phrase, e.g. data analyst; creates a public Shine job-search URL.
locationOptional Indian city; requires query.
startUrlsUp to 30 Shine /job-search/ or /jobs/ pages, including direct vacancy URLs.
maxItemsMaximum 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

FieldMeaning
jobIdStable numeric Shine job identifier.
title, employer, locationPublic role, organization and location.
postedAtSource publication timestamp, including time zone when provided.
descriptionFull publicly exposed description, not a search snippet.
urlCanonical Shine job URL without tracking parameters.
salarySource-disclosed salary and period; absent when undisclosed.
scrapedAtObservation 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 os
from apify_client import ApifyClient
client = 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.

For a separate India recruiting source, see Apna India Job Listings Scraper. Its data is not merged into Shine results.