# IIMJobs Scraper: MBA, CA, CFA Jobs India (`parsebird/iimjobs-scraper`) Actor

Scrape premium management and finance jobs from IIMJobs.com by job title and city. Extract company, CTC/salary, experience, skills, functional area, and description.

- **URL**: https://apify.com/parsebird/iimjobs-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:**
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.89 / 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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### IIMJobs Scraper: MBA, CA, CFA Jobs India

Scrape premium management, finance, and consulting job listings from [IIMJobs.com](https://www.iimjobs.com) by job title and city. The IIMJobs Scraper turns India's leading mid-to-senior management job board into a clean, structured dataset — company, salary/CTC, experience, functional area, industry, skills, education, posting date, and a job description snippet for every listing.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Search any role — Product Manager, Investment Banking, CFO, Strategy Consultant — filter by 100+ Indian and overseas cities, and get 17 structured fields per job ready for analysis, monitoring, or a job-aggregator feed.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Actor: parsebird/iimjobs-scraper (Apify). Scrapes management/finance jobs from IIMJobs.com.
Call with ApifyClient. Input JSON:
{
  "jobTitle": "Product Manager",   // REQUIRED - role or keyword
  "location": "Bangalore",          // optional - city/region; empty = all India
  "maxResults": 50,                 // optional - default 50
  "proxyConfiguration": { "useApifyProxy": false }  // optional
}
Output: array of job objects, one per listing, with fields:
jobTitle, companyName, jobUrl, location, experience, salary, jobFunction, industry,
postedDate, applicationDeadline, jobDescription, skills[], educationRequired, jobType,
companyUrl, isUrgent, scrapedAt.
Pricing: pay-per-event, from $0.89 to $1.49 per 1,000 jobs depending on plan.
API docs: https://apify.com/parsebird/iimjobs-scraper/api
Get an API token: https://console.apify.com/account/integrations
```

### What does the IIMJobs Scraper do?

[IIMJobs.com](https://www.iimjobs.com) is India's largest job portal for management, finance, consulting, and leadership roles — the place where MBA, CA, and CFA candidates look for their next mid-to-senior position. Job data is only visible listing by listing on the site, with no export and no bulk view.

The **IIMJobs Scraper** collects that data at scale:

- 🔍 **Keyword search** — run any query IIMJobs supports: `Product Manager`, `Investment Banking`, `CFO`, `Strategy Consultant`, `Marketing Manager`, `Business Development`, `Data Science`, `General Manager`, and more.
- 📍 **Location filter** — narrow to Mumbai, Delhi, Bangalore, Hyderabad, Pune, Gurgaon, Noida, Chennai, Kolkata, or any of 100+ recognised Indian and overseas locations. Leave it empty for all-India results.
- 💰 **Salary / CTC** — captured whenever the recruiter has published it (in LPA).
- 🧠 **Functional area, industry, and skills** — every job's tags, functional category, and the hiring company's industry.
- 📄 **Job description** — a 500-character snippet pulled from each listing's detail page.
- 🎓 **Education signal** — MBA, PGDM, CA, CFA, CPA, ICWA, LLB, and similar qualifications detected from tags and the description.
- ⭐ **Premium flag** — whether the listing is a premium/branded/featured post.
- 🔁 **Deduplication** — each job appears once, even across multiple result pages.

Because IIMJobs has no bot protection, runs are fast and a proxy is optional. Use Apify's [scheduling](https://docs.apify.com/platform/schedule) to re-run the scraper daily or weekly and build a live feed of management jobs.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `jobTitle` | string | **Yes** | — | Job role or keyword, e.g. `Product Manager`, `Investment Banking`, `CFO`, `Strategy Consultant` |
| `location` | string | No | — | City or region filter, e.g. `Mumbai`, `Delhi`, `Bangalore`, `Hyderabad`, `Pune`, `Gurgaon`, `Noida`. Leave empty for all India |
| `maxResults` | integer | No | 50 | Maximum number of job listings to scrape |
| `proxyConfiguration` | object | No | `{ "useApifyProxy": false }` | Apify proxy settings. Residential proxies recommended only for very large runs |

#### Example input

```json
{
  "jobTitle": "Product Manager",
  "location": "Bangalore",
  "maxResults": 100
}
```

#### Supported locations

Common values: `Mumbai`, `Delhi`, `Delhi NCR`, `Bangalore`, `Hyderabad`, `Pune`, `Chennai`, `Kolkata`, `Gurgaon`, `Noida`, `Greater Noida`, `Ahmedabad`, `Jaipur`, `Chandigarh`, `Kochi`, `Coimbatore`, `Indore`, `Lucknow`, `Nagpur`, `Remote`, plus states (`Maharashtra`, `Karnataka`, `Tamil Nadu`, …) and overseas hubs (`Singapore`, `Dubai`, `US`, `UK`, `Canada`). An unrecognised value is ignored and the search runs across all India.

### Output example

```json
{
  "jobTitle": "Digital Product Manager",
  "companyName": "Piramal Pharma Limited",
  "jobUrl": "https://www.iimjobs.com/j/piramal-digital-product-manager-1-7-yrs-1727366",
  "location": "Bangalore",
  "experience": "1-7 years",
  "salary": null,
  "jobFunction": "IT Product Management, IT Jobs in BFSI",
  "industry": "NBFC",
  "postedDate": "2026-08-26",
  "applicationDeadline": null,
  "jobDescription": "Role Overview: We are looking for a highly driven Product Manager with experience in building and scaling platform products that power digital customer journeys and business operations...",
  "skills": ["IT Product Management", "IT Jobs in BFSI"],
  "educationRequired": "MBA, B.Tech/BE",
  "jobType": "Full Time",
  "companyUrl": "https://piramal.com",
  "isUrgent": true,
  "scrapedAt": "2026-09-06T09:38:28Z"
}
```

#### Data fields

| Field | Type | Description |
|-------|------|-------------|
| `jobTitle` | string | Job title / designation |
| `companyName` | string | Hiring company name |
| `jobUrl` | string | Direct link to the job on IIMJobs |
| `location` | string | Job location(s) / city |
| `experience` | string | Experience requirement, e.g. `5-8 years` |
| `salary` | string | CTC range in LPA if the recruiter published it, otherwise `null` |
| `jobFunction` | string | Functional area(s) — Finance, Marketing, Strategy, Product, HR, and similar |
| `industry` | string | Hiring company's industry, when available |
| `postedDate` | string | Date the job was posted (`YYYY-MM-DD`) |
| `applicationDeadline` | string | Deadline if specified (IIMJobs rarely publishes one) |
| `jobDescription` | string | First 500 characters of the job description |
| `skills` | array | Skill and functional tags on the listing |
| `educationRequired` | string | Qualification detected — MBA, PGDM, CA, CFA, and similar |
| `jobType` | string | Employment type — Full Time, Contract, Internship, Part Time |
| `companyUrl` | string | Company website derived from the recruiter's domain |
| `isUrgent` | boolean | Whether the listing is a premium / branded / featured post |
| `scrapedAt` | string | ISO 8601 timestamp of when the record was scraped |

### Use cases

- **Recruitment intelligence** — track which companies are hiring for which senior roles, at what CTC, in which cities.
- **Job board / aggregator feeds** — pull fresh management listings into your own product on a schedule.
- **Market and compensation research** — analyse salary bands, experience requirements, and skill demand across functions.
- **Lead generation** — identify companies actively expanding a function (finance, product, strategy) and the recruiters posting the roles.
- **Candidate tools** — power a personalised job alert or a resume-matching service for MBA / CA / CFA candidates.

### How it works

1. The actor queries the IIMJobs search feed for your `jobTitle`, adding the numeric location ID when `location` matches a known city or region.
2. It paginates through the results, deduplicating by job ID, until it reaches `maxResults` or runs out of listings.
3. For each listing it fetches the job's detail record to add the full description text.
4. Every job is normalised into the 17-field schema above and pushed to the dataset.
5. One `job-scraped` event is charged per job written; the run stops immediately if your plan's spending limit is reached.

### Pricing

This actor uses the **pay-per-event** pricing model. You are charged per job scraped and pushed to the dataset, at a rate that depends on your Apify plan:

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| `job-scraped` (per 1,000 jobs) | **$1.49** | **$1.29** | **$1.09** | **$0.89** |

Scraping 1,000 IIMJobs listings costs about **$0.89–$1.49** plus a few cents of platform compute. There is no charge for a search that returns no results.

### FAQ

**Do I need a proxy to scrape IIMJobs?**
No. IIMJobs has no bot protection, so the default `useApifyProxy: false` works fine. Turn on Apify residential proxies only if you are running very large or very frequent jobs.

**Why is `salary` often `null`?**
IIMJobs recruiters can choose to hide the CTC, and most do. When a salary range is published, it is returned in LPA (for example `25-35 LPA`).

**Can I get the full job description instead of a 500-character snippet?**
The `jobDescription` field is trimmed to 500 characters to keep datasets compact. If you need the complete text, open an issue on the Issues tab and it can be exposed as an option.

**How do I filter by experience or functional area?**
Include the term in `jobTitle` (for example `Senior Product Manager` or `Finance Manager`). Every result also carries `experience`, `jobFunction`, and `skills` so you can filter the dataset after scraping.

**Can I schedule recurring runs?**
Yes. Use Apify [Schedules](https://docs.apify.com/platform/schedule) to run the scraper daily or weekly, and connect the dataset to Google Sheets, Slack, a webhook, or your database via [integrations](https://docs.apify.com/platform/integrations).

**In what formats can I export the data?**
Any dataset can be downloaded as JSON, CSV, Excel, XML, or HTML, or read through the [Apify API](https://apify.com/parsebird/iimjobs-scraper/api).

**Is IIMJobs the same as Hirist?**
They are run by the same company. IIMJobs focuses on management, finance, and consulting roles; Hirist focuses on IT and engineering. Use the [Hirist.tech IT Jobs Scraper](https://apify.com/parsebird/hirist-tech-jobs-scraper) for tech roles.

### Related actors

- [Naukri Jobs Scraper](https://apify.com/parsebird/naukri-jobs-scraper) — India's largest general job board
- [Hirist.tech IT Jobs Scraper](https://apify.com/parsebird/hirist-tech-jobs-scraper) — IT and engineering jobs in India
- [Instahyre Jobs Scraper](https://apify.com/parsebird/instahyre-jobs-scraper) — curated tech and startup roles
- [Cutshort Jobs Scraper](https://apify.com/parsebird/cutshort-jobs-scraper) — startup and product jobs
- [Internshala Scraper](https://apify.com/parsebird/internshala-scraper) — internships and entry-level roles in India

### Using the Apify API

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run = client.actor("parsebird/iimjobs-scraper").call(run_input={
    "jobTitle": "Investment Banking",
    "location": "Mumbai",
    "maxResults": 100,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["jobTitle"], "-", item["companyName"], "-", item["location"])
```

**JavaScript**

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });

