# Instahyre Jobs Scraper & API: Posted Dates, Company Ratings (`s_actors/instahyre-jobs-scraper`) Actor

Scrape Instahyre jobs in India with the posting date Instahyre hides, newest first, company Glassdoor ratings, experience and city filters, jobs for freshers, recruiter, full description, job alerts. Excel, CSV, JSON.

- **URL**: https://apify.com/s\_actors/instahyre-jobs-scraper.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** Jobs, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.61 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Instahyre Jobs Scraper & API: Posted Dates, Newest First, Company Ratings

Scrape **Instahyre jobs** in India to Excel, CSV or JSON **without login**, with the **date each job was posted**, newest first. What sets it apart:

- **Posting date on every job.** Instahyre never shows when a job was posted and keeps old jobs listed for months: in our test **76 of 100 search results were older than a month, 38 older than 3 months, the oldest 3.5 years**. This Actor reads the date from each job page (`postedDate`, `daysSincePosted`), returns the **newest jobs first** and filters by **posted within** 24 hours, 3 days, a week, 2 weeks, a month or 3 months.
- **Company ratings on every job.** The company's **Glassdoor ratings** as Instahyre shows them (overall, culture, work-life balance, salary & benefits, career opportunities, diversity, recommend to a friend), benefits, tech stack, website and LinkedIn. Filter by **minimum company rating** (for example 4.0).
- **City and experience filters that Instahyre applies itself.** Other scrapers say Instahyre ignores location and experience, fetch everything and filter afterwards. This Actor sends them the way the site does: exact counts, faster runs, **jobs for freshers** (0 years of experience), **work from home**, any Indian city, state or region.
- **More than 10,000 jobs per search.** Instahyre stops every search at 10,000 results. Ask for more and the search is split by company size and job type and merged without duplicates.
- **Everything in one price:** full description, experience range (min and max years), job functions, skills, recruiter name and title, internship stipend and duration, company size and founding year.
- **Job alerts, no reposts.** Schedule it and get only the jobs you have not seen, newest first.

```json
{ "keywords": ["python"], "locations": ["Bangalore"], "postedWithin": "pastWeek", "minCompanyRating": 4 }
```

No Instahyre account, no cookies. Use it as an **Instahyre jobs API**: one call returns clean JSON with the fields above.

#### What you get

**One row per job.** Real examples, September 2026:

| job | company | location | posted | experience | company rating |
|---|---|---|---|---|---|
| React Native Developer | Uber | Pune | 2026-08-26 | 4-8 years | 3.8 |
| DevOps Engineer | Conviva | Bangalore | 2026-09-24 | 3-5 years | 3.0 |
| Data Analyst | HDFC Credila Financial Services | Bangalore, Mumbai | 2026-08-18 | 3-6 years | 3.8 |
| Senior MLOps Engineer | Shuru Technologies | Bangalore | 2026-09-22 | 4-8 years | 4.3 |
| DevOps Engineer - Intern | Zetwerk | Bangalore | 2026-09-24 | 0 years, ₹50,000 a month | 4.4 |
| Product Manager | Khatabook | Bangalore | 2025-11-12 | 3-7 years | 3.8 |

In our test of 100 jobs (python, react, data analyst, devops, product manager) **100 had the posting date**, 100 the experience range, the recruiter and the full description, **66 the company's Glassdoor ratings**, 62 the tech stack, 99 the company website and 96 its LinkedIn page.

