Foundit Monster India Jobs | 20 Fields, Monitor Mode
Pricing
from $1.50 / 1,000 jobs
Foundit Monster India Jobs | 20 Fields, Monitor Mode
Scrape Foundit.in (formerly Monster India) job search by keyword, city, experience, salary and job-freshness. Structured JSON: title, company, salary, skills, industry, apply URL. No login, plain HTTP, pay per job. Works in Claude, ChatGPT & any MCP AI agent.
Pricing
from $1.50 / 1,000 jobs
Rating
5.0
(1)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
386
Total users
184
Monthly active users
5 hours ago
Last modified
Categories
Share
💼 Foundit Jobs Scraper: Salary, Skills & Experience Filters · From $1.50/1k
Part of the Recruiting & Jobs MCP. This actor's data is also available to AI agents through our Recruiting & Jobs MCP server, ten job-market and sourcing tools behind one endpoint. No result, no charge.
What does Foundit Jobs Scraper do?
It turns any Foundit.in (formerly Monster India) search into structured jobs data. Give it a keyword like python developer or sales manager, optionally a city, experience band, salary range, employment type and posting freshness, and you get clean JSON rows: title, company, experience range, disclosed salary, skills, industry, function and the apply URL. Foundit spans IT, sales, operations, BFSI and manufacturing, so it is the broad-market counterpart to a tech-only board.
✅ No login required | ✅ Plain HTTP, no browser or residential proxy needed | ✅ Pay only for delivered jobs | ✅ MCP-ready for AI agents
Who is it for?
Broad-market recruiters and staffing agencies who need roles outside pure tech (sales, ops, BFSI, manufacturing). Compensation analysts benchmarking disclosed salary against experience bands across a mainstream job board. Teams building a jobs aggregator, HR-tech product or sourcing pipeline that needs India-wide coverage rather than a single niche.
How much does it cost to scrape Foundit jobs?
You pay per job actually delivered. Nothing else: no subscription, no seat licence, no monthly minimum.
| Apify plan | Price per 1,000 jobs |
|---|---|
| Free | $2.50 |
| Bronze | $2.00 |
| Silver | $1.75 |
| Gold and above | $1.50 |
The Pricing tab on this page is the single source of truth and always shows the rate for your own plan. If this table and the Pricing tab ever disagree, the Pricing tab is right.
What a real pull costs. Apify's Free plan includes $5 of usage credit every month, roughly 2,000 Foundit jobs a month at no cost to you. A 500-job pull costs about $0.75 on Gold. A 5,000-job market sweep costs about $7.50 on Gold.
What is never charged. Foundit's search response mixes real listings with banner and ad rows in the same array. Those rows carry no job ID or title and are dropped before they ever reach your dataset, so you never pay for one. Empty searches, blocked pages and failed runs cost nothing either. The charge event fires only after a real job record is in your dataset.
How does it work?
Foundit.in's search results page is powered by its own public search API, the same endpoint the website's front end calls (/middleware/jobsearch). The actor calls it directly: no login, no cookies, no session warm-up. The one requirement is a same-origin Referer header, which the actor sets automatically. Because this is a plain, unauthenticated JSON endpoint, the actor runs as pure HTTP with no headless browser and no residential proxy tax, though an optional proxy input is there if you ever need it at scale.
Filters are passed straight through to Foundit as query facets, so Foundit does the filtering server-side: experience as a min to max year range, salary as an absolute-INR range (the actor converts your lakh inputs automatically), employment type, and posting freshness in days. One filter you will not find here on purpose: Foundit's frontend bundle exposes a jobTypes facet (Permanent, Contract, and so on), but it is empty on almost every real listing, so exposing it would silently return zero results for most users. It is left out rather than documented as something it cannot reliably do.
The search response does not include the full job description, only a summary. When includeJobDescription is enabled, the actor fetches each job's own detail page, one extra request per job, and reads the clean schema.org JobPosting JSON-LD block embedded in it: full description, responsibilities, qualifications, and structured posting and expiry dates. Each keyword is searched separately; results are merged and deduplicated by Foundit's own internal job ID.
🧾 What input does it take?
{"searchKeywords": ["python developer", "data analyst"],"location": "Bangalore","experienceMinYears": 2,"experienceMaxYears": 6,"employmentType": "Full Time","postedWithinDays": "7","maxJobs": 200,"includeJobDescription": false}
| Input | Required | What it does |
|---|---|---|
searchKeywords | Yes | One or more keywords, e.g. python developer. Each is searched separately and results are merged and deduplicated |
location | No | City or comma-separated cities, e.g. Bangalore,Mumbai. Blank means all India |
experienceMinYears / experienceMaxYears | No | Years-of-experience band |
salaryMinLakhs / salaryMaxLakhs | No | Annual CTC in ₹ lakhs. Most listings mark salary confidential and will not match a salary filter, see the FAQ |
employmentType | No | Full Time or Part Time |
postedWithinDays | No | 1, 3, 7, 15, or 30 |
maxJobs | No | Cap on total jobs returned across all keywords. Hard cap 1,000 |
includeJobDescription | No | Fetch each job's full description, responsibilities and qualifications (adds one request per job) |
monitorMode | No | Deliver only jobs not seen in a previous run, see "Run on a schedule" below |
proxyConfiguration | No | Off by default. Foundit's search API works over plain datacenter traffic in testing |
📤 What data do you get back?
Real record shapes from live runs, showing the combinations you actually see: salary hidden (the common case), salary disclosed, and a full description pulled in with includeJobDescription: true:
[{"job_id": "60809368","title": "Full Stack (Python) Developer - Software Engineer II","company": "Deloitte","company_id": "5024","location": "Bengaluru, India","experience_min_years": 3,"experience_max_years": 5,"salary_confidential": true,"employment_type": "Full Time","industries": ["IT Services & Consulting"],"functions": ["Software Engineering"],"skills": ["PostgreSQL", "Redis", "Git", "Docker", "Flask", "FastAPI", "react.js", "Python"],"posted_date_text": "a day ago","posted_days_ago": 1,"total_applicants": 46,"is_urgently_hiring": false,"apply_url": "https://www.foundit.in/job/full-stack-python-developer-software-engineer-ii-deloitte-bengaluru-bangalore-india-60809368","scraped_at": "2026-09-09T01:11:02.390Z"},{"job_id": "60812345","title": "Senior Data Analyst - Business Intelligence","company": "Wipro","company_id": "3312","location": "Pune, India","experience_min_years": 4,"experience_max_years": 7,"salary_confidential": false,"salary_min_lakhs": 9.5,"salary_max_lakhs": 14,"employment_type": "Full Time","industries": ["IT Services & Consulting"],"functions": ["Analytics & Business Intelligence"],"skills": ["SQL", "Power BI", "Python", "Tableau", "Excel"],"posted_date_text": "3 days ago","posted_days_ago": 3,"total_applicants": 128,"is_urgently_hiring": true,"apply_url": "https://www.foundit.in/job/senior-data-analyst-business-intelligence-wipro-pune-india-60812345","scraped_at": "2026-09-09T01:12:40.118Z"},{"job_id": "60809521","title": "Sales Manager - Enterprise Accounts","company": "Reliance Retail","company_id": "1187","location": "Mumbai, India","experience_min_years": 5,"experience_max_years": 10,"salary_confidential": true,"employment_type": "Full Time","industries": ["Retail"],"functions": ["Sales & Business Development"],"skills": ["B2B Sales", "Account Management", "Negotiation", "CRM"],"posted_date_text": "2 days ago","posted_days_ago": 2,"total_applicants": 74,"is_urgently_hiring": false,"apply_url": "https://www.foundit.in/job/sales-manager-enterprise-accounts-reliance-retail-mumbai-india-60809521","scraped_at": "2026-09-09T01:14:02.552Z","description": "We are looking for an experienced Sales Manager to lead enterprise account relationships across Western India.","responsibilities": "Own the enterprise sales pipeline, negotiate annual contracts, and coordinate with category teams to hit quarterly targets.","qualifications": "MBA or equivalent, with a proven track record in enterprise or B2B retail sales.","date_posted": "2026-09-07","valid_through": "2026-10-07"}]
Every job record contains these fields:
| Field | Description |
|---|---|
🆔 job_id | Foundit's internal job ID |
📌 title | Job title |
🏢 company / company_id | Employer or recruiter-listed name, and Foundit's internal company ID |
📍 location | Job location(s) as listed on Foundit |
⌛ experience_min_years / experience_max_years | Years of experience required |
💰 salary_confidential | True when the employer hid salary, true on most listings |
💵 salary_min_lakhs / salary_max_lakhs | Disclosed salary in ₹ lakhs. Present only when salary_confidential is false |
🏠 employment_type | Full time or part time |
🏭 industries / functions | Industry and functional-area tags |
🛠️ skills | Tagged skills as an array |
🗓️ posted_date_text / posted_days_ago | Relative and numeric posting age |
👥 total_applicants | Applicant count Foundit reports |
🔥 is_urgently_hiring | True when Foundit marks the listing as urgently hiring |
🔗 apply_url | URL to the Foundit job detail or apply page |
🕒 scraped_at | ISO timestamp the record was captured |
📝 description, responsibilities, qualifications, date_posted, valid_through | Present only when includeJobDescription: true |
Any field Foundit did not return for a given job (most commonly the salary pair, or the description fields when includeJobDescription is off) is dropped from the record rather than sent as null, so a listing without disclosed salary simply has no salary_min_lakhs key at all, exactly like the first and third records above.
Every run also ends with a final _type: "info" record. It is informational only and never billed.
What are the limitations?
Worth knowing before you buy, so there are no surprises:
- Salary is hidden on most listings. Foundit lets employers mark salary confidential, and most do.
salary_confidential: trueflags those rows, and the numeric fields are simply absent rather than zero. - Full descriptions cost an extra request.
includeJobDescriptionfetches each job's detail page separately, one extra HTTP call per job, so it is off by default for speed. - No
jobTypesfilter (Permanent, Contract, and so on). It exists in Foundit's frontend bundle but is essentially empty on real listings, so it was left out rather than shipped as a filter that would silently return nothing for most users. - Per-run caps.
maxJobshard-caps at 1,000, and the actor stops walking a keyword after roughly 4,000 raw rows or three consecutive pages with nothing new, whichever comes first. - A blocked run stops and tells you why. If Foundit ever returns 403 or 404 for this actor, the run ends with an explanatory error row rather than retrying indefinitely or attempting to solve a challenge.
💼 What can you use it for?
Compensation and role benchmarking. Pull every mid-level analyst role in a city and track how experience bands map to disclosed salary where employers choose to publish it.
Competitor hiring intelligence. Track how many roles a company has open on Foundit, in which functions, and how urgently they are marked as hiring.
Talent sourcing. Feed roles into an ATS or sourcing tool, or build a jobs digest for a specific function (finance ops, sales, customer support) refreshed on a schedule.
Jobs board and aggregator. Power a niche jobs site or newsletter with fresh Foundit listings pulled by keyword, city or industry.
🚀 How do I get started?
- Open the actor and add one or more search keywords, for example
python developer. - Set a location, for example
Bangalore, or leave blank for all India. - Optionally add experience, salary, employment-type and freshness filters.
- Set
maxJobsto control cost. - Click Start. Download as JSON, CSV or Excel, or pull the dataset via API or MCP.
🔁 Run on a schedule
Turn this from a one-off pull into a standing feed with Apify's built-in Schedules. No code, no cron server of your own.
- Run the actor once with the input you want repeated, then click Save as a task at the top of the run form. This keeps your exact input attached for every future run.
- In the Apify Console, go to Schedules in the left sidebar, then Create new.
- Name it, set your timezone, and pick a frequency: a preset (hourly, daily, weekly) or a cron expression such as
0 6 * * *for daily at 6am. - Under Actors or tasks to run, add the task you saved in step 1.
- Save. It then runs unattended, billed the same pay-per-job way as a manual run. Nothing is charged just for the schedule existing.
Or automate the setup itself via the API:
curl -X POST "https://api.apify.com/v2/schedules?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"name":"foundit-jobs-daily","cronExpression":"0 6 * * *","isEnabled":true,"actions":[{"type":"RUN_ACTOR","actorId":"themineworks/foundit-jobs-scraper"}]}'
Full options, including time zones, run notifications and pausing, are in Apify's Schedules documentation.
Monitor mode: pay only for NEW jobs
Set monitorMode: true and the actor remembers what it delivered last time, keyed on job_id. On the next scheduled run, only genuinely new jobs are pushed and charged, not the whole feed every time. The summary row reports new_this_run and skipped_duplicates. The first run establishes the baseline (everything is new); every run after that is incremental.
Is scraping Foundit legal?
This actor reads only Foundit's public job search results, the same listings any visitor sees without logging in. It does not access any authenticated area of the site and does not attempt to bypass any access control. If the results you pull include personal data, laws like the GDPR and CCPA may apply to how you store and use it, so collect only what you have a legitimate purpose for. This is general information, not legal advice, and you remain responsible for using the output in line with Foundit's own terms and the law that applies to you.
FAQ
Does it log in to Foundit? No. The actor calls Foundit's own public search API directly, the same one the website's front end uses. No account, no cookies, no captcha.
Why is salary_min_lakhs missing on most jobs?
Foundit lets employers mark salary confidential, and most listings do. salary_confidential: true flags those rows. Numeric salary only appears when the employer chose to disclose it, mirroring what you would see browsing the site directly.
Does it need a residential proxy?
No. Foundit's search endpoint is unauthenticated and worked over plain datacenter connections in testing, with no blocks observed. A proxyConfiguration input is still available if you scale up volume and want the option, but it is off by default to keep runs cheap.
How do I get the full job description?
Set includeJobDescription: true. This fetches each job's own detail page and reads its embedded structured data, one extra request per job, so it is off by default for speed.
Am I charged for banner or ad rows mixed into the search results? No. Foundit's raw search response includes some non-job rows with no job ID or title. The actor drops these before they reach your dataset, so they are never billed.
Can I use it in an AI agent? Yes. It is exposed as an MCP tool. See the section below.
Can I use Foundit Jobs Scraper through an MCP server? Yes. It is exposed as an MCP tool, so any MCP-compatible AI assistant, Claude, ChatGPT, or your own agent, can call it directly. See "Use in Claude, ChatGPT and any MCP agent" above for the paste-ready prompt and setup.
🤖 Use in Claude, ChatGPT and any MCP agent
Add it to Claude Code in one line:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=themineworks/foundit-jobs-scraper"
Or point any MCP client at:
https://mcp.apify.com/?tools=themineworks/foundit-jobs-scraper
Things an agent can ask for once connected:
- "Find 100 python developer roles in Bangalore posted in the last week."
- "Pull sales manager jobs across Mumbai and Delhi and put them in a table with salary where disclosed."
- "Get every data analyst role at Deloitte listed on Foundit right now."
Copy this into your AI assistant
Paste the line below into ChatGPT, Claude, or any assistant connected to Apify's MCP, and it will run the job for you:
Use the Apify actor themineworks/foundit-jobs-scraper to find the 50 most recent sales manager openings in Mumbai and Delhi with salary disclosed where available. Return the results as a table.
Or call it programmatically with the Apify client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/foundit-jobs-scraper').call({searchKeywords: ['python developer'],location: 'Bangalore',maxJobs: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
🛠️ Related job-market actors
Found the roles. Now cross-check and enrich them:
- Naukri Jobs Scraper: cross-reference the same role against India's largest job board for salary and demand comparison.
- Hirist Jobs Scraper: the tech-specific alternative when you only need IT roles, with AmbitionBox company ratings included.
- LinkedIn Company Scraper: profile the hiring company, industry, size and HQ.
- LinkedIn Employees Scraper: find the recruiters and hiring managers at any of the companies.
- Recruiting & Jobs MCP: this actor and nine more job-market tools behind one MCP endpoint for AI agents.
Typical flow: foundit-jobs-scraper surfaces broad-market roles, linkedin-company-details profiles the employer, linkedin-employees finds the hiring team.
Questions or need a custom field set? Reach out through the Apify profile.