IIMJobs job listings as JSON API
IIMJobs Jobs Scraper is a pay-per-record Apify Actor by Daemon Data that returns India MBA, finance, consulting and management jobs with full descriptions as JSON, CSV or Excel. It costs $0.004 per job with the default options ($4.00 per 1,000); no login to the source site, no proxy, no browser, and the same input runs from the Apify console, one REST call, Python, Node.js, n8n or an AI assistant through MCP.
Daemon Data IIMJobs Jobs Scraper on Apify Listing as plain text
Checked on 18 Oct 2026
product manager matched 4,097 open IIMJobs listings and investment banking matched 652. On the first page of product manager, the median job already had about 170 applicants.
Who uses it, for what
| You are | What you get |
|---|---|
| Executive search and staffing firms | A daily list of new mid-senior openings by function, city and experience band, plus applicant counts, so you know which mandates are crowded before you pitch. |
| HR-tech products and job aggregators | IIMJobs as a source with stable job IDs (dedupKey), full JD text, de-duplication across keywords and runs, and an API you can call on a schedule. |
| Compensation and salary-benchmark teams | LPA ranges by role, experience band and city on every posting that discloses pay, with an explicit salaryHidden flag on the ones that don't. |
| B2B sales and lead generation | Companies hiring a CFO, finance controller or CHRO are about to buy finance or HR software. Each row includes the company name, domain, industry, size band and AmbitionBox profile. |
| Workforce and market analysts | Demand for MBA, CA and CFA skills over time, hiring by city, and competition per role from applicant counts. |
| AI agents (MCP) | Ask Claude or ChatGPT "VP finance roles in Mumbai posted this week" and let it call this Actor through Apify's MCP server. |
Output fields
The most useful top-level fields with values from a real record; the full list is id, dedupKey, site, url, title, designation, company, recruiter, experienceMinYears, experienceMaxYears, salaryHidden, locations, remote, skills, mandatorySkills, industryIds, functionalAreaId, categoryId, premium, brandedJd, applicants, views, postedAt, descriptionHtml, description, query, scrapedAt, salaryMinLpa, salaryMaxLpa, otherLocation. Per-field notes and the OpenAPI definition are on the Apify API page.
| Field | Type | Example |
|---|---|---|
id | number | 1739557 |
dedupKey | string | "iimjobs:1739557" |
site | string | "iimjobs" |
url | string | "https://www.iimjobs.com/j/khatabook-senior-product-manager-1739557" |
title | string | "Khatabook - Senior Product Manager" |
designation | string | "Product Manager" |
company | object | {"name": "ADJ UTILITY APPS PRIVATE LIMITED", "domain": "khatabook.c... |
recruiter | object | {"name": null, "designation": "NA"} |
experienceMinYears | number | 4 |
experienceMaxYears | number | 6 |
salaryHidden | boolean | true |
locations | array | ["Bangalore"] |
remote | boolean | false |
skills | array | ["IT Product Management", "Online Product Management", "Consumer In... |
mandatorySkills | array | ["IT Product Management"] |
Input and how to call it
A verified example input (it returned data on 2026-10-23):
{
"queries": [
"product manager"
],
"locations": [
"Bangalore",
"Mumbai"
],
"postedWithinDays": 7,
"includeDescription": true,
"maxJobsPerQuery": 50
}
One HTTP call starts a run, waits for it and returns the records (token from console.apify.com):
curl -X POST "https://api.apify.com/v2/acts/data_daemon~iimjobs-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries": ["product manager"], "locations": ["Bangalore", "Mumbai"], "postedWithinDays": 7, "includeDescription": true, "maxJobsPerQuery": 50}'
Python: ApifyClient(token).actor("data_daemon/iimjobs-jobs-scraper").call(run_input=...), full file python/iimjobs-jobs-scraper.py. Node.js: node/iimjobs-jobs-scraper.mjs. n8n: importable workflow.
AI assistant (MCP): add the remote server https://mcp.apify.com/?tools=data_daemon/iimjobs-jobs-scraper with header Authorization: Bearer YOUR_APIFY_TOKEN in Claude, ChatGPT, Cursor or VS Code and ask for the data in plain words.
All input fields
| Field | Type | Meaning |
|---|---|---|
queries | array | One IIMJobs search per keyword, e.g. product manager, chartered accountant, investment banking, CFO, brand manager. Use role or skill words; put cities in locations. Several specific keywords beat one broad one. A job found by two keywords is saved and charged once. |
locations | array | Optional. Cities as IIMJobs lists them: Mumbai, Bangalore, Delhi NCR, Gurgaon, Pune, Hyderabad, Chennai, Remote, Anywhere in India. Case-insensitive substring match on the job's listed locations; a single known city is also applied server-side for speed. Leave empty for all of India. |
minExperience | integer | Only jobs whose experience range reaches at least this many years. Integer 0-40. |
maxExperience | integer | Only jobs whose experience range starts at or below this many years. Integer 0-40. |
postedWithinDays | integer | Only jobs posted in the last N days. Integer 1-365, e.g. 1 with a daily schedule or 7 for a weekly report. Leave empty for all open jobs. |
includeDescription | boolean | On (default): full description as HTML and plain text, plus the company profile. Adds $0.002 per job. Off: listing fields only, at half the price, which is enough for counting jobs or sizing a market. |
maxJobsPerQuery | integer | Stop a keyword after this many new jobs (default 40). Cost: $0.002 per job plus $0.002 per full description, so 40 jobs with descriptions = $0.16. Raise it for full exports: product manager alone has about 4,000 open jobs. |
maxJobs | integer | Hard cap on saved jobs for the whole run across all keywords (0 = no cap). |
onlyNewSinceLastRun | boolean | On: deliver only jobs that an earlier run with the same stateName has not already delivered, and skip the rest without charging. If postedWithinDays is empty it is set to 3 so each run stays small. Off (default): return every matching job. |
stateName | string | Optional name for this search's memory when onlyNewSinceLastRun is on, e.g. pm-bangalore-daily. Leave empty to derive it from the keywords, locations and experience filters. Use a new key to start over. |
skipJobIds | array | Job IDs you already have (the id field from earlier runs). They are skipped before any detail fetch and never charged. Large lists are fine. |
site | string | Keep iimjobs (default) for management, finance, consulting and MBA jobs. Set hirist only for IT and tech jobs from Hirist.tech; the output format is the same, and the dedicated Hirist Jobs Scraper documents it. |
Price
$0.002 per job ($2.00 per 1,000); $0.002 per job description ($2.00 per 1,000). List prices for Apify Free and Starter plans; Scale and Business plans pay 15% to 30% less.
| Event | Price | Per 1,000 | Charged when |
|---|---|---|---|
| Job | $0.002 | $2.00 | One job returned from search (title, company, salary, skills, locations, applicants, AmbitionBox rating). |
| Job description | $0.002 | $2.00 | Full job description and company profile for one job (when includeDescription is on). |
Worked example: the input above, capped at 50 jobs, costs at most $0.1. Apify's free plan includes $5 of usage a month, about 2,500 jobs; the Actor's own compute is included in the per-record price, and records skipped by filters, de-duplication or only-new mode are not charged.
What it is not for
Tech roles (use Hirist); Naukri/LinkedIn/Indeed (not covered). The data belongs to its publisher; the Actor reads public pages and endpoints and leaves out personal contact details.
Ready-made example pages
Saved inputs you can run with one click on Apify (Examples tab); each has its own page:
- Product manager jobs in India (IIMJobs): Product management roles on IIMJobs with full descriptions, experience range, salary when disclosed and applicant count.
{"queries": ["product manager"], "postedWithinDays": 15, "includeDescription": true, "maxJobsPerQuery": 100} - Investment banking and finance jobs in India (IIMJobs): Investment banking, private equity, corporate finance and CA roles from IIMJobs with descriptions and applicant counts.
{"queries": ["investment banking", "private equity", "corporate finance"], "postedWithinDays": 30, "includeDescription": true, "maxJobsPerQuery": 60} - Management consulting jobs for MBAs (IIMJobs): Strategy and management consulting openings on IIMJobs, filtered to 2–8 years of experience, with full descriptions.
{"queries": ["management consulting", "strategy consultant"], "minExperience": 2, "maxExperience": 8, "postedWithinDays": 30, "includeDescription": true, "maxJo - FP&A jobs in India posted in the last 3 days (IIMJobs): Financial planning & analysis (FP&A) roles posted on IIMJobs in the last 3 days, with the full job description, salary band when disclosed, experience range, skills and applicant count.
{"site": "iimjobs", "queries": ["financial planning and analysis", "fp&a"], "postedWithinDays": 3, "includeDescription": true, "maxJobsPerQuery": 50} - Category manager jobs in Bangalore (IIMJobs): Category management roles in Bangalore from IIMJobs (e-commerce, FMCG, quick commerce) posted in the last 15 days, with salary when disclosed, experience band, skills and the full job description.
{"site": "iimjobs", "queries": ["category manager"], "locations": ["Bangalore"], "postedWithinDays": 15, "includeDescription": true, "maxJobsPerQuery": 60} - Chief of staff and founder's office jobs in India (IIMJobs): Chief of staff and founder's office roles at Indian startups and corporates posted on IIMJobs in the last 30 days, with company, salary band, experience range and the full job description.
{"site": "iimjobs", "queries": ["chief of staff", "founder's office"], "postedWithinDays": 30, "includeDescription": true, "maxJobsPerQuery": 50} - HR business partner and talent acquisition jobs (IIMJobs): HRBP and talent acquisition roles posted on IIMJobs in the last 7 days, with company, location, experience range, salary when disclosed and applicant count. Useful for HR job alerts and hiring-trend tracking.
{"site": "iimjobs", "queries": ["hr business partner", "talent acquisition"], "postedWithinDays": 7, "includeDescription": true, "maxJobsPerQuery": 50} - Brand and marketing manager jobs in India this week (IIMJobs): Brand manager and marketing manager roles posted on IIMJobs in the last 7 days (FMCG, D2C, consumer tech), with company, city, salary band, experience and the full job description.
{"site": "iimjobs", "queries": ["brand manager", "marketing manager"], "postedWithinDays": 7, "includeDescription": true, "maxJobsPerQuery": 50} - Private equity and equity research jobs in Mumbai (IIMJobs): Private equity, fund and equity research roles in Mumbai posted on IIMJobs in the last 30 days, with firm, experience band, salary when disclosed, skills and the full job description.
{"site": "iimjobs", "queries": ["private equity", "equity research"], "locations": ["Mumbai"], "postedWithinDays": 30, "includeDescription": true, "maxJobsPerQu - Product manager jobs in Bangalore posted this week (IIMJobs): Product manager, senior PM and associate PM roles in Bangalore posted on IIMJobs in the last 7 days, with company, salary band, experience range, skills and applicant count.
{"site": "iimjobs", "queries": ["product manager"], "locations": ["Bangalore"], "postedWithinDays": 7, "includeDescription": true, "maxJobsPerQuery": 60}
Questions buyers ask
How much does it cost to scrape IIMJobs?
$0.002 per job plus $0.002 per full description, so 100 jobs with descriptions cost $0.40 and a 50-jobs-a-day feed about $6 a month.
Is there an official IIMJobs API?
No public one. This Actor reads the JSON that the iimjobs.com website itself loads and exposes it as a REST API with schedules, webhooks and only-new-jobs runs.
Which roles does IIMJobs cover?
Management, consulting, finance, CA/CFA, sales, marketing, HR and MBA-track roles at Indian and global companies, mostly 2 to 25 years of experience.
Does it return the full job description?
Yes, as HTML and plain text, plus skills, applicant and view counts, salary in LPA when disclosed and the AmbitionBox company profile when one exists.
Why is recruiter.name null?
IIMJobs shows recruiter names only to logged-in users. The Actor keeps the recruiter's designation and does not work around the site's choice. Company name, domain and profile are always included.
IIMJobs vs Naukri: which should I scrape?
IIMJobs is curated mid-to-senior management, finance and consulting hiring. Naukri is all levels. For CXO, VP, CA/CFA and MBA roles, IIMJobs has far less noise.
Can I get IIMJobs and Hirist jobs together?
Yes. Hirist.tech Jobs Scraper uses the same output schema and the same onlyNewSinceLastRun mode, so one pipeline handles both boards.
Do I need a proxy or login?
No.
Alternatives, honestly
| Option | What it gives you | Where it falls short for this job |
|---|---|---|
| IIMJobs website and recruiter dashboard | Search and email alerts for a logged-in user | No export, no API, no applicant counts in bulk |
| Other IIMJobs Actors on Apify Store | Similar scraping of the same board | Compare fields (salary, AmbitionBox profile, only-new mode) and price per 1,000 |
| Build your own scraper | Full control | The board's JSON endpoints change; you maintain pagination, de-duplication and scheduling |