# Apna.co Job Scraper — India Blue Collar & Entry Level Jobs (`fervent_bus/apna-jobs-scraper`) Actor

Scrape Apna.co — India's #1 blue collar job platform with 50M+ users. Extract job titles, salaries, companies, locations & direct job links for any city and role. Ideal for recruitment, HR tech, job aggregators and AI agent pipelines targeting Indian entry-level jobs.

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

## Pricing

from $4.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/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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## Apna App Jobs Scraper — India Blue Collar & Entry Level Jobs

The **only scraper for Apna.co on Apify**. Access India's largest blue collar job platform with 50M+ users across tier 2/3 cities. Google Maps and LinkedIn don't cover this data — Apna.co is where Delivery Boys, Sales Executives, Accountants, Data Entry Operators, and millions of entry-level Indian workers find jobs.

### Why This Scraper?

- **Unique data source** — Apna.co is not indexed by any other job aggregator on Apify
- **50M+ users**, dominant in tier 2/3 Indian cities like Patna, Surat, Jaipur, Lucknow
- **Structured output** — salary ranges, experience requirements, skills, openings count, direct job URLs
- **AI-agent ready** — works out of the box with Claude, ChatGPT, and any MCP-compatible AI pipeline
- **Residential proxy support** — built-in Apify proxy integration avoids blocks

### Pricing

**$0.003 per result** — scrape 1,000 jobs for $3.

### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `jobTitle` | string | yes | Job role to search e.g. `Delivery Boy`, `Sales Executive`, `Data Entry`, `Accountant` |
| `city` | string | yes | Indian city e.g. `Delhi`, `Mumbai`, `Bangalore`, `Pune`, `Jaipur` |
| `maxResults` | integer | no | Max listings to return (default: 50) |
| `proxyConfiguration` | object | no | Apify residential proxy settings (recommended) |

#### Example Input