const run = await client.actor('parsebird/iimjobs-scraper').call({
    jobTitle: 'Strategy Consultant',
    location: 'Gurgaon',
    maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((job) => console.log(`${job.jobTitle} - ${job.companyName}`));
```

See the [API tab](https://apify.com/parsebird/iimjobs-scraper/api) for the full API reference, including the CLI and MCP server usage.

### Legal and compliance

This actor collects only data that IIMJobs.com publishes publicly, without logging in. It does not access private profiles, recruiter contact details behind authentication, or any personal candidate data. You are responsible for using the scraped data in line with IIMJobs' terms, the Apify [Terms of Service](https://apify.com/terms-of-service), and applicable data-protection law such as the GDPR and India's DPDP Act. For background, see Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

# Actor input Schema

## `jobTitle` (type: `string`):

Job role or keyword to search for on IIMJobs, e.g. Product Manager, Investment Banking, CFO, Strategy Consultant.

## `location` (type: `string`):

City or region filter, e.g. Mumbai, Delhi, Bangalore, Hyderabad, Pune, Gurgaon, Noida. Leave empty to search across all India.

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

Maximum number of job listings to scrape.

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

Apify proxy settings. IIMJobs has no bot protection, so a proxy is optional; residential proxies are recommended only for very large runs.

## Actor input object example

```json
{
  "jobTitle": "Product Manager",
  "location": "Bangalore",
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "jobTitle": "Product Manager",
    "location": "Bangalore",
    "maxResults": 50,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/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 = {
    "jobTitle": "Product Manager",
    "location": "Bangalore",
    "maxResults": 50,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/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 '{
  "jobTitle": "Product Manager",
  "location": "Bangalore",
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call parsebird/iimjobs-scraper --silent --output-dataset

```

## MCP server setup

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