# Foundit Jobs Scraper (`parseforge/foundit-jobs-scraper`) Actor

Scrape Foundit (Monster India) jobs with salary, experience, skills, location, posted date, apply link and full description. Filter by city, function and freshness. Export to CSV, Excel, JSON or XML.

- **URL**: https://apify.com/parseforge/foundit-jobs-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (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 $3.40 / 1,000 result items

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?

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

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)

## 💼 Foundit Jobs Scraper

> 🚀 **Export Foundit (formerly Monster India) job listings in seconds.** Search by keyword, city, function, industry, experience and salary, and get one row per job with 58 fields: title, company, location with coordinates, experience, published salary, skills, exact posting date, apply link and the full description. 240 jobs with descriptions in about 90 seconds, no login.

Foundit Jobs Scraper reads the public Foundit job board, the same listings a visitor sees on foundit.in. It pages through the results 100 jobs at a time, opens each job page for the full description, coordinates and state, and returns clean, consistent rows you can drop straight into a spreadsheet, a database or an AI pipeline.

Each row carries 58 fields (54 when you turn the description block off). In our tests a six-search run returned 240 unique jobs in 92 seconds, and every row had a location with coordinates, skills and an ISO posting date. Rows follow the same `jobs-1` field names as the other ParseForge jobs Actors, so results from several boards can be joined on `uid`.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Recruiters and staffing agencies, HR-tech and job aggregator teams, compensation analysts, sales teams that sell to hiring companies, labour-market researchers | Lead lists of companies that are hiring, salary and skills benchmarking, job feeds for a career site, hiring-demand tracking by city, talent-market research for India |

### 📋 What the Foundit Jobs Scraper does

- 🔎 **Keyword and filter search.** Any number of keywords, each searched in every location you list, with filters for posting age, experience range, salary range, employment type, job type, employer type, function and industry.
- 🔗 **Paste Foundit links.** A results link keeps its own filters. A job link returns that one job.
- 💰 **Salary as numbers.** When an employer publishes a range you get `salaryMin`, `salaryMax`, `salaryCurrency` and `salaryInterval`. When the employer marks the salary confidential it stays hidden and `salaryConfidential` says so.
- 📍 **Places you can map.** City, state, country code, latitude and longitude, plus every extra location a job lists.
- 🗓 **Real dates.** `datePosted`, `dateUpdated` and the closing date as ISO timestamps, never "3 days ago".
- 🛠 **Skills, functions, industries.** As Foundit tags them, as clean lists.
- 🧬 **Chains with other boards.** Rows carry `schemaVersion`, `uid`, `source` and the shared `jobs-1` names.
- 🧹 **No duplicates, no surprises.** A job is delivered once per run, and a link that cannot be read gets a clear error row that is never charged.

> 💡 **Why it matters:** Foundit is one of India's large job boards and lists many roles outside tech: sales, operations, banking, healthcare, education and manufacturing. One consistent dataset lets you compare demand, pay and skills across cities.

### 🎬 Full Demo (🚧 Coming soon)

### 📊 Output

One row per job. Values Foundit does not publish read `Not Disclosed`, and empty lists are `[]`. Error rows carry only the input, `scrapedAt` and `error`.

