# iimjobs Job Scraper (`bovi/iimjobs-scraper`) Actor

Collect public iimjobs.com job listings by tag or category. Returns job titles, companies, locations, experience, posting dates, tags, and public job details.

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

## Pricing

from $1.55 / 1,000 iimjobs job scrapers

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

## iimjobs Job Scraper

Collect publicly available job listings from iimjobs.com, an India-focused management and professional job board. The Actor reads public iimjobs tag and category feeds, then optionally loads each public job detail page through the site's JSON endpoint. It does not require an iimjobs account.

Each result can include the job ID and title, designation, company, job URL, locations, experience range, posting time, work-from-home flag, tags, category, and description. Company rating, review count, company type, and logo URL are included only when iimjobs provides them. Applicant counts, views, and recruiter activity are excluded because the public detail response masks those values.

### Input

- keywords: one or more iimjobs tags, such as Investment Banking or Analytics. The default is Investment Banking. Known tags are resolved by name. Unrecognized terms are searched locally across the configured categories.
- categories: categories used for category collection or fallback keyword search. Supported values include Banking & Finance, Sales & Marketing, IT & Systems, Consulting & General Management, HR & IR, Supply Chain & Operations, Legal, BPO, and GenAI.
- maxResults: maximum number of records to return. The default is 50.
- includeJobDetails: fetch the job URL and description for each result. The default is true.
- proxyConfiguration: optional Apify Proxy settings. The Actor makes direct requests if proxy use is disabled or the field is omitted.

Example input:

```
{
  "keywords": ["Investment Banking"],
  "categories": ["Banking & Finance"],
  "maxResults": 10,
  "includeJobDetails": true,
  "proxyConfiguration": {"useApifyProxy": false}
}
```

Example result:

```
{
  "id": "1742118",
  "title": "Invesco - Manager - Fund Administration",
  "job_designation": "Manager - Fund Admin",
  "company_name": "Invesco",
  "url": "https://www.iimjobs.com/j/invesco-manager-fund-administration-1742118",
  "locations": ["Hyderabad"],
  "experience_min_years": 10,
  "experience_max_years": 20,
  "work_from_home": false,
  "tags": ["Fund Accounting", "Fund Administration", "Accounting", "Reconciliation", "Investment Banking", "Operational Risk"]
}
```

### Price per result

The Actor does not call Actor.charge. Apify bills dataset items according to the pay-per-result rate configured for the Actor; check the Actor Store page for the current rate.

### Notes

The feed and detail endpoints are public site endpoints and may change. Records contain only values returned by iimjobs; the Actor does not fill missing fields with guessed values.

# Actor input Schema

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

iimjobs tag names to collect, such as Investment Banking, Banking, Analytics, or Talent Acquisition. Known tags are resolved through iimjobs' public tag endpoint. If a term is not a tag, the Actor searches its configured categories by title, designation, and tag names. Leave empty to collect the configured categories.

## `categories` (type: `array`):

Categories used when keywords is empty or a term cannot be resolved as an iimjobs tag. Supported values: Banking & Finance, Sales & Marketing, IT & Systems, Consulting & General Management, HR & IR, Supply Chain & Operations, Legal, BPO, GenAI. If empty, all supported categories are searched.

## `maxResults` (type: `integer`):

Maximum number of job records to return across all selected tags or categories.

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

Fetch the public job detail endpoint for the job URL and full description.

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

Optional Apify Proxy settings. The Actor uses no proxy when this is disabled or omitted.

## Actor input object example

```json
{
  "keywords": [
    "Investment Banking"
  ],
  "categories": [
    "Banking & Finance"
  ],
  "maxResults": 50,
  "includeJobDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Dataset with the collected iimjobs job records.

# 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": [
        "Investment Banking"
    ],
    "categories": [
        "Banking & Finance"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("bovi/iimjobs-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": ["Investment Banking"],
    "categories": ["Banking & Finance"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("bovi/iimjobs-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": [
    "Investment Banking"
  ],
  "categories": [
    "Banking & Finance"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call bovi/iimjobs-scraper --silent --output-dataset

```

## MCP server setup

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