# India Jobs MCP | 14 Tools: Naukri, LinkedIn, 9 Boards (`themineworks/india-jobs-mcp`) Actor

Aggregated India job-market data for AI agents: Naukri, Indeed India, Foundit, Shine, Apna, CutShort, Hirist, Instahyre, Internshala, plus LinkedIn candidate sourcing and AmbitionBox employer snapshots. No result, no charge.

- **URL**: https://apify.com/themineworks/india-jobs-mcp.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Jobs, Business, MCP servers
- **Stats:** 78 total users, 38 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event + usage

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## India Jobs MCP

**Nine India job boards and two recruiter tools, behind one MCP endpoint — so your agent never has to pick a board.**

Built by [The Mine Works](https://apify.com/themineworks), on top of our published data actors. This is the India-only counterpart to our global Recruiting & Jobs MCP: every tool here is India-specific, or India-first.

### Tools

| Tool | What it returns | Price |
|---|---|---|
| `search_all_india_jobs` | Naukri, Indeed India, Foundit, Shine, Hirist, Internshala — one query, all six | **$0.14** complete · $0.08 partial · $0.02/source · $0 if nothing found |
| `search_jobs_naukri` | India's largest broad-market job board | $0.04 |
| `search_jobs_indeed_india` | Indeed's India site (indeed.co.in) | $0.05 |
| `search_jobs_foundit` | Foundit (formerly Monster India) | $0.04 |
| `search_jobs_shine` | Shine.com (Times Group) | $0.04 |
| `search_jobs_hirist` | Hirist — India tech-specific roles | $0.04 |
| `search_internshala` | Internshala — internships, jobs, and fresher jobs | $0.04 |
| `search_jobs_apna` | Apna — India's largest blue-collar/early-career app, category browse | $0.04 |
| `search_jobs_cutshort` | CutShort — India tech/startup roles, category browse | $0.04 |
| `search_jobs_instahyre` | Instahyre — India tech recruiting, function/size browse | $0.04 |
| `find_candidates` | Source people at a company by title (LinkedIn) | $0.10 |
| `enrich_profile` | Enrich a LinkedIn profile URL into structured data | $0.06 |
| `company_snapshot` | LinkedIn company profile + AmbitionBox ratings/salaries | $0.08 |
| `hiring_signals_india` | Is this company hiring in India, and where? All 6 searchable boards + employer snapshot | **$0.18** complete · $0.11 partial · $0.025/section · $0 if nothing found |

**`search_all_india_jobs` always costs less than calling the 6 tools individually.**

Apna, CutShort, and Instahyre are standalone tools, not part of the aggregator: none has a real free-text search server-side (verified against all three live APIs, not their marketing copy) — they're category/function/city browse only. Apna's "keyword" field is a client-side filter applied after a full crawl of the browse scope; without a category, a generic query walked 675+ jobs with zero matches in testing before timing out — Apna's inventory skews blue-collar, so white-collar keyword queries are architecturally the wrong fit for it. Folding any of the three into a keyword-search aggregator would mean sources silently returning unrelated results, or timing out, next to the ones that actually matched. Use them directly when you want their specific taxonomy.

### Worked example

Ask your agent: *"Find backend engineering roles in Bangalore across every major India job board."*

```json
// tools/call → search_all_india_jobs
{ "keywords": "backend engineer", "location": "Bangalore", "max_per_source": 10 }
```

```json
{
  "keywords": "backend engineer",
  "location": "Bangalore",
  "sources_tier": "complete",
  "sources_attempted": 6,
  "sources_usable": 6,
  "total_jobs_found": 54,
  "results_by_source": {
    "naukri": ["..."],
    "indeed_india": ["..."],
    "foundit": ["..."],
    "shine": ["..."],
    "hirist": ["..."],
    "internshala": ["..."]
  }
}
```

One call, six boards, one bill — $0.14 for a complete result instead of $0.24 buying each source separately.

### Setup

The server speaks Streamable HTTP. Use your Apify API token as a bearer token.

**Claude Desktop / Claude Code** — add to your MCP config:

```json
{
  "mcpServers": {
    "india-jobs": {
      "url": "https://themineworks--india-jobs-mcp.apify.actor/mcp",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

**Cursor** — same block in `.cursor/mcp.json`.

**Windsurf** — same block under `mcpServers` in your Windsurf MCP settings.

Cold start is about 6 seconds; warm calls answer in about a second.

### Billing promise

**No result, no charge. Ever.**

- A search that finds nothing costs nothing — not a reduced fee, nothing.
- Repeat an identical call within 60 seconds and it's free (retries shouldn't cost twice).
- The two composite tools are priced by what they actually delivered: complete, partial, or per-section. Nothing found, nothing billed.
- Apify plan discounts apply on top of every price above.

Apify platform usage is billed by Apify on top of these prices, as with any Standby actor.

### Coverage — read this before you buy

- **Job-seeker side**: nine boards spanning broad-market (Naukri, Foundit, Shine, Indeed India), tech-specific (Hirist, CutShort, Instahyre), blue-collar/early-career (Apna), and internships/freshers (Internshala).
- **Employer side**: candidate sourcing and profile enrichment via LinkedIn, employer reputation via LinkedIn + AmbitionBox (India's own employer-review site), and a live hiring-signals report aggregating open postings for one company across all six searchable boards.
- **CutShort and Instahyre are category/function browse, not keyword search** — verified directly against both live APIs, not assumed from their marketing copy. They're honest about that limit in their own tool descriptions.
- **This server is India-only.** For US/global job-market data (ATS boards, LinkedIn global, Indeed's other seven country sites, SimplyHired), see our [Recruiting & Jobs MCP](https://themineworks.com/mcp).

### More from The Mine Works

Individual actors behind these tools are published separately at [apify.com/themineworks](https://apify.com/themineworks). Full MCP server suite: [themineworks.com/mcp](https://themineworks.com/mcp).

# Actor input Schema

## `readme` (type: `string`):

This Actor serves India job postings (9 boards, job-seeker side) and recruiter tools (candidate sourcing, employer snapshots) to AI agents over the Model Context Protocol.

Connect your MCP client to:
https://themineworks--india-jobs-mcp.apify.actor/mcp

with your Apify API token as a Bearer token. Works in Claude Desktop, Claude Code, Cursor and Windsurf — copy-paste config blocks are in the README.

Starting a normal run here does nothing except print this pointer.

## Actor input object example

```json
{
  "readme": "Connect your MCP client to https://themineworks--india-jobs-mcp.apify.actor/mcp — see the README."
}
```

# Actor output Schema

## `mcpEndpoint` (type: `string`):

Streamable HTTP MCP endpoint for this run. Works in Claude Desktop, Claude Code, Cursor and Windsurf; copy-paste config is in the README.

# 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("themineworks/india-jobs-mcp").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("themineworks/india-jobs-mcp").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 themineworks/india-jobs-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/india-jobs-mcp"
        }
    }
}

```

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/8e9SMJ7r9mCU6QG5i/builds/ninjQ5fDbfKPOLkWd/openapi.json