| Field | Description |
|---|---|
| 🖼 imageUrl | Employer logo, Not Disclosed when the job has none |
| 🧬 schemaVersion | Always `jobs-1`, the shared jobs row format |
| 🔑 uid | `foundit:<companyId>:<jobId>`, unique across boards and the key for de-duplication |
| 🆔 jobId | Foundit job id |
| 📌 title | Job title |
| 📶 status | `active` or `expired` |
| 🔗 jobUrl | Public Foundit page of the job |
| 📨 applyUrl | Where to apply: the employer or source posting for syndicated jobs, the Foundit page otherwise |
| ↗️ externalApply | Yes when applying happens off Foundit |
| 🏷 listingType | `Direct` (posted on Foundit by the employer) or `Syndicated` (collected by Foundit from another site) |
| 🌐 source | Always `foundit` |
| 🗂 sourceType | Always `job-board` |
| ⚙️ ats | Applicant tracking system detected from the apply link (Oracle Cloud, Workday, Greenhouse and others), Not Disclosed otherwise |
| 🏢 company | Employer name, Not Disclosed when the employer is hidden |
| 🆔 companyId | Foundit company id |
| 🔗 companyUrl | Foundit page listing the company's jobs |
| 👔 employerType | Company or Consultant |
| 📍 location | Location text as Foundit prints it |
| 🏙 city | First city |
| 🗺 region | State |
| 🌍 country | Country |
| 🏳 countryCode | ISO country code |
| 🧭 latitude | Latitude of the first location |
| 🧭 longitude | Longitude of the first location |
| 📍 additionalLocations | Other cities the job lists |
| 🏠 isRemote | Yes when the job is remote or work from home |
| 🏠 workArrangement | `Remote` when remote, Not Disclosed otherwise (Foundit does not tag on-site or hybrid) |
| ⏱ employmentType | Full-time, Part-time, Contract, Temporary or Internship |
| 🏷 jobTypes | Foundit job-type tags such as Permanent Job, Work From Home, Jobs for Women |
| 🧩 functions | Foundit function tags |
| 🏭 industries | Foundit industry tags |
| 🎓 experience | Required experience as printed, for example `5-10 Years` |
| 🎓 yearsExperienceMin | Minimum years |
| 🎓 yearsExperienceMax | Maximum years |
| 🗓 datePosted | Posting time, ISO 8601 UTC |
| 🔄 dateUpdated | Last update, ISO 8601 UTC |
| ⏳ applicationDeadline | Closing date Foundit gives the posting |
| 💰 hasSalary | Yes when a salary range is published |
| 🔒 salaryConfidential | Yes when the employer hid the salary |
| 💰 salaryText | Salary as Foundit prints it |
| 💰 salaryMin | Annual minimum in rupees |
| 💰 salaryMax | Annual maximum in rupees |
| 💱 salaryCurrency | Currency code |
| 📆 salaryInterval | `year` |
| 🧾 salarySource | `board-structured` |
| 🛠 skills | Skills as a list |
| 🛠 skillCount | Number of skills |
| 👥 totalApplicants | Applicants so far (direct listings only) |
| 🔥 isUrgentlyHiring | Yes when flagged urgent |
| 🚶 isWalkIn | Yes for walk-in drives |
| ⚡ quickApply | Yes when Foundit offers quick apply |
| 📝 descriptionText | Full description as plain text (with the description block on) |
| 📝 descriptionHtml | Full description as Foundit's HTML |
| 🔢 descriptionLength | Characters of plain text |
| 📝 descriptionSnippet | First 300 characters |
| 🔎 searchQuery | The keyword that found the job |
| 🕒 scrapedAt | ISO timestamp of the scrape |
| ❌ error | null on success |

Three real rows (descriptions shortened here):

