# Rozee.pk Jobs Scraper (`maximedupre/rozee-pk-jobs-scraper`) Actor

Scrape public Rozee.pk job listings from keywords, search URLs, or direct job URLs. Export titles, companies, locations, salaries, experience, skills, descriptions, source URLs, and scrape metadata.

- **URL**: https://apify.com/maximedupre/rozee-pk-jobs-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Lead generation, Integrations
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.90 / 1,000 scraped jobs

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

### 🔎 Rozee.pk jobs scraper for Pakistan job listings

Rozee.pk Jobs Scraper extracts public job listings from [Rozee.pk](https://www.rozee.pk/) and saves them as clean Apify dataset rows. Use this Rozee.pk jobs scraper to collect Pakistan job data from search terms, city searches, Rozee.pk search URLs, or direct job URLs, with titles, companies, locations, salaries, experience, skills, descriptions, dates, and source URLs.

Start with the prefilled role searches, or use a simple search such as `software engineer` with city `Lahore` for a smaller first run. If you already built a Rozee.pk search in your browser, paste that URL instead. If you have a specific listing, paste the direct Rozee.pk job URL.

This Actor is useful for recruiting research, job-board analysis, salary checks, hiring-market tracking, and repeat exports into spreadsheets, dashboards, CRMs, warehouses, alerts, or API workflows.

### ✅ What this Actor does

- Searches public Rozee.pk jobs by keyword.
- Applies an optional Pakistani city or location to keyword searches.
- Accepts Rozee.pk search URLs.
- Accepts direct Rozee.pk job URLs when the listing can be resolved from public search data.
- Saves one dataset row per unique job listing.
- Extracts job title, company, company URL, city, country, coordinates when available, salary text and numeric salary fields when visible, employment type, experience, skills, descriptions, dates, job ID, and source URL.
- Works with Apify exports, schedules, webhooks, integrations, and API clients.

This Actor focuses on public Rozee.pk job listings. It does not log in to Rozee.pk, submit applications, contact employers, scrape applicant data, or collect private account pages.

### 📦 Rozee.pk job data you can extract

Each dataset row is one Rozee.pk job. Some fields can be empty when Rozee.pk does not show that value for a specific listing.

| Data group | Fields |
| --- | --- |
| Job identity | `jobId`, `title`, `sourceUrl`, `target` |
| Company | `company`, `companyUrl` |
| Location | `location.city`, `location.country`, `location.latitude`, `location.longitude` |
| Dates | `postedDate`, `applyByDate` |
| Salary | `salary.text`, `salary.currency`, `salary.min`, `salary.max`, `salary.hiddenMin`, `salary.hiddenMax` |
| Requirements | `employmentType`, `experience`, `skills` |
| Description | `descriptionText`, `descriptionHtml` |

### 🎯 Common use cases

- Track Pakistan hiring demand by role, city, company, skill, or experience level.
- Build repeatable Rozee.pk job exports for recruiting and market research.
- Compare visible salary ranges, skills, and experience requirements across Rozee.pk listings.
- Monitor Lahore, Karachi, Islamabad, Rawalpindi, Peshawar, or all-Pakistan searches.
- Save direct Rozee.pk job pages into a consistent dataset for review.
- Send Rozee.pk job listings to spreadsheets, dashboards, CRMs, warehouses, alerts, or API workflows.

### 🚀 How to run it

1. Add one or more `Search terms or Rozee URLs`.
2. Use a role keyword such as `software engineer`, a Rozee.pk search URL, or a direct Rozee.pk job URL.
3. Optionally set `City or location`, such as `Lahore`.
4. Lower `Maximum jobs` for a smaller first run, or keep the default to collect a broader sample.
5. Start the Actor and open the dataset.

Good target examples:

- `software engineer`
- `data analyst`
- `https://www.rozee.pk/job/jsearch/q/data%20analyst`
- `https://www.rozee.pk/spacecom-product-engineer-karachi-jobs-1854078`

You do not need Rozee.pk cookies, a Rozee.pk account, or a separate Rozee.pk API key.

### ⚙️ Input

| Field | What it does |
| --- | --- |
| `targets` | Search keywords, Rozee.pk search URLs, or direct Rozee.pk job URLs. |
| `location` | Optional Pakistani city or location for keyword searches. |
| `maxItems` | Maximum Rozee.pk jobs to save across the whole run. |

Example input:

```json
{
  "targets": [
    "software engineer",
    "sales",
    "accountant",
    "marketing"
  ],
  "maxItems": 160
}
````

### 🧾 Output example

```json
{
  "jobId": "1854078",
  "title": "Product Engineer",
  "company": "Spacecom",
  "companyUrl": "https://www.rozee.pk/company/spacecom1",
  "location": {
    "city": "Karachi",
    "country": "Pakistan",
    "latitude": 24.88814942,
    "longitude": 67.13067055
  },
  "sourceUrl": "https://www.rozee.pk/spacecom-product-engineer-karachi-jobs-1854078",
  "target": "software engineer",
  "postedDate": "2026-06-01",
  "applyByDate": "2026-06-30",
  "salary": {
    "text": "PKR100000 - PKR150000",
    "currency": "PKR",
    "min": 100000,
    "max": 150000,
    "hiddenMin": null,
    "hiddenMax": null
  },
  "employmentType": "Full Time/Permanent",
  "experience": "3 Years",
  "skills": ["Data Analysis", "Software Testing", "User Experience Design"],
  "descriptionText": "Build products.",
  "descriptionHtml": "<p>Build products.</p>"
}
```

### 💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each public Rozee.pk job listing saved to the dataset.

Price: `$0.0009` per saved job. A run with `160` saved jobs costs about `$0.144`, before any Apify platform usage charges that apply to your account.

### ⚠️ Limits and caveats

- Rozee.pk may not show every field on every job, so salary, coordinates, skills, dates, or company details can be empty.
- Direct job URLs are resolved from public Rozee.pk search data. If a listing is removed or cannot be found in search, the Actor may save no row for that URL.
- The Actor saves public job listings only. It does not apply to jobs, log in, or read private applicant or employer data.
- `Maximum jobs` is capped at `1000` per run.

### ❓ FAQ

#### Do I need a Rozee.pk account?

No. This Actor is built for public Rozee.pk job listings and does not require Rozee.pk cookies, a login, or a source API key.

#### Can I scrape jobs from a Rozee.pk search URL?

Yes. Paste a Rozee.pk search URL into `targets`. The Actor will use that search page and save matching job rows up to `maxItems`.

#### Can I use direct Rozee.pk job URLs?

Yes, when the listing can be resolved from public Rozee.pk search data. Direct URLs are useful when you already know the job page you want to save.

#### Can I schedule this Actor?

Yes. You can schedule runs on Apify and export the dataset or pull it through the Apify API. Use the same input each time for repeatable monitoring.

### 📝 Changelog

- 0.1: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~rozee-pk-jobs-scraper/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [CutShort Scraper ↗](https://apify.com/maximedupre/cutshort-scraper) - Scrape public CutShort tech and startup jobs by skill or URL.
- [CWjobs Scraper ↗](https://apify.com/maximedupre/cwjobs-scraper) - Scrape public CWjobs UK tech jobs with salaries, employers, and descriptions.
- [Goodmoves Jobs Scraper ↗](https://apify.com/maximedupre/goodmoves-jobs-scraper) - Scrape public Goodmoves charity-sector vacancies and organisation details.
- [Welcome to the Jungle Jobs Scraper ↗](https://apify.com/maximedupre/welcometothejungle-jobs-extractor) - Scrape public WTTJ jobs from search queries and filtered URLs.
- [Freelancer Scraper ↗](https://apify.com/maximedupre/freelancer-scraper) - Scrape public Freelancer.com projects and profile cards from keywords or URLs.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `targets` (type: `array`):

Add role keywords, Rozee.pk search URLs, or direct Rozee.pk job URLs.

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

Optional Pakistani city for keyword searches, such as Lahore, Karachi, Islamabad, Rawalpindi, or Peshawar.

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

Maximum number of Rozee.pk jobs to save across the whole run.

## Actor input object example

```json
{
  "targets": [
    "software engineer",
    "sales",
    "accountant",
    "marketing"
  ],
  "maxItems": 160
}
```

# Actor output Schema

## `results` (type: `string`):

Open the dataset with Rozee.pk job titles, companies, locations, salaries, dates, skills, descriptions, and source URLs.

# 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 = {
    "targets": [
        "software engineer",
        "sales",
        "accountant",
        "marketing"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/rozee-pk-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 = { "targets": [
        "software engineer",
        "sales",
        "accountant",
        "marketing",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/rozee-pk-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 '{
  "targets": [
    "software engineer",
    "sales",
    "accountant",
    "marketing"
  ]
}' |
apify call maximedupre/rozee-pk-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Rozee.pk Jobs Scraper",
        "description": "Scrape public Rozee.pk job listings from keywords, search URLs, or direct job URLs. Export titles, companies, locations, salaries, experience, skills, descriptions, source URLs, and scrape metadata.",
        "version": "0.1",
        "x-build-id": "kFEPDKON1sFGEbg2R"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~rozee-pk-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-rozee-pk-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/maximedupre~rozee-pk-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-rozee-pk-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/maximedupre~rozee-pk-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-rozee-pk-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",
                "properties": {
                    "targets": {
                        "title": "Search terms or Rozee URLs",
                        "type": "array",
                        "description": "Add role keywords, Rozee.pk search URLs, or direct Rozee.pk job URLs.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "location": {
                        "title": "City or location",
                        "type": "string",
                        "description": "Optional Pakistani city for keyword searches, such as Lahore, Karachi, Islamabad, Rawalpindi, or Peshawar."
                    },
                    "maxItems": {
                        "title": "Maximum jobs",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of Rozee.pk jobs to save across the whole run.",
                        "default": 160
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
