# Instahyre Jobs Scraper (`piotrv1001/instahyre-jobs-scraper`) Actor

The Instahyre Jobs Scraper extracts India job listings from Instahyre by function, skill, location or company, capturing titles, experience ranges, skills, posting dates, full descriptions and employer websites with domains — ideal for recruiting, hiring-market research and B2B lead generation.

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

## Pricing

from $1.50 / 1,000 job listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

Extract job listings from Instahyre, one of India's largest job platforms for tech and business roles. The **Instahyre Jobs Scraper** returns full job data for each listing: posting date, employer website and domain, experience range, skills, all locations and the complete description. Use it to research the Indian hiring market, generate B2B leads from companies that are hiring, or feed a job board.

### ✨ Features

- 🧾 **Complete job records**: Every job includes the title, full description, required experience in years, skills, job functions, category, employment type and internship flag.
- 📅 **Posting dates**: Each job has the posting date that Instahyre publishes for it.
- 🏢 **Employer data for lead generation**: You get the company name, ID, website, domain, logo, tagline, description, founding year and headcount.
- 📍 **All locations**: Multi-city roles list every city, with state and country.
- 🔍 **Flexible search**: Filter by job function, skills or job title, city or region, company and years of experience. Multiple values within a filter are combined with OR.
- 🎯 **Exact company matching**: `Uber` returns only Uber's jobs, not Uber Freight's. If a company name is ambiguous, the run stops and lists the closest matches.
- 🔗 **Direct job URLs**: Scrape specific Instahyre job pages without running a search.
- 🧹 **Clean output**: Each job appears once, even when several filters match it. Email addresses and phone numbers are removed from descriptions.

### 🛠️ How It Works

1. **Pick your filters**: Enter job functions (e.g. `backend-development`, `Data Science / Machine Learning`), skills or titles (e.g. `Python`, `data engineer`), locations (e.g. `Bangalore`, `Pune`, `Work From Home`), a company or your years of experience. You can also paste job URLs.
2. **Set the limit**: Choose the maximum number of jobs to save (default 50).
3. **Run the scraper**: The jobs appear in the dataset, ready to export as JSON, CSV or Excel. After the run, a `RUN_SUMMARY` record shows the number of matching jobs on Instahyre, the number saved and why the run stopped.

Instahyre returns at most 10,000 jobs for a single search. To collect more, split the search by job function or location.

### 💰 Pricing

You pay **$0.0015 per job** saved, which is **$1.50 per 1,000 jobs**. Every job includes the full details, so there is no extra charge for descriptions, dates or employer data. Jobs that can't be loaded are not charged.

### 📊 Sample Output Data

```json
[
    {
        "id": 443858,
        "title": "Senior Software Engineer",
        "url": "https://www.instahyre.com/job-443858-senior-software-engineer-at-uber-bangalore-hyderabad/",
        "companyName": "Uber",
        "companyId": 859,
        "companyWebsite": "http://www.uber.com/careers",
        "companyDomain": "uber.com",
        "companyLogo": "https://media.instahyre.com/images/profile/base/employer/859/7daa43a994/Uber_Logo_Black_RGB.webp",
        "companyTagline": "We reimagine the way the world moves for the better",
        "companyAbout": "Uber offers an online-ride hailing and on-demand service platform. The platform enables users to book various services like taxi-hailing, food-delivery, freight solutions, and more.",
        "companyFounded": 2009,
        "companyEmployees": 1000,
        "locations": ["Bangalore", "Hyderabad"],
        "locationDetails": [
            { "city": "Bangalore", "region": "Karnataka", "country": "India" },
            { "city": "Hyderabad", "region": "Telangana", "country": "India" }
        ],
        "experienceMinYears": 8,
        "experienceMaxYears": 12,
        "employmentType": "FULL_TIME",
        "isInternship": false,
        "jobCategory": "Software Engineering",
        "jobFunctions": ["Backend Development"],
        "skills": ["Algorithms", "C++", "Data Structures", "Golang", "Java", "Python"],
        "datePosted": "2026-09-21",
        "isActive": true,
        "description": "Responsibilities:\n\n- Collaborate and work within a team with other engineers, product managers, designers and others to build towards the roadmap.\n- Write high-quality code and uphold standards for code quality and testing coverage.\n...",
        "scrapedAt": "2026-09-22T17:41:18.542Z"
    }
]
```

### ❓ FAQ

**Does the output include salaries?** No. Instahyre doesn't publish salaries on its public job pages, so the output has no salary field.

**Is `datePosted` the original posting date?** It's the date Instahyre shows for the job. That date can change when an employer updates or reposts a job. Search results aren't strictly sorted by date either, so older jobs can appear among new ones.

**Why is `companyWebsite` sometimes empty?** Some employers don't list a website on Instahyre. When there isn't one, the field is `null`.

**Which location names work?** Use cities and regions as Instahyre writes them, e.g. `Bangalore`, `Mumbai`, `Delhi / NCR`, `Hyderabad`, `Work From Home`. `Bengaluru`, `Gurugram` and `Remote` also work. Unknown names stop the run with a hint.

Start collecting Indian job market data with the **Instahyre Jobs Scraper** today! 🚀

# Actor input Schema

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

Instahyre job functions, by name or URL slug, e.g. `backend-development`, `Data Science / Machine Learning`, `sales-business-development`. Several functions return jobs from any of them. Leave empty to search all functions.

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

Skills or job titles, e.g. `Python`, `React`, `data engineer`. Jobs matching any of them are returned.

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

Cities or regions in India, e.g. `Bangalore`, `Pune`, `Delhi / NCR`, `Work From Home`. Jobs in any of them are returned. Leave empty for all of India.

## `company` (type: `string`):

Only jobs from this employer, e.g. `Uber`. The name is matched exactly, so `Uber` does not include Uber Freight.

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

Only jobs open to candidates with this many years of experience.

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

Instahyre job pages to scrape directly, e.g. `https://www.instahyre.com/job-443858-senior-software-engineer-at-uber-bangalore-hyderabad/`. When only job URLs are given, no search is run.

## `maxItems` (type: `integer`):

Maximum number of jobs to save. A single search returns at most 10,000 jobs.

## `proxyConfiguration` (type: `object`):

Proxy used to reach instahyre.com. The default works for most runs.

## Actor input object example

```json
{
  "jobFunctions": [
    "backend-development"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "jobFunctions": [
        "backend-development"
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/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 = {
    "jobFunctions": ["backend-development"],
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/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 '{
  "jobFunctions": [
    "backend-development"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call piotrv1001/instahyre-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,piotrv1001/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/abjkK5hOyMIHIzWuO/builds/y4HG4dCzsUtHm1rHH/openapi.json