```json
[
  {
    "imageUrl": "https://media.monsterindia.com/logos/xcharacterinx/jdlogo.gif",
    "schemaVersion": "jobs-1",
    "uid": "foundit:41798:69116736",
    "jobId": "69116736",
    "title": "Finance Controller",
    "status": "active",
    "jobUrl": "https://www.foundit.in/job/finance-controller-character-sketches-mumbai-mumbai-city-69116736",
    "applyUrl": "https://www.foundit.in/job/finance-controller-character-sketches-mumbai-mumbai-city-69116736",
    "externalApply": "No",
    "listingType": "Direct",
    "source": "foundit",
    "sourceType": "job-board",
    "ats": "Not Disclosed",
    "company": "Character Sketches",
    "companyId": "41798",
    "companyUrl": "https://www.foundit.in/search/character-sketches-41798-jobs-career",
    "employerType": "Consultant",
    "location": "Mumbai, Mumbai City",
    "city": "Mumbai",
    "region": "Maharashtra",
    "country": "India",
    "countryCode": "IN",
    "latitude": 19.075984,
    "longitude": 72.877656,
    "additionalLocations": [
      "Mumbai City"
    ],
    "isRemote": "No",
    "workArrangement": "Not Disclosed",
    "employmentType": "Full-time",
    "jobTypes": [
      "Permanent Job"
    ],
    "functions": [
      "Finance & Accounts"
    ],
    "industries": [],
    "experience": "6-15 Years",
    "yearsExperienceMin": 6,
    "yearsExperienceMax": 15,
    "datePosted": "2026-09-28T07:14:34.000Z",
    "dateUpdated": "2026-09-28T07:14:34.000Z",
    "applicationDeadline": "2026-11-26T18:30:00.000Z",
    "hasSalary": "Yes",
    "salaryConfidential": "No",
    "salaryText": "18,00,000-23,00,000 INR",
    "salaryMin": 1800000,
    "salaryMax": 2300000,
    "salaryCurrency": "INR",
    "salaryInterval": "year",
    "salarySource": "board-structured",
    "skills": [
      "Financial Accounting",
      "Taxation",
      "Mis",
      "Budget",
      "Cash Flow",
      "Finance Controller",
      "Production Finance"
    ],
    "skillCount": 7,
    "totalApplicants": 56,
    "isUrgentlyHiring": "No",
    "isWalkIn": "No",
    "quickApply": "Yes",
    "descriptionText": "We are looking for an experienced Finance Controller to manage the company's finance, accounting, taxation, compliance and project finance functions. The role w...",
    "descriptionHtml": "<p>We are looking for an experienced <strong>Finance Controller</strong> to manage the company's finance, accounting, ta...",
    "descriptionLength": 1704,
    "descriptionSnippet": "We are looking for an experienced Finance Controller to manage the company's finance, accounting, taxation, compliance a...",
    "searchQuery": "accountant",
    "scrapedAt": "2026-09-29T03:49:07.872Z",
    "error": null
  },
  {
    "imageUrl": "https://media.monsterindia.com/logos/xOP_poliinx1705514019129/jdlogo.gif",
    "schemaVersion": "jobs-1",
    "uid": "foundit:811125:69176218",
    "jobId": "69176218",
    "title": "Zonal Sales Manager",
    "status": "active",
    "jobUrl": "https://www.foundit.in/job/zonal-sales-manager-policybazaarcom-mumbai-india-69176218",
    "applyUrl": "https://www.linkedin.com/jobs/view/4469731859/",
    "externalApply": "Yes",
    "listingType": "Syndicated",
    "source": "foundit",
    "sourceType": "job-board",
    "ats": "Not Disclosed",
    "company": "Policybazaar.Com",
    "companyId": "811125",
    "companyUrl": "https://www.foundit.in/search/policybazaarcom-811125-jobs-career",
    "employerType": "Company",
    "location": "Mumbai, India",
    "city": "Mumbai",
    "region": "Maharashtra",
    "country": "India",
    "countryCode": "IN",
    "latitude": 19.075984,
    "longitude": 72.877656,
    "additionalLocations": [],
    "isRemote": "No",
    "workArrangement": "Not Disclosed",
    "employmentType": "Full-time",
    "jobTypes": [
      "Permanent Job"
    ],
    "functions": [
      "Bfsi Insurance"
    ],
    "industries": [
      "Insurance"
    ],
    "experience": "8-12 Years",
    "yearsExperienceMin": 8,
    "yearsExperienceMax": 12,
    "datePosted": "2026-09-28T19:49:10.000Z",
    "dateUpdated": "2026-09-28T19:49:10.000Z",
    "applicationDeadline": "2026-11-12T18:30:00.000Z",
    "hasSalary": "No",
    "salaryConfidential": "No",
    "salaryText": "Not Disclosed",
    "salaryMin": "Not Disclosed",
    "salaryMax": "Not Disclosed",
    "salaryCurrency": "Not Disclosed",
    "salaryInterval": "Not Disclosed",
    "salarySource": "Not Disclosed",
    "skills": [
      "Team Management",
      "Customer Acquisition",
      "Relationship management",
      "Market Expansion",
      "Sales strategies"
    ],
    "skillCount": 5,
    "totalApplicants": "Not Disclosed",
    "isUrgentlyHiring": "No",
    "isWalkIn": "No",
    "quickApply": "No",
    "descriptionText": "Zonal Sales Manager Job Summary We are looking for an experienced and result-oriented Zonal Sales Manager to drive sales growth and business expansion across ...",
    "descriptionHtml": "<p><strong>Zonal Sales Manager</strong></p><p><strong>Job Summary</strong></p><p></p><p>We are looking for an experience...",
    "descriptionLength": 2669,
    "descriptionSnippet": "Zonal Sales Manager\n\nJob Summary\n\nWe are looking for an experienced and result-oriented Zonal Sales Manager to drive sal...",
    "searchQuery": "sales manager",
    "scrapedAt": "2026-09-29T03:46:30.256Z",
    "error": null
  },
  {
    "imageUrl": "https://media.monsterindia.com/logos/xascinx/jdlogo.gif",
    "schemaVersion": "jobs-1",
    "uid": "foundit:2585:65486823",
    "jobId": "65486823",
    "title": "Entry Level HR Recruiter - Rajajinagar, Bangalore",
    "status": "active",
    "jobUrl": "https://www.foundit.in/job/entry-level-hr-recruiter-rajajinagar-bangalore-askexim-services-bengaluru-bangalore-65486823",
    "applyUrl": "https://www.foundit.in/job/entry-level-hr-recruiter-rajajinagar-bangalore-askexim-services-bengaluru-bangalore-65486823",
    "externalApply": "No",
    "listingType": "Direct",
    "source": "foundit",
    "sourceType": "job-board",
    "ats": "Not Disclosed",
    "company": "Askexim Services",
    "companyId": "2585",
    "companyUrl": "https://www.foundit.in/search/askexim-services-2585-jobs-career",
    "employerType": "Consultant",
    "location": "Bengaluru",
    "city": "Bengaluru",
    "region": "Karnataka",
    "country": "India",
    "countryCode": "IN",
    "latitude": 12.971599,
    "longitude": 77.594563,
    "additionalLocations": [],
    "isRemote": "No",
    "workArrangement": "Not Disclosed",
    "employmentType": "Full-time",
    "jobTypes": [
      "Permanent Job"
    ],
    "functions": [
      "Human Resources"
    ],
    "industries": [
      "Employment",
      "Consulting",
      "Recruiting",
      "Staffing Agency",
      "Human Resources"
    ],
    "experience": "Not Disclosed",
    "yearsExperienceMin": "Not Disclosed",
    "yearsExperienceMax": "Not Disclosed",
    "datePosted": "2026-09-04T06:26:25.000Z",
    "dateUpdated": "2026-09-25T11:24:15.000Z",
    "applicationDeadline": "2026-11-23T18:30:00.000Z",
    "hasSalary": "No",
    "salaryConfidential": "Yes",
    "salaryText": "Not Disclosed",
    "salaryMin": "Not Disclosed",
    "salaryMax": "Not Disclosed",
    "salaryCurrency": "Not Disclosed",
    "salaryInterval": "Not Disclosed",
    "salarySource": "Not Disclosed",
    "skills": [
      "Talent Aquisition",
      "Hr Recruiter",
      "Recruiter",
      "Trainee Recruiter",
      "Hr",
      "Fresher",
      "Human Resources",
      "Recruitment",
      "HR intern",
      "entry level",
      "Fresh Graduate"
    ],
    "skillCount": 11,
    "totalApplicants": 553,
    "isUrgentlyHiring": "No",
    "isWalkIn": "No",
    "quickApply": "Yes",
    "descriptionText": "Company: Askexim Services Position : Entry Level HR Recruiter Location: Work from office at Rajajinagar, Bangalore (candidates from nearby areas preferred) J...",
    "descriptionHtml": "<p><strong>Company:</strong> Askexim Services</p><p></p><p><strong>Position</strong>: Entry Level HR Recruiter</p><p></p...",
    "descriptionLength": 2704,
    "descriptionSnippet": "Company: Askexim Services\n\nPosition : Entry Level HR Recruiter\n\nLocation: Work from office at Rajajinagar, Bangalore (ca...",
    "searchQuery": "hr executive",
    "scrapedAt": "2026-09-29T03:52:48.918Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

- 🧾 **58 consistent fields.** Descriptions, coordinates, state, exact dates and salary as numbers, not just the search card.
- 🧬 **Shared jobs format.** `schemaVersion`, `uid`, `source` and the `jobs-1` names match the other ParseForge jobs Actors, so several boards land in one table.
- 🔒 **Respects hidden salaries.** Foundit's data can hold a salary the employer marked confidential. This Actor leaves it out and tells you why in `salaryConfidential`.
- 🌆 **More than 9,500 jobs per topic.** Foundit stops paging near 9,500 results per search. Every location you list is its own search with its own window.
- 🛡 **Fails loudly.** If Foundit stops answering, the run fails with a message instead of ending green with an empty dataset.
- ⚡ **Light and cheap to run.** Plain HTTP, no browser, 512 MB. Measured about $0.03 of platform usage per 1,000 jobs with descriptions on.

### 📈 How it compares to alternatives

| | This Actor | Most-used alternative on the Store |
|---|---|---|
| Fields per job | 58 (54 without descriptions) | about 20 |
| Full description | On by default, as text and HTML | Off by default, one text field |
| Coordinates and state | Yes, from the job page | No |
| Posting date | Always an ISO timestamp | Relative text ("3 days ago") by default |
| Salary | Rupees per year as numbers, with currency and interval | Lakhs |
| Employer-hidden salary | Left out and flagged | Left out and flagged |
| Direct vs syndicated flag | Yes | No |
| Shared cross-board row format | Yes (`jobs-1`, `uid`) | No |
| Only-new-jobs mode | No, de-duplicate on `uid` | Yes (monitor mode) |
| Ceiling per search | About 9,500 jobs, one window per location | Not stated |

### 🚀 How to use

1. Create a free Apify account with $5 of credit: [sign up here](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the Actor and type one or more **Search keywords**, for example `python developer` or `sales manager`.
3. Optionally add **Locations** (one per line), a **Posted within** window, experience and salary ranges, and function or industry names.
4. Set **Max Items**. Free accounts are limited to 10 items, paid accounts can request up to 1,000,000.
5. Click **Start**. The dataset fills as pages are read.
6. Download the dataset as CSV, Excel, JSON or XML, or read it through the API.

### 💼 Business use cases

#### 🧲 Sales and lead generation

Companies that post many roles are growing. Filter by function and city, group the dataset by `company`, and hand the list of hiring employers to your sales team. Use `companyId` and `companyUrl` to see everything a company is hiring for.

#### 📊 Salary and skills benchmarking

Every row with a published range gives an annual minimum and maximum in rupees. Combine it with `skills`, `yearsExperienceMin` and `city` to see what a skill pays in each market.

#### 🗂 Job feeds and aggregators

Run daily with **Posted within** set to 1 day and **Sort by** newest first. `uid` is a stable key, so your database can skip jobs it already has.

#### 🔬 Labour-market research

Track how demand for a role moves between cities, industries and experience bands. Foundit lists a large share of non-tech roles.

### 🔌 Automating Foundit Jobs Scraper

Schedule the Actor in Apify Console for a daily or weekly run, then send the dataset where you need it: Make and Zapier for no-code flows, Slack or email alerts when a new run finishes, Airbyte for warehouse loads, GitHub Actions for pipelines, Google Drive or Google Sheets for shared reports. The Apify API and webhooks work with any stack.

### 🌟 Beyond business use cases

- 🎓 **Research:** study hiring patterns, skill demand and pay across Indian cities.
- 🧑‍💻 **Personal:** build your own alert for the roles you want, filtered by city and experience.
- 🤝 **Non-profit:** help job seekers and training programmes see which skills local employers ask for.
- 🧪 **Experimentation:** train and test matching, ranking or salary-prediction models on real postings.

### 🤖 Ask an AI assistant about this scraper

Open ChatGPT, Claude or Gemini and paste this page's link with a question such as "which filters should I use to list fintech jobs in Pune posted this week?". The Actor also works as a tool for AI agents through the Apify API and MCP.

### ❓ Frequently Asked Questions

#### 🔑 Do I need a Foundit account or cookies?

No. The Actor reads the public listings a logged-out visitor sees. It never logs in and never asks for cookies.

#### 📚 How many jobs can one search return?

Foundit shows about 9,500 jobs per search at most, in pages of 100, even when its counter says more. To go further, add several **Locations** (each is its own search with its own 9,500 window) or narrow the search with filters and run it more than once.

#### 💰 Why is the salary often Not Disclosed?

Most Foundit postings publish no salary. In our runs a published range appeared on 4% to 30% of rows depending on the search, and between none and about two thirds of the rows in some searches were marked confidential by the employer. Confidential salaries are left out on purpose and `salaryConfidential` says Yes.

#### 🏷 What is the difference between Direct and Syndicated?

Direct jobs are posted on Foundit by the employer and usually carry applicant counts and often salary. Syndicated jobs are collected by Foundit from other sites; their `applyUrl` points to the original posting and `totalApplicants` is Not Disclosed. The share depends on the keyword: from 3% to 96% syndicated in our runs.

#### 🔗 Which links can I paste?

Foundit results links such as `https://www.foundit.in/srp/results?query=python&locations=pune` (the filters in the link are used) and job links such as `https://www.foundit.in/job/...-69168913`. Other pages are skipped and listed as error rows that are never charged.

