Foundit Monster India Jobs | 20 Fields, Monitor Mode avatar

Foundit Monster India Jobs | 20 Fields, Monitor Mode

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
Foundit Monster India Jobs | 20 Fields, Monitor Mode

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

386

Total users

184

Monthly active users

5 hours ago

Last modified

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 planPrice 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
}
InputRequiredWhat it does
searchKeywordsYesOne or more keywords, e.g. python developer. Each is searched separately and results are merged and deduplicated
locationNoCity or comma-separated cities, e.g. Bangalore,Mumbai. Blank means all India
experienceMinYears / experienceMaxYearsNoYears-of-experience band
salaryMinLakhs / salaryMaxLakhsNoAnnual CTC in ₹ lakhs. Most listings mark salary confidential and will not match a salary filter, see the FAQ
employmentTypeNoFull Time or Part Time
postedWithinDaysNo1, 3, 7, 15, or 30
maxJobsNoCap on total jobs returned across all keywords. Hard cap 1,000
includeJobDescriptionNoFetch each job's full description, responsibilities and qualifications (adds one request per job)
monitorModeNoDeliver only jobs not seen in a previous run, see "Run on a schedule" below
proxyConfigurationNoOff 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:

FieldDescription
🆔 job_idFoundit's internal job ID
📌 titleJob title
🏢 company / company_idEmployer or recruiter-listed name, and Foundit's internal company ID
📍 locationJob location(s) as listed on Foundit
experience_min_years / experience_max_yearsYears of experience required
💰 salary_confidentialTrue when the employer hid salary, true on most listings
💵 salary_min_lakhs / salary_max_lakhsDisclosed salary in ₹ lakhs. Present only when salary_confidential is false
🏠 employment_typeFull time or part time
🏭 industries / functionsIndustry and functional-area tags
🛠️ skillsTagged skills as an array
🗓️ posted_date_text / posted_days_agoRelative and numeric posting age
👥 total_applicantsApplicant count Foundit reports
🔥 is_urgently_hiringTrue when Foundit marks the listing as urgently hiring
🔗 apply_urlURL to the Foundit job detail or apply page
🕒 scraped_atISO timestamp the record was captured
📝 description, responsibilities, qualifications, date_posted, valid_throughPresent 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: true flags those rows, and the numeric fields are simply absent rather than zero.
  • Full descriptions cost an extra request. includeJobDescription fetches each job's detail page separately, one extra HTTP call per job, so it is off by default for speed.
  • No jobTypes filter (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. maxJobs hard-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?

  1. Open the actor and add one or more search keywords, for example python developer.
  2. Set a location, for example Bangalore, or leave blank for all India.
  3. Optionally add experience, salary, employment-type and freshness filters.
  4. Set maxJobs to control cost.
  5. 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.

  1. 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.
  2. In the Apify Console, go to Schedules in the left sidebar, then Create new.
  3. 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.
  4. Under Actors or tasks to run, add the task you saved in step 1.
  5. 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.

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);

Found the roles. Now cross-check and enrich them:

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.