Shine Jobs Scraper avatar

Shine Jobs Scraper

Pricing

from $0.06 / 1,000 result extracteds

Go to Apify Store
Shine Jobs Scraper

Shine Jobs Scraper

Scrape Shine.com job listings by keyword, location, or search URL. Export titles, companies, locations, salaries, skills, descriptions, and recruiter contacts.

Pricing

from $0.06 / 1,000 result extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Export public job listings from Shine.com into clean datasets for recruiting research, market mapping, sales intelligence, and hiring analytics.

What does Shine Jobs Scraper do?

Shine Jobs Scraper collects public job search results from Shine.com, one of India’s large recruitment websites.

It turns Shine search pages into structured rows that are ready for spreadsheets, BI tools, CRMs, enrichment workflows, and downstream automation.

You can scrape by keyword and location, or paste one or more Shine search URLs directly.

The actor reads the public server-rendered data available on Shine search pages and saves each job listing as one dataset item.

Who is it for?

This actor is useful for several teams:

  • 🧑‍💼 Recruiters tracking active hiring demand in India
  • 📈 Talent intelligence teams mapping companies by role, skill, and location
  • 🧲 Lead-generation teams finding companies currently hiring
  • 🏢 Staffing agencies monitoring new openings across industries
  • 🧪 Data analysts building job-market trend dashboards
  • 🤖 Automation builders feeding Shine job data into workflows

Why use this actor?

Shine search pages are designed for browsing, not bulk analysis.

This actor helps you avoid manual copying by extracting job data into a repeatable Apify dataset.

You can schedule it, call it from the API, export to CSV, or connect it to integrations.

Data you can extract

The actor saves public fields when Shine includes them in the search result JSON.

FieldDescription
jobIdShine job identifier
titleJob title
companyNameEmployer or recruiter name
companyIdShine company account ID when present
industryIndustry/category label
locationOriginal Shine location text
locationsParsed location list
salarySalary label shown by Shine
experienceExperience range
jobTypeJob/employment type when present
openingsNumber of vacancies when present
postedAtPosted date string
expiresAtExpiry date string
skillsParsed skill keywords
descriptionTextClean text job description
descriptionHtmlOptional raw HTML description
recruiterPhonePublic recruiter phone when present
recruiterEmailPublic recruiter email when present
applyUrlExternal apply URL when present
jobUrlShine job detail URL
searchUrlSearch page used to find the job
pageSearch result page number
positionPosition in the collected result set
totalResultsShine total count for the search
sourceAlways shine.com
scrapedAtCollection timestamp

How much does it cost to scrape Shine jobs?

This actor uses pay-per-event pricing.

You pay a small start fee for each run and a per-result fee for each job listing saved.

For most searches, a small test run with 20 jobs is inexpensive and is a good way to confirm the output before running larger monitoring jobs.

Current pricing is a $0.005 run-start event plus tiered per-job pricing. The BRONZE per-job price is $0.0001 (about $0.10 per 1,000 saved jobs). Final Store pricing is shown on the Apify actor page before you start a run.

How to use Shine Jobs Scraper

  1. Open the actor on Apify.
  2. Enter a job keyword such as software engineer.
  3. Optionally enter a location such as Bangalore.
  4. Set Maximum jobs to the number of listings you need.
  5. Click Start.
  6. Download results from the Dataset tab.

Search by keyword and location

Use the keyword and location fields when you want the actor to build Shine search URLs for you.

Example:

{
"keyword": "data analyst",
"location": "Mumbai",
"maxItems": 50,
"maxPages": 3
}

This searches Shine pages like:

https://www.shine.com/job-search/data-analyst-jobs-in-mumbai

Search by Shine URLs

Use searchUrls when you already have the exact Shine search pages you want to monitor.

Example:

{
"searchUrls": [
{ "url": "https://www.shine.com/job-search/software-engineer-jobs-in-bangalore" },
{ "url": "https://www.shine.com/job-search/sales-manager-jobs-in-delhi" }
],
"maxItems": 100,
"maxPages": 5
}

When searchUrls is provided, it overrides keyword and location.

Input reference

InputTypeDefaultNotes
keywordstringsoftware engineerUsed when searchUrls is empty
locationstringBangaloreOptional Shine location filter
searchUrlsarrayexample Shine URLDirect URLs to scrape
maxItemsinteger20Maximum saved jobs
maxPagesinteger2Maximum pages per search URL
includeDescriptionHtmlbooleanfalseAdds raw HTML description