#### 🧩 What values do Functions and Industries accept?

Foundit's exact names, for example `Software Development`, `Sales`, `Human Resources` or `BPO`. A value Foundit does not know returns no jobs, and the run says so. Run once without the filter and read the `functions` and `industries` columns to see the names in use.

#### 🕒 Can I get only new jobs every day?

Set **Posted within** to 1 day, **Sort by** to newest first and schedule the run daily. The Actor keeps no memory between runs, so use `uid` in your own database to drop repeats.

#### 🧹 Are duplicates or error rows charged?

No. A job is delivered once per run even when several keywords find it. Error rows are never charged.

#### 🛑 What happens if a job was removed?

A pasted job link that Foundit no longer serves gets an error row that names the link. A job that disappears between the search and the detail request is still delivered from the search data, with the description fields set to Not Disclosed.

#### 🛡 Do I need a proxy?

No. The default is a direct connection. If Foundit starts refusing the run's address, the Actor rotates and moves up to residential proxy by itself and says so in the log. If everything is refused the run fails with a clear message.

#### 🌏 Does it cover Foundit in Singapore, Malaysia or the Philippines?

No. This Actor reads foundit.in (India). Rows always have `country` India unless Foundit lists an overseas location.

#### 👤 Does it collect recruiter names or phone numbers?