| Field | Description |
|---|---|
| `jobId`, `jobUrl`, `title` | The job and its Instahyre page |
| `postedDate`, `daysSincePosted` | When the job was posted (read from the job page) and how many days ago |
| `companyName`, `companyId`, `companyUrl`, `companyLogo`, `companyWebsite`, `companyLinkedin` | The employer, its Instahyre page, website and LinkedIn |
| `companyRating`, `companyRatings` | Glassdoor ratings as shown on Instahyre: `overall`, `cultureValues`, `workLifeBalance`, `compensationBenefits`, `careerOpportunities`, `diversityInclusion`, `recommendToFriend` (1-5) |
| `companyEmployees`, `companySize`, `companyFounded`, `companyIndustry`, `companyHeadquarters`, `companyOpenJobs` | Size (employees and small / medium / large), founding year, industry, open jobs on Instahyre |
| `companyBenefits`, `companyTechStack`, `companyTagline`, `companyAbout`, `isDiversityEmployer` | What the company offers and uses |
| `location`, `locations`, `states`, `workplaceType`, `acceptsOtherCities` | Cities, their states, `remote` (work from home), `hybrid` (home or office), `on-site`; whether candidates from other cities are considered |
| `experienceLevel`, `experienceMinYears`, `experienceMaxYears` | Required experience ("3-6 years") |
| `employmentType`, `jobCategory`, `jobFunctions`, `skills` | Full-time or internship, Instahyre's category and functions, skill tags |
| `internshipStipend`, `internshipPaid`, `internshipDurationMonths`, `salaryText`, `salaryMin`, `salaryMax`, `salaryYearlyMin`, `salaryYearlyMax` | Internship stipend (₹ per month) and duration; Instahyre does not publish salaries of full-time jobs |
| `recruiterName`, `recruiterTitle` | Who posted the job |
| `isClosed`, `description`, `descriptionHtml` | Whether the job is closed; the full job description |
| `searchKeyword`, `searchLocation`, `searchUrl`, `isNew`, `scrapedAt` | Which search found the job; job alerts |

Three table views: **Jobs**, **Company ratings** and **Details**.

#### How it works

| Step | What happens |
|---|---|
| 1. Search | Each keyword (or your pasted Instahyre search links) with Instahyre's own filters: city, experience, job function, industry, company size, job type, companies. 35 jobs a request, up to 10,000 per search |
| 2. Past 10,000 | If you ask for more and Instahyre has more, the search is repeated per company size, then per job type |
| 3. Newest first | With **Newest first**, **Posted within** or job alerts, the Actor reads the whole search and orders it by posting date (Instahyre sorts by relevance only) |
| 4. Details | For each job: the job page (posting date), the job details (description, experience, recruiter) and the company profile (ratings, benefits, tech stack; once per company) |
| 5. Filters and clean-up | Date, company rating, title words, companies; closed jobs that Instahyre still lists are dropped. Removed jobs, reposts (same title, company and cities) and jobs seen by a job alert are not charged |

#### Why this Actor

| | This Actor | Typical Instahyre scraper |
|---|---|---|
| Posting date | ✅ Every job, from the job page | ❌ "Instahyre never publishes when a job was posted" |
| Newest first, posted within N days | ✅ | ❌ Instahyre order only (relevance, months-old jobs on top) |
| Company Glassdoor ratings, benefits, tech stack | ✅ | ❌ |
| Minimum company rating filter | ✅ | ❌ |
| City and experience filters | ✅ Applied by Instahyre, exact counts | ⚠️ "Instahyre ignores location", filtered afterwards |
| Jobs for freshers (0 years) | ✅ | ⚠️ Some |
| More than 10,000 jobs per search | ✅ Split automatically | ❌ |
| Description, experience range, recruiter | ✅ Included | ⚠️ Paid add-on ($0.0001-$0.0015 a job) |
| Internship stipend | ✅ | ⚠️ Some |
| Job alerts (only new jobs) | ✅ Seen jobs not charged | ✅ |
| Price per 1,000 jobs | **$0.77** with everything | $1-$5 |

#### Pricing

Pay per event, no subscription needed. Apify Scale and Business plans pay less:

| Event | Free and Starter plans | Scale plan | Business plan |
|---|---|---|---|
| Run start | $0.001 | $0.001 | $0.001 |
| Job (all fields: posting date, company ratings, full description) | $0.000768 | $0.000691 | $0.000614 |

**1,000 jobs = $0.77.** Free: jobs removed by your filters, reposts, jobs already seen by a job alert. Platform usage is included. Set a maximum cost per run in the run options: the Actor stops there.

#### Ready-made tasks