Output example

{
"jobId": "18878393",
"title": "Senior Software Developer (.NET)",
"companyName": "Cynosure Corporate Solutions",
"industry": "IT Services & Consulting",
"location": "Chennai",
"salary": "[Salary Hidden]",
"experience": "6 to 8 Yrs",
"skills": [".NET", "C#", "SQL"],
"jobUrl": "https://www.shine.com/jobs/senior-software-developer-net/cynosure-corporate-solutions/18878393",
"source": "shine.com"
}

Actual fields depend on what Shine exposes publicly for each listing.

Tips for better results

  • 🎯 Use specific keywords such as java developer, business analyst, or digital marketing.
  • 📍 Add a location when you need city-level coverage.
  • 🧪 Start with 25 jobs before running larger exports.
  • 🔁 Schedule repeated runs to monitor newly posted jobs.
  • 🧹 Keep includeDescriptionHtml disabled unless you need HTML formatting.

Integrations

You can connect the dataset to many workflows:

  • Send new jobs to Google Sheets for recruiting operations.
  • Push hiring companies into a CRM for sales outreach.
  • Feed job descriptions into an LLM classifier for skill extraction.
  • Build dashboards in BigQuery, Snowflake, or Power BI.
  • Trigger Slack alerts when target companies post new roles.

API usage

Call the actor from Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/shine-jobs-scraper').call({
keyword: 'software engineer',
location: 'Bangalore',
maxItems: 25
});
console.log(run.defaultDatasetId);

Python API usage

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/shine-jobs-scraper').call(run_input={
'keyword': 'data analyst',
'location': 'Mumbai',
'maxItems': 25,
})
print(run['defaultDatasetId'])

cURL API usage

curl "https://api.apify.com/v2/acts/automation-lab~shine-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"keyword":"software engineer","location":"Bangalore","maxItems":25}'

MCP usage

Use this actor with Apify MCP tools in Claude Desktop or Claude Code.

MCP URL:

https://mcp.apify.com?tools=automation-lab/shine-jobs-scraper

Claude Code setup:

$claude mcp add apify-shine-jobs "https://mcp.apify.com?tools=automation-lab/shine-jobs-scraper"

Claude Desktop JSON config example:

{
"mcpServers": {
"apify-shine-jobs": {
"url": "https://mcp.apify.com?tools=automation-lab/shine-jobs-scraper"
}
}
}

Example prompts:

  • “Run Shine Jobs Scraper for data analyst jobs in Mumbai and summarize top hiring companies.”
  • “Find 50 Java developer openings in Bangalore and group them by required experience.”
  • “Monitor Shine for sales manager jobs in Delhi and alert me when new companies appear.”

Scheduling

You can schedule the actor daily or weekly from Apify.

A common setup is:

  • Daily run for one keyword and one city
  • maxItems set to 100 or 200
  • Export dataset to Google Sheets or webhook
  • Compare job IDs against previous runs to detect new listings

Legality and responsible use

This actor extracts publicly available job listing data from Shine.com search pages.

You are responsible for using the data in a lawful way and respecting applicable terms, privacy rules, and employment-market regulations.

Do not use scraped contact data for spam or unlawful outreach.

Troubleshooting

If a run returns fewer jobs than requested, the search may have fewer public listings than the requested limit, or Shine may have changed pagination for that query.

If you see no results, try a broader keyword such as software engineer or paste a Shine search URL that works in your browser.

If you need the original formatted description, enable includeDescriptionHtml.

FAQ

Does this actor scrape private candidate profiles?

No. It scrapes public job listings only.

Does it require a Shine account?

No account is required for the public listing fields extracted by this actor.

Can I scrape multiple cities?

Yes. Add multiple Shine search URLs in searchUrls, one per city or query.

Why are some salaries hidden?

Shine sometimes displays [Salary Hidden]. The actor saves the value exactly as shown in the public data.

Are recruiter emails and phones always available?

No. They are saved only when Shine exposes them publicly for that listing.

Other automation-lab actors that may fit job-market workflows:

Changelog

0.1

Initial version with HTTP extraction from Shine search result pages, keyword/location search, direct URL mode, pagination, and structured job listing output.