# PlacementIndia Job Scraper — India's Top Job Board Data (`fervent_bus/placementindia-scraper`) Actor

Extract structured job listings from PlacementIndia.com — India's leading job portal. Perfect for AI agents (Claude, ChatGPT, MCP), job aggregators, and recruitment analytics.

- **URL**: https://apify.com/fervent\_bus/placementindia-scraper.md
- **Developed by:** [Archit Khurana](https://apify.com/fervent_bus) (community)
- **Categories:** Jobs, Lead generation, Agents
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 🇮🇳 PlacementIndia Job Scraper — India's Top Job Board Data Extractor

[![Apify Badge](https://img.shields.io/badge/Apify-Actor-00D4FF?style=flat-square)](https://apify.com)
[![Python Badge](https://img.shields.io/badge/Python-3.11+-blue?style=flat-square\&logo=python)](https://www.python.org/)
[![License](https://img.shields.io/badge/License-Apache%202.0-green?style=flat-square)](https://opensource.org/licenses/Apache-2.0)

Extract structured job listings from **PlacementIndia.com** — India's leading job portal connecting 1 Crore+ job seekers with 6 Lakh+ verified employers. Perfect for job aggregators, recruitment platforms, market research, and **AI agents** powered by Claude, ChatGPT, and MCP protocols.

***

### 🎯 Features

✅ **Comprehensive Job Data** — Title, company, location, salary, experience, skills, job description\
✅ **Multi-Location Support** — Search jobs across all Indian cities (Delhi, Mumbai, Bangalore, etc.)\
✅ **Advanced Filtering** — By industry, job type, salary range, experience level\
✅ **No Login Required** — Scrape publicly available job listings without authentication\
✅ **Rate Limit Friendly** — Respects server resources with smart delays\
✅ **MCP Compatible** — Seamlessly integrates with Claude Desktop and AI automation workflows\
✅ **JSON Export** — Clean, structured output ready for databases and analytics

***

### 📊 Output Format

Each job listing returns the following structured data:

| Field | Type | Description |
|-------|------|-------------|
| `jobTitle` | String | Job position title |
| `companyName` | String | Hiring company name |
| `location` | String | Job location (city, state) |
| `salary` | String | Salary range (if available) |
| `experience` | String | Required experience level |
| `skills` | Array | Required skills/technologies |
| `jobDescription` | String | Full job description |
| `jobUrl` | String | Direct link to job posting |
| `postedDate` | String | When the job was posted |
| `applicants` | String | Number of applicants (if shown) |
| `jobType` | String | Full-time, Part-time, Contract, etc. |

#### Example Output

```json
{
  "jobTitle": "Senior Python Developer",
  "companyName": "Tech Solutions India Pvt Ltd",
  "location": "Bangalore, Karnataka",
  "salary": "₹8-12 LPA",
  "experience": "3-5 years",
  "skills": ["Python", "Django", "REST API", "PostgreSQL", "AWS"],
  "jobDescription": "We are looking for an experienced Python developer...",
  "jobUrl": "https://www.placementindia.com/job/python-developer-12345",
  "postedDate": "2 days ago",
  "applicants": "25 applicants",
  "jobType": "Full-time"
}
```

***

### 🚀 Quick Start

#### Run on Apify Platform

```bash
apify call [your-username]/placementindia-scraper --input '{
  "searchKeyword": "python developer",
  "location": "Bangalore",
  "maxJobs": 50
}'
```

#### Input Parameters

| Parameter | Type | Required | Description | Default |
|-----------|------|----------|-------------|---------|
| `searchKeyword` | String | No | Job title or skill to search | `""` |
| `location` | String | No | City/state to filter jobs | `"All India"` |
| `maxJobs` | Integer | No | Maximum jobs to scrape | `100` |
| `experienceLevel` | String | No | Filter: Fresher, 1-3 years, 3-5 years, 5+ years | `"All"` |
| `industry` | String | No | Filter by industry (IT, Banking, Healthcare, etc.) | `"All"` |
| `jobType` | String | No | Full-time, Part-time, Contract, Internship | `"All"` |

***

### 🤖 AI Integration — Claude, ChatGPT & MCP

#### Use with Claude Desktop (MCP Protocol)

Add this actor to your Claude Desktop `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": ["-y", "@apify/mcp-server"],
      "env": {
        "APIFY_API_TOKEN": "your_apify_token"
      }
    }
  }
}
```

**Example Claude Prompt:**

```
"Find me all Python developer jobs in Mumbai with 3+ years experience from PlacementIndia"
```

Claude will automatically:

1. Call this Apify Actor with the right parameters
2. Parse the job listings
3. Present you with a clean summary and actionable insights

***

#### Use with ChatGPT (GPT Actions)

Configure this actor as a GPT Action in ChatGPT:

```yaml
openapi: 3.0.0
info:
  title: PlacementIndia Job Scraper
  version: 1.0.0
servers:
  - url: https://api.apify.com/v2
paths:
  /acts/[your-username]/placementindia-scraper/runs:
    post:
      operationId: scrapeJobs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                searchKeyword:
                  type: string
                location:
                  type: string
                maxJobs:
                  type: integer
```

**Example ChatGPT Prompt:**

```
"Get the latest data science jobs in Pune with salaries above ₹10 LPA"
```

***

#### Use with Make.com / Zapier

**Make.com:**

1. Add "Apify" module
2. Select "Run Actor"
3. Choose `placementindia-scraper`
4. Map input fields from previous steps
5. Use output in Google Sheets, Airtable, or email notifications

**Zapier:**

1. Search for "Apify" in Zapier
2. Trigger: Schedule (daily job alerts)
3. Action: Run Apify Actor → `placementindia-scraper`
4. Filter: Only jobs matching your criteria
5. Send to Slack, email, or CRM

***

### 💡 Use Cases

| Use Case | Description |
|----------|-------------|
| 🔍 **Job Aggregation** | Build a meta job board by combining data from multiple sources |
| 📊 **Market Research** | Analyze hiring trends, salary ranges, and skill demand in India |
| 🤖 **AI Resume Matching** | Feed job data to Claude/ChatGPT to match candidates with roles |
| 📧 **Job Alerts** | Auto-notify users when jobs matching their profile are posted |
| 🏢 **Recruitment Analytics** | Track competitor hiring, industry growth, and talent gaps |
| 📱 **Mobile Apps** | Power job search features in mobile applications |

***

### 🛠️ Technical Details

- **Language:** Python 3.11+
- **Libraries:** `requests`, `beautifulsoup4`, `apify-client`
- **Rate Limiting:** 1-2 second delay between requests
- **Error Handling:** Automatic retries on network failures
- **Data Validation:** Ensures all fields are properly formatted

***

### 📖 FAQ

**Q: Do I need a PlacementIndia account?**\
A: No, this scraper only accesses public job listings.

**Q: How often should I run this actor?**\
A: Daily for fresh job alerts, weekly for market research.

**Q: Can I scrape specific companies?**\
A: Yes, use the `searchKeyword` field with the company name.

**Q: Is this legal?**\
A: Yes, we only scrape publicly available data. Always review PlacementIndia's Terms of Service.

**Q: How do I handle large datasets?**\
A: Increase `maxJobs` or run multiple searches in parallel with different filters.

***

### 🔗 Related Actors

- [Naukri.com Scraper](https://apify.com/store) — India's largest job portal
- [LinkedIn Jobs Scraper](https://apify.com/store) — Professional networking jobs
- [Indeed India Scraper](https://apify.com/store) — Global job aggregator

***

### 📞 Support

- **Issues:** [GitHub Issues](https://github.com/yourusername/placementindia-scraper/issues)
- **Documentation:** [Apify Docs](https://docs.apify.com)
- **Community:** [Apify Discord](https://discord.gg/apify)

***

### 📄 License

Apache 2.0 — Free for commercial and personal use.

***

**Built with ❤️ for India's job market | Optimized for Claude AI, ChatGPT, and MCP workflows**

# Actor input Schema

## `searchKeyword` (type: `string`):

Job title or skill to search (e.g., 'Python Developer', 'Data Analyst')

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

City or state to filter jobs (e.g., 'Bangalore', 'Mumbai', 'Delhi')

## `maxJobs` (type: `integer`):

Maximum number of jobs to scrape

## `experienceLevel` (type: `string`):

Filter by experience level

## `industry` (type: `string`):

Filter by industry sector

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

Filter by job type

## Actor input object example

```json
{
  "searchKeyword": "",
  "location": "All India",
  "maxJobs": 100,
  "experienceLevel": "All",
  "industry": "All",
  "jobType": "All"
}
```

# Actor output Schema

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

Job position title

## `companyName` (type: `string`):

Hiring company name

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

Job location

## `salary` (type: `string`):

Salary range or amount

## `experience` (type: `string`):

Required experience level

## `skills` (type: `string`):

Required skills (comma-separated)

## `jobDescription` (type: `string`):

Full job description

## `jobUrl` (type: `string`):

Direct link to job posting

## `postedDate` (type: `string`):

When the job was posted

## `applicants` (type: `string`):

Number of applicants

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

Full-time, part-time, contract, etc.

## `scrapedAt` (type: `string`):

Timestamp when data was scraped

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("fervent_bus/placementindia-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("fervent_bus/placementindia-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 '{}' |
apify call fervent_bus/placementindia-scraper --silent --output-dataset

```

## MCP server setup

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