| Task | What it does |
|---|---|
| [Instahyre Jobs for Freshers (0 Years Experience)](https://apify.com/s_actors/instahyre-jobs-scraper/examples/instahyre-jobs-for-freshers) | Entry-level jobs open to graduates, newest first |
| [Instahyre Work From Home and Remote Jobs](https://apify.com/s_actors/instahyre-jobs-scraper/examples/instahyre-work-from-home-jobs) | Remote jobs in India, newest first, with company ratings |
| [Instahyre Jobs in Bangalore With Company Ratings](https://apify.com/s_actors/instahyre-jobs-scraper/examples/instahyre-jobs-bangalore) | Jobs posted in Bangalore in the past week at companies rated 3.5+ |

#### Job alerts

1. Set your keywords, locations and filters, turn on **Only new jobs**, give the alert a name.
2. Save it as a task and add a **schedule** (every morning, with "Posted within: Past 3 days").
3. Send the results by email, Slack, Google Sheets, Make, Zapier or **n8n** with Apify integrations.

The first run returns the current jobs, newest first; next runs return only jobs not seen before.

#### FAQ

**Where does the posting date come from?** Instahyre does not show it in the search or in the job page text, but the page carries it in its structured data for search engines (`datePosted`). The Actor reads it from every job page. Job ids grow with the date, which is how **Newest first** orders a whole search.

**Where do the company ratings come from?** From the company's Instahyre page, which shows its Glassdoor ratings. About 2 of 3 companies have them (small companies often do not). With **Min company rating**, jobs of companies without a rating are removed and not charged.

**Does Instahyre show salaries?** Not for full-time jobs (neither the search nor the job page has them). Internships show a monthly stipend, which is in `internshipStipend` and the salary fields.

**Which locations work?** The names Instahyre uses: Indian cities ("Bangalore", "Pune", "Hyderabad", "Gurgaon", "Noida", "Mumbai", "Chennai"), states ("Karnataka", "Maharashtra"), regions ("Delhi / NCR", "South India", "Anywhere in India") and "Work From Home". Common spellings are recognised (Bengaluru, Gurugram). Several locations = any of them.

**How do I get jobs for freshers?** Set **Your years of experience** to 0. Instahyre then returns the jobs open to candidates without experience; every row has `experienceMinYears` and `experienceMaxYears`.

**Do I need an Instahyre account?** No. Only jobs any visitor can open are read. Candidate data is not collected.

#### Use with the API and AI agents

Run it from the Apify API, the JavaScript or Python client, **n8n**, Make or Zapier, or from AI agents through the [Apify MCP server](https://mcp.apify.com) (Claude, ChatGPT, Cursor). One call: `POST https://api.apify.com/v2/acts/s_actors~instahyre-jobs-scraper/run-sync-get-dataset-items` with the input above returns the jobs as JSON. Set **Description** to "None" for smaller answers.

#### Other job tools

| Actor | What it does |
|---|---|
| [StepStone Jobs Scraper](https://apify.com/s_actors/stepstone-jobs-scraper) | StepStone.de and .at jobs with salary estimates for most jobs, exact matches only, English jobs in Germany |

#### Is it legal?

The Actor reads public Instahyre job listings and company pages that anyone can open without an account, as a visitor does. It does not log in or collect candidate profiles. Use the data according to the laws that apply to you (India's DPDP Act, GDPR and similar) and Instahyre's terms.

# Actor input Schema

## `keywords` (type: `array`):

Skill, job title or technology, one per line: "python", "react", "data analyst", "devops", "product manager". Each keyword is one Instahyre search (relevance order). Empty = every job matching the filters below (or the whole Instahyre board, about 13,000 jobs).

## `locations` (type: `array`):

Indian city, state or region as on Instahyre: "Bangalore" (or Bengaluru), "Pune", "Hyderabad", "Delhi / NCR", "Gurgaon", "Mumbai", "Chennai", "Work From Home". Instahyre filters by them itself (exact counts); several = any of them. Empty = all of India.

## `remoteOnly` (type: `boolean`):

Adds Instahyre's "Work From Home" location to the search. Every row has workplaceType (remote, hybrid = remote or office, on-site).

## `experienceYears` (type: `integer`):

Instahyre's own experience filter: jobs open to a candidate with this many years. 0 = jobs for freshers (entry level, graduates). Empty = any. Every row has experienceMinYears and experienceMaxYears.

## `maxJobsPerSearch` (type: `integer`):

Per keyword (and per search link). Instahyre shows at most 10,000 jobs per search; above that the Actor splits the search by company size and job type and merges the results without duplicates.

## `sortBy` (type: `string`):

Instahyre has no date sort and keeps jobs listed for months. Newest first = the Actor reads the whole search, orders it by posting date and returns the newest jobs.

## `postedWithin` (type: `string`):

Only jobs posted in this window, newest first. Instahyre has no such filter and does not show the date: it is read from each job page. Older jobs are free.

## `jobType` (type: `string`):

Instahyre's own filter. Internships come with the stipend (₹ per month) and duration.

## `companySize` (type: `string`):

Instahyre's own company-size groups.

## `minCompanyRating` (type: `number`):

Keep jobs of companies rated at least this on Glassdoor (overall, 1-5, as shown on Instahyre), e.g. 4. Companies without a rating are removed. Removed jobs are free.

## `jobFunctions` (type: `array`):

Instahyre's job functions, by name or a part of it: "Backend Development", "Frontend Development", "Data Science / Machine Learning", "DevOps / Cloud", "Product Management", "Software Testing / QA / SDET", "Sales / Business Development". Several = any of them.

## `industries` (type: `array`):

Instahyre's industries: "Computer Software / IT / Internet", "Banking / Financial Services", "Healthcare / Hospitals"... Several = any of them.

## `companies` (type: `array`):

Only jobs of these companies, name as on Instahyre: "Amazon", "Accenture", "Zepto".

## `titleMustMatchKeyword` (type: `boolean`):

Instahyre's search also matches skills: "python" brings "Backend Engineer" jobs that list Python. On = only jobs whose title has every word of the keyword. Removed jobs are free.

## `titleInclude` (type: `array`):

Keep only jobs whose title contains one of these words, e.g. "senior", "lead".

## `titleExclude` (type: `array`):

Remove jobs whose title contains one of these words, e.g. "intern", "manager".

## `companyExclude` (type: `array`):

Remove jobs of companies whose name contains one of these, e.g. staffing agencies.

## `skipDuplicates` (type: `boolean`):

Companies often post one job many times: same title + company + cities = one row.

## `searchUrls` (type: `array`):

Search pages such as instahyre.com/python-jobs-in-bangalore/, instahyre.com/jobs-in-pune/, instahyre.com/internships-in-bangalore/ (the skill and city are taken from the link; the filters above are added).

## `jobUrls` (type: `array`):

Links of single jobs, e.g. https://www.instahyre.com/job-443990-senior-mlops-engineer-at-shuru-technologies-bangalore/, or just the number 443990.

## `includeJobDetails` (type: `boolean`):

Full description, experience range, job functions, recruiter name and title, internship stipend. Included in the price; off = faster runs with the search fields, posting date and company only.

## `includeCompanyProfile` (type: `boolean`):

The company's Glassdoor ratings (overall, culture, work-life balance, salary & benefits, career, diversity, recommend to a friend), benefits, tech stack, LinkedIn and open jobs. One request per company, included in the price.

## `descriptionFormat` (type: `string`):

The full job description is included at no extra cost.

## `splitLargeSearches` (type: `boolean`):

Instahyre shows at most 10,000 jobs per search. On = the search is repeated per company size and job type and the results are merged without duplicates.

## `onlyNewJobs` (type: `boolean`):

Remembers the jobs of earlier runs with the same alert name and returns only new ones, newest first. Schedule the Actor daily for an Instahyre job alert to Slack, email or a sheet. Jobs already seen are free.

## `monitorName` (type: `string`):

Separate memory for each alert: use a different name for each search you schedule.

## `maxConcurrency` (type: `integer`):

How many Instahyre requests run at once.

## `debugLog` (type: `boolean`):

Log every retry.

## Actor input object example

```json
{
  "keywords": [
    "python"
  ],
  "locations": [
    "Bangalore"
  ],
  "remoteOnly": false,
  "maxJobsPerSearch": 100,
  "sortBy": "relevance",
  "postedWithin": "anyTime",
  "jobType": "any",
  "companySize": "any",
  "titleMustMatchKeyword": false,
  "skipDuplicates": true,
  "includeJobDetails": true,
  "includeCompanyProfile": true,
  "descriptionFormat": "text",
  "splitLargeSearches": true,
  "onlyNewJobs": false,
  "monitorName": "default",
  "maxConcurrency": 10,
  "debugLog": false
}
```

# Actor output Schema

## `overview` (type: `string`):

The main job fields with the posting date.

## `companies` (type: `string`):

Glassdoor ratings, size, benefits and tech stack of each company.

## `details` (type: `string`):

Experience, functions, recruiter, description.

## `all` (type: `string`):

Every field of every job.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "python"
    ],
    "locations": [
        "Bangalore"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/instahyre-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["python"],
    "locations": ["Bangalore"],
}

# Run the Actor and wait for it to finish
run = client.actor("s_actors/instahyre-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "python"
  ],
  "locations": [
    "Bangalore"
  ]
}' |
apify call s_actors/instahyre-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s_actors/instahyre-jobs-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/HkhzggTRgDyhyhJ7c/builds/NjBIrHMTFH0RPsOKi/openapi.json