No. Recruiter names and contact numbers that Foundit stores are not collected. Descriptions are delivered as the employer wrote them.

#### 🆓 What does a free account get?

Free accounts are limited to 10 items per run, enough to check the fields. Paid accounts can request up to 1,000,000 items.

### 🔌 Integrate with any app

Use Apify integrations to connect the dataset to Make, Zapier, n8n, Google Sheets, Slack, Airtable, Airbyte, webhooks and more, or call the Actor from your own code with the Apify API and clients for JavaScript and Python.

### ➡️ Next step

- [Naukri.com Jobs Scraper](https://apify.com/parseforge/naukri-com-scraper): India's other large job board. Its **Job title or keyword** and **City or region** inputs take the same keyword and city you searched here (`searchQuery`, `city`), so you can compare the two boards.
- [Career Site Jobs Scraper](https://apify.com/parseforge/career-site-jobs-scraper): for rows whose `ats` is Oracle Cloud, Workday, Greenhouse, Lever, Ashby, SmartRecruiters, iCIMS, Workable, Recruitee or BambooHR, paste the `applyUrl` into its **Career site URLs** (it accepts a single posting link) to read that employer's whole career site. Only a small share of Foundit rows link to such a system.
- [Glassdoor Scraper](https://apify.com/parseforge/glassdoor-scraper): put a `company` value into its **Company Name** input to get reviews, salaries and interview data for the employer.
- [Internshala Scraper](https://apify.com/parseforge/internshala-scraper): internships and fresher jobs in India, a good companion when you hire entry-level.

### 🔗 Recommended Actors

- [Naukri.com Jobs Scraper](https://apify.com/parseforge/naukri-com-scraper)
- [Career Site Jobs Scraper](https://apify.com/parseforge/career-site-jobs-scraper)
- [Glassdoor Scraper](https://apify.com/parseforge/glassdoor-scraper)
- [Indeed Jobs Scraper](https://apify.com/parseforge/indeed-scraper)
- [Internshala Scraper](https://apify.com/parseforge/internshala-scraper)

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** this is an independent tool, not affiliated with Foundit or Monster. It collects only publicly available data.

# Actor input Schema

## `searchQueries` (type: `array`):

Job titles or skills to search, one per line, for example "python developer" or "sales manager". Each keyword is searched on its own (and once per location below); duplicates across keywords are removed.

## `startUrls` (type: `array`):

Optional. A Foundit results link (https://www.foundit.in/srp/results?query=python\&locations=pune) is searched with the filters already in the link. A job link (https://www.foundit.in/job/...-69168913) returns that single job. Other pages are skipped and listed as error rows.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `locations` (type: `array`):

Cities or regions such as Bengaluru, Mumbai, Delhi NCR, Pune or Remote. Each location is searched separately, so every one gets its own result window (Foundit shows about 9,500 jobs per search). Leave empty for all of India.

## `postedWithinDays` (type: `string`):

Only jobs posted in the last N days (1 to 30).

## `experienceMin` (type: `integer`):

Keep jobs whose required experience range overlaps yours. 0 = freshers.

## `experienceMax` (type: `integer`):

Upper end of the experience range you want to match.

## `salaryMinLakhs` (type: `integer`):

Annual pay in lakhs of rupees (10 = 10 LPA). Only jobs that publish a salary can match; most Foundit listings do not.

## `salaryMaxLakhs` (type: `integer`):

Upper end of the annual salary range in lakhs.

## `employmentType` (type: `string`):

Full time or part time. Empty = both.

## `jobType` (type: `string`):

Foundit job-type tag. Contract Job, Work From Home and Jobs for Women are small groups; Permanent Job covers nearly everything.

## `employerType` (type: `string`):

Direct employers or recruitment consultants.

## `functions` (type: `array`):

Foundit function names, matched exactly, for example "Software Development", "Sales", "Human Resources", "Education", "Healthcare". Several values match any of them. Check the "functions" column of a first run for the exact names.

## `industries` (type: `array`):

Foundit industry names, matched exactly, for example "IT/Computers - Software", "BPO", "Banking/Accounting/Financial Services". Check the "industries" column of a first run for the exact names.

## `sortBy` (type: `string`):

Relevance is the default order on Foundit. Newest first suits daily monitoring together with "Posted within".

## `includeDescription` (type: `boolean`):

Adds descriptionText, descriptionHtml, latitude, longitude and the state by reading each job page (one extra request per job). Turn off for the fastest run.

## `maxItemsPerQuery` (type: `integer`):

Stop each keyword/location search after this many jobs, so one broad keyword does not use up the whole run. Empty = no per-search limit.

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

Foundit answers plain requests, so the default is no proxy. If Foundit starts refusing the run address, the run moves up by itself: your choice, then Apify datacenter, then residential.

## Actor input object example

```json
{
  "searchQueries": [
    "python developer"
  ],
  "startUrls": [],
  "maxItems": 10,
  "locations": [],
  "employmentType": "",
  "jobType": "",
  "employerType": "",
  "functions": [],
  "industries": [],
  "sortBy": "relevance",
  "includeDescription": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Jobs with company, location, experience, salary and apply link

## `fullData` (type: `string`):

Complete dataset with all 58 fields (54 without the description block)

# 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 = {
    "searchQueries": [
        "python developer"
    ],
    "startUrls": [],
    "maxItems": 10,
    "locations": [],
    "functions": [],
    "industries": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/foundit-jobs-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 = {
    "searchQueries": ["python developer"],
    "startUrls": [],
    "maxItems": 10,
    "locations": [],
    "functions": [],
    "industries": [],
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/foundit-jobs-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 '{
  "searchQueries": [
    "python developer"
  ],
  "startUrls": [],
  "maxItems": 10,
  "locations": [],
  "functions": [],
  "industries": []
}' |
apify call parseforge/foundit-jobs-scraper --silent --output-dataset

```

## MCP server setup

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