```json
{
  "jobTitle": "Delivery Boy",
  "city": "Delhi",
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

### Output

Each result is one job listing with all available fields. `jobUrl` is always present.

#### Example Output

```json
[
  {
    "jobTitle": "Delivery Boy",
    "companyName": "Zomato",
    "jobCategory": "Delivery",
    "jobType": "Full Time",
    "salaryMin": 15000,
    "salaryMax": 22000,
    "city": "Delhi",
    "locality": "Dwarka",
    "experience": "Fresher",
    "education": "10th Pass",
    "skills": ["Two Wheeler", "Smartphone"],
    "openings": 12,
    "postedDate": "2024-01-15",
    "jobUrl": "https://apna.co/jobs/delivery-boy-zomato-delhi-dwarka-abc123",
    "companyUrl": "https://apna.co/company/zomato",
    "isVerifiedCompany": true,
    "englishRequired": false,
    "gender": null
  },
  {
    "jobTitle": "Delivery Executive",
    "companyName": "Swiggy",
    "jobCategory": "Delivery",
    "jobType": "Full Time",
    "salaryMin": 18000,
    "salaryMax": 25000,
    "city": "Delhi",
    "locality": "Rohini",
    "experience": "Fresher",
    "education": "10th Pass",
    "skills": ["Bike", "Android Phone", "Google Maps"],
    "openings": 30,
    "postedDate": "2024-01-14",
    "jobUrl": "https://apna.co/jobs/delivery-executive-swiggy-delhi-rohini-xyz456",
    "companyUrl": "https://apna.co/company/swiggy",
    "isVerifiedCompany": true,
    "englishRequired": false,
    "gender": "Male"
  }
]
```

### Output Fields

| Field | Type | Description |
|---|---|---|
| `jobTitle` | string | Job designation |
| `companyName` | string | null | Employer name |
| `jobCategory` | string | null | Function e.g. Delivery, Sales, Accounting |
| `jobType` | string | null | Full Time, Part Time, Freelance |
| `salaryMin` | integer | null | Minimum monthly salary in INR |
| `salaryMax` | integer | null | Maximum monthly salary in INR |
| `city` | string | City of the job |
| `locality` | string | null | Area/neighbourhood within the city |
| `experience` | string | null | e.g. Fresher, 1-2 years |
| `education` | string | null | Minimum qualification required |
| `skills` | string\[] | null | Required skills list |
| `openings` | integer | null | Number of vacancies |
| `postedDate` | string | null | Date the job was posted |
| `jobUrl` | string | **Direct link to the job on apna.co** |
| `companyUrl` | string | null | Link to the company profile |
| `isVerifiedCompany` | boolean | Whether the company is Apna-verified |
| `englishRequired` | boolean | null | English language requirement |
| `gender` | string | null | Gender preference if specified |

### Use Cases

- **Recruitment agencies** sourcing blue collar candidates at scale across Indian cities
- **HR tech platforms** building India-specific talent databases
- **Job aggregators** adding Apna.co coverage to complement Naukri, Indeed, LinkedIn
- **AI agents** (Claude, ChatGPT, MCP pipelines) searching fresher jobs and entry level jobs India
- **Market research** — salary benchmarks for delivery, sales, warehouse, and field roles in tier 2 city jobs
- **Staffing analytics** — track openings volume and hiring velocity across sectors

### Supported Job Roles (Examples)

Delivery Boy, Delivery Executive, Sales Executive, Telecaller, Data Entry, Accountant, Receptionist, Field Sales Officer, Customer Care Executive, Computer Operator, Office Boy, Security Guard, Driver, Warehouse Executive, Store Manager, HR Executive, Medical Representative, Packing Helper, Machine Operator, Back Office Executive

### Supported Cities (Examples)

Delhi, Mumbai, Bangalore, Pune, Hyderabad, Chennai, Kolkata, Jaipur, Lucknow, Ahmedabad, Surat, Patna, Bhopal, Indore, Nagpur, Vadodara, Coimbatore, Visakhapatnam, Agra, Meerut, Kanpur, Rajkot, Nashik, Faridabad, Ghaziabad, Noida

### Technical Notes

- Uses [Camoufox](https://github.com/daijro/camoufox) anti-detection browser for reliable access
- Extracts structured data from `__NEXT_DATA__` JSON where available, falls back to HTML parsing
- 3 retries per page with exponential-style backoff
- 2–4 second random delay between pages to stay polite
- Deduplicates results by `jobUrl`
- Residential proxy recommended for best success rates

### Legal

This scraper accesses publicly available job listings on Apna.co. Use responsibly and in accordance with Apna's terms of service. For high-volume production use, consider reaching out to Apna.co for an official data partnership.

***

Built by [fervent\_bus](https://apify.com/fervent_bus) · GitHub: [roshtarg-cpu/apna-jobs-scraper](https://github.com/roshtarg-cpu/apna-jobs-scraper)

# Actor input Schema

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

Job role to search e.g. Delivery Boy, Sales Executive, Data Entry, Accountant

## `city` (type: `string`):

Indian city to search in e.g. Delhi, Mumbai, Bangalore, Pune

## `maxResults` (type: `integer`):

Maximum number of job listings to scrape

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

Use Apify residential proxies to avoid blocks.

## Actor input object example

```json
{
  "jobTitle": "Delivery Boy",
  "city": "Delhi",
  "maxResults": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "jobTitle": "Delivery Boy",
    "city": "Delhi",
    "maxResults": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fervent_bus/apna-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 = {
    "jobTitle": "Delivery Boy",
    "city": "Delhi",
    "maxResults": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("fervent_bus/apna-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "jobTitle": "Delivery Boy",
  "city": "Delhi",
  "maxResults": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call fervent_bus/apna-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fervent_bus/apna-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Apna.co Job Scraper — India Blue Collar & Entry Level Jobs",
        "description": "Scrape Apna.co — India's #1 blue collar job platform with 50M+ users. Extract job titles, salaries, companies, locations & direct job links for any city and role. Ideal for recruitment, HR tech, job aggregators and AI agent pipelines targeting Indian entry-level jobs.",
        "version": "0.0",
        "x-build-id": "qtbQVeAdhO1WjQafE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fervent_bus~apna-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fervent_bus-apna-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/fervent_bus~apna-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fervent_bus-apna-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/fervent_bus~apna-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fervent_bus-apna-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "jobTitle",
                    "city"
                ],
                "properties": {
                    "jobTitle": {
                        "title": "Job Title",
                        "type": "string",
                        "description": "Job role to search e.g. Delivery Boy, Sales Executive, Data Entry, Accountant"
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "Indian city to search in e.g. Delhi, Mumbai, Bangalore, Pune"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "type": "integer",
                        "description": "Maximum number of job listings to scrape",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Use Apify residential proxies to avoid blocks."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
