# Hirist Jobs Scraper (`deriverge/hirist-jobs-scraper`) Actor

Tech and IT jobs from Hirist.tech in India, with the employer's AmbitionBox rating, experience in years, skills, salary in LPA when published and the full description. Search by skill or role and filter by city, experience and posting date.

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

## Pricing

from $0.50 / 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

## Hirist Jobs Scraper

Hirist Jobs Scraper searches hirist.tech, the Indian job board for IT and tech roles, and returns one row per job: title, company with its AmbitionBox rating, cities, experience range in years, skills, salary when the employer shows it, applicant counts and the full description. Type a skill or role such as `python` or `data engineer` and click **Start**. Most employers on Hirist hide the salary, so expect empty salary fields on most rows. It costs $1.00 per 1,000 jobs on the Free plan ($0.50 on Business), and the $5 of monthly credit in Apify's Free plan covers about 5,000 jobs.

### What data does it return?

| Field | Description |
|---|---|
| `title`, `designation` | Job title as posted, and the role without the company prefix, e.g. `Python Developer`. |
| `company`, `companyIndustry` | Hiring company and its industry as listed on AmbitionBox, e.g. `IT Services & Consulting`. |
| `companyRating`, `companyReviews` | AmbitionBox employee rating out of 5 and the number of reviews behind it. |
| `companyBenefits`, `companyAbout` | Benefits the company lists on AmbitionBox, and its short profile. |
| `locations`, `remote` | Cities of the job, and `true` when it is posted as remote or work from home. |
| `experienceMin`, `experienceMax` | Years of experience the employer asks for, e.g. `4` and `8`. |
| `salaryMinLpa`, `salaryMaxLpa` | Salary range in lakh rupees a year (LPA). Empty when the employer hides it, which `salaryHidden` marks. |
| `salaryMin`, `salaryMax` | The same range in rupees a year: 20 LPA is `2000000`. |
| `skills`, `mandatorySkills` | Skill tags on the job; the second list holds the ones marked as required. |
| `applicants`, `views` | How many people applied and how many viewed the job on Hirist. |
| `applicationsReviewed` | How many applications the employer has already opened. Filled when the full description is on. |
| `postedAt` | When the job was posted, as an ISO 8601 timestamp. |
| `description` | Full job text from the job page. |
| `url` | Job page on hirist.tech, where candidates apply. |

### How to scrape Hirist jobs

1. In **Keywords**, type what you would type into the Hirist search box: a skill, a role or a function. Each keyword runs as its own search, and a job found by two keywords comes back once.
2. Narrow the search with **Cities** (Bangalore, Mumbai, Delhi NCR, Gurgaon, Noida, Hyderabad, Pune, Chennai and others), **Remote jobs only**, an experience range and **Posted within days**.
3. To see only jobs that publish pay, turn on **Only jobs with a salary** or set **Minimum salary (LPA)**.
4. Leave **Include the full job description** on to get the description and the reviewed-applications count, or turn it off for a quicker run with search data only. The price is the same.
5. Click **Start** and follow the rows in the **Output** tab, from where you can export them as CSV, Excel or JSON. With descriptions on, a run returns about 80 jobs a minute.

The same search as API input:

```json
{
  "keywords": ["data engineer", "python"],
  "locations": ["Bangalore", "Pune"],
  "minExperience": 3,
  "maxExperience": 8,
  "postedWithinDays": 7,
  "maxItems": 300
}
```

### Example output

One job from a run on 29 September 2026, with the description shortened.

```json
{
  "key": "hirist:1675533",
  "site": "Hirist",
  "jobId": "1675533",
  "title": "Python Developer - FastAPI",
  "designation": "Python Developer",
  "url": "https://www.hirist.tech/j/python-developer-fastapi-1675533",
  "company": "Eastvantage",
  "companyLogo": "https://recruiter-static-content.s3.ap-south-1.amazonaws.com/CompanyLogos/centralised-25715.webp",
  "companyRating": 2.6,
  "companyReviews": 28,
  "companyIndustry": "BPO",
  "companyAbout": "Eastvantage is an independently-owned global business solutions company enabling offshore operations from locations in the Philippines, India, Bulgaria, Morocco, Vietnam, and Belgium. The company has been in the industry for over a decade, growing from a handful to over 1200 happy employees. The mission is to create meaningful jobs and provide careers that are knowledge-based, inspiring, and always with the potential for development and growth.",
  "companyBenefits": [
    "Health & Wellness Support",
    "Transport / Travel Support"
  ],
  "companyAmbitionBoxUrl": "https://www.ambitionbox.com/reviews/eastvantage-reviews",
  "locations": [
    "Bangalore"
  ],
  "remote": false,
  "experienceMin": 4,
  "experienceMax": 8,
  "salaryMinLpa": null,
  "salaryMaxLpa": null,
  "salaryMin": null,
  "salaryMax": null,
  "salaryCurrency": null,
  "salaryHidden": true,
  "skills": [
    "Python",
    "Backend Architecture",
    "Webservices",
    "Django",
    "Flask",
    "FastAPI",
    "Version Control System"
  ],
  "mandatorySkills": [],
  "applicants": 143,
  "views": 284,
  "applicationsReviewed": 74,
  "diversityHiring": [],
  "premium": true,
  "postedAt": "2026-09-29T08:26:01.113Z",
  "description": "We are looking for a skilled Python Developer to join our dynamic team. The ideal candidate will possess strong programming skills and a passion for developing innovative software solutions. You will collaborate with cross-functional teams to design, develop, and maintain applications that meet business needs.\n\nLocation : Bangalore, India\n\nWork Mode : Work from anywhere\n\nRole : Python Developer\n\nWhat You'll Do :\n\n- ...",
  "searchQuery": "\"python\" in bangalore",
  "scrapedAt": "2026-09-29T20:56:27.322Z"
}
```

### How much does it cost to scrape Hirist?

| | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
| 1,000 jobs | $1.00 | $0.80 | $0.65 | $0.50 |

You pay only for the events in the table. There is no start fee, and compute time and proxies are included.

Exporting 5,000 jobs with descriptions costs $5.00 on the Free plan and $2.50 on Business. Jobs removed by a filter, a job found by two keywords and jobs already sent in the alert mode are not charged.

### Limits

- Hirist needs a search term, so there is no way to list every job on the site at once. A broad term such as `engineer` matched about 4,800 jobs in September 2026.
- Most employers hide the salary, so the salary filters return far fewer jobs than the same search without them.
- AmbitionBox data is present for about two thirds of the jobs; smaller employers often have no profile there.
- Recruiter names, photos and activity shown on Hirist are not collected.
- If Hirist answers with a verification page instead of data, the run stops and keeps the jobs it already has. It does not try to get around the check.
- A run returns at most 1,000 jobs unless you raise **Maximum jobs**.

### Daily alerts for new jobs

Save the run as a task (or give it a **Watch name**), turn on **Return only jobs new since the last run** and add a daily schedule. Each run then returns only jobs that were not in the previous snapshot, and jobs you already received are not charged again. Apify's integrations can send the new rows to email, Slack or a webhook.

### FAQ

#### Is it legal to scrape Hirist?

The actor reads job ads that Hirist shows to every visitor without logging in, and it leaves out the recruiters' personal details. Job ads are published to reach as many candidates as possible. You are responsible for using the data in line with the laws that apply to you.

#### What does LPA mean?

Lakh per annum. One lakh is 100,000 rupees, so `12` LPA is 1,200,000 INR a year. Each row carries both the LPA figures Hirist shows and the rupee amounts in `salaryMin` and `salaryMax`.

#### How fresh are the jobs?

Every run reads Hirist live. `postedAt` is the moment the job went up on Hirist, and **Posted within days** keeps only recent ones.

### Related scrapers

- [Foundit Jobs Scraper](https://apify.com/deriverge/foundit-jobs-scraper)
- [Instahyre Jobs Scraper](https://apify.com/deriverge/instahyre-jobs-scraper)
- [Internshala Scraper](https://apify.com/deriverge/internshala-jobs-scraper)
- [Career Site Jobs Search](https://apify.com/deriverge/career-site-jobs-search)

### Support

This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the **Issues** tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the **API** tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.

# Changelog

This Actor's version history is a separate document: https://apify.com/deriverge/hirist-jobs-scraper/changelog.md

# Actor input Schema

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

What to search for, as in the Hirist search box: a skill, role or function, for example "python", "data engineer", "react" or "devops". Each keyword is its own search. Hirist needs at least one.

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

Only jobs in these cities, for example Bangalore, Mumbai, Delhi NCR, Gurgaon, Noida, Hyderabad, Pune or Chennai. Known cities use the site filter; others are matched in the job locations.

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

Only jobs located as Remote or Work from home.

## `minExperience` (type: `integer`):

Only jobs whose experience range fits candidates with at least this many years (the site filter).

## `maxExperience` (type: `integer`):

Only jobs whose experience range fits candidates with at most this many years; 0 to 2 finds fresher roles.

## `postedWithinDays` (type: `integer`):

Only jobs posted in the last N days, for example 1, 7 or 30.

## `hasSalary` (type: `boolean`):

Only jobs whose employer shows the salary range (most keep it hidden).

## `minSalaryLpa` (type: `integer`):

Only jobs whose published salary reaches this many lakh rupees a year, for example 20 for 20 LPA (2,000,000 INR).

## `includeDescription` (type: `boolean`):

Reads each job page for the full description and how many applications the employer has already reviewed. Turn off for faster runs with search data only; the price is the same.

## `excludeKeywords` (type: `array`):

Drop jobs whose title or company contains any of these, for example "intern" or a company name.

## `newOnly` (type: `boolean`):

Keeps a snapshot per watch name (or per saved task) and returns only jobs that were not there before. Schedule it daily for a job alert.

## `watchName` (type: `string`):

Name of the snapshot used by the new-only mode, for example "python-bangalore". Runs from a saved task get one automatically.

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

Hard cap on returned jobs; empty means 1,000. With descriptions about 80 jobs a minute, without them about 1,000.

## Actor input object example

```json
{
  "keywords": [
    "python"
  ],
  "remoteOnly": false,
  "hasSalary": false,
  "includeDescription": true,
  "newOnly": false,
  "maxItems": 20
}
```

# Actor output Schema

## `jobs` (type: `string`):

One row per job with company rating, experience, salary, skills and description.

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

Jobs matching and returned per search, and rows dropped by filters.

# 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"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("deriverge/hirist-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"],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("deriverge/hirist-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"
  ],
  "maxItems": 20
}' |
apify call deriverge/hirist-jobs-scraper --silent --output-dataset

```

## MCP server setup

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