# JobStreet Job Scraper(Pay As You Go) (`powerai/jobstreet-job-scraper-ppr`) Actor

Scrape job listings from JobStreet.com with advanced stealth techniques and pay-per-result billing

- **URL**: https://apify.com/powerai/jobstreet-job-scraper-ppr.md
- **Developed by:** [PowerAI](https://apify.com/powerai) (community)
- **Categories:** Jobs, Lead generation, Other
- **Stats:** 35 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## JobStreet Job Scraper

This actor scrapes job listings from JobStreet.com, one of Southeast Asia's leading job search platforms, using advanced web scraping techniques to extract comprehensive job data.

### Features

- **Comprehensive Job Search**: Scrape job listings from multiple JobStreet search URLs
- **Advanced Scraping**: Stealth techniques to avoid detection
- **Real-time Data**: Extracts live job data including all job details and metadata
- **Smart Pagination**: Automatically handles pagination and infinite scroll
- **Proxy Support**: Built-in proxy configuration for reliable scraping
- **Pay-per-Result**: Charges only for successfully scraped job listings
- **Optional Job Descriptions**: Can scrape detailed job descriptions for comprehensive data

### Input

The actor accepts the following input parameters:

#### Required Parameters

- **jobSearchUrls**: Array of JobStreet job search URLs to scrape

#### Optional Parameters

- **maxItems**: Maximum number of job listings to scrape (default: 100, max: 50000)
- **scrapeJobDescription**: Whether to scrape detailed job descriptions (default: false)
- **proxyConfiguration**: Proxy configuration for the scraper

### Output

The actor outputs each job listing as an individual data item. Each job contains comprehensive information including:

```json
{
  "jobSearchUrl": "https://ph.jobstreet.com/ai-jobs-in-accounting/full-time",
  "jobId": "84033846",
  "title": "Senior Accountant | Permanent WFH | Night Shift | Day 1 HMO",
  "company": {
    "name": "EMAPTA",
    "id": "60239030",
    "description": "Emapta",
    "logo": "https://bx-branding-gateway.cloud.seek.com.au/7895f0e9-844d-4d16-af1b-aff9241c65eb.1/serpLogo"
  },
  "salary": "",
  "location": "Makati City, Metro Manila",
  "country": "PH",
  "workTypes": [
    "Full time"
  ],
  "workArrangement": "Remote",
  "description": "As a Senior Accountant, you will support the full-cycle accounting operations for a trailblazer in AI innovation.",
  "bulletPoints": [],
  "classifications": [
    {
      "main": "Accounting",
      "sub": "Financial Accounting & Reporting"
    }
  ],
  "postDate": "2025-05-06T11:07:22Z",
  "postDateDisplay": "13d ago",
  "sourceUrl": "https://ph.jobstreet.com/ai-jobs-in-accounting/full-time",
  "scrapedAt": "2025-05-20T02:00:43.874Z",
  "jobDescriptionHtml": "<div class=\"x3iy8f0 _1xd6mbw0\"><p><strong>Crunch Numbers for a Cause that Changes Cities</strong><br> <br>In the fast-evolving world of AI and spatial analytics, your role as an accountant becomes mission-critical. Think journal entries that power justice, reconciliations that refine cityscapes, and spreadsheets that shape smarter streets. Global impact starts here!<br> <br><strong>What You'll Be Doing</strong><br> <br>Be part of our client's team as a <strong>Senior Accountant</strong> and support the full-cycle accounting operations for a trailblazer in AI innovation. You'll collaborate with global teams, own the close process, and lead initiatives that fuel smarter systems and cleaner data.<br> <br><strong>Quick Look at the Opportunity</strong><br> <br>Employment Type: Full-time<br> <br>Shift: Monday to Friday | 11:00 PM to 8:00 AM<br> <br>Salary: PHP 80,000 to PHP 150,000<br> <br>Work Setup: Permanent Work from Home<br> <br><strong>Why This Role is Perfect for You</strong><br> <br>• You're passionate about numbers and their power to drive change<br> <br>• You thrive in fast-paced, innovative environments<br> <br>• You want to be part of something bigger than just accounting<br> <br>• You're ready to work with cutting-edge AI technologies<br> <br><strong>What We're Looking For</strong><br> <br>• Bachelor's degree in Accounting, Finance, or related field<br> <br>• 3+ years of experience in full-cycle accounting<br> <br>• Strong knowledge of accounting principles and practices<br> <br>• Experience with financial reporting and analysis<br> <br>• Proficiency in accounting software (QuickBooks, SAP, etc.)<br> <br>• Excellent attention to detail and analytical skills<br> <br>• Strong communication skills in English<br> <br>• Experience with AI or tech companies is a plus<br> <br><strong>What You'll Get</strong><br> <br>• Competitive salary: PHP 80,000 to PHP 150,000<br> <br>• Permanent work from home setup<br> <br>• Day 1 HMO coverage<br> <br>• Night shift premium<br> <br>• Opportunity to work with cutting-edge AI technologies<br> <br>• Global team collaboration<br> <br>• Career growth in a fast-growing company<br> <br><strong>Ready to Make an Impact?</strong><br> <br>If you're ready to crunch numbers for a cause that changes cities, we want to hear from you! Apply now and be part of our mission to build smarter, more efficient systems through the power of accounting and AI.<br> <br><strong>About EMAPTA</strong><br> <br>EMAPTA is a leading outsourcing company that connects talented professionals with global opportunities. We specialize in providing remote work solutions for companies worldwide, with a focus on technology, finance, and customer service roles.<br> <br>Join us and be part of the future of work!</p></div>"
}
```

### Usage

1. **Input Configuration**: Provide JobStreet search URLs and scraping parameters
2. **Set Max Items**: Specify how many job listings you want to scrape
3. **Choose Description Scraping**: Decide whether to scrape detailed job descriptions
4. **Run the Actor**: Execute the actor with your input
5. **Get Results**: Receive individual job listings in the dataset

### Examples

#### Basic Job Search

```json
{
  "jobSearchUrls": [
    "https://ph.jobstreet.com/ai-jobs-in-accounting/full-time"
  ],
  "maxItems": 100
}
```

#### Multiple Search URLs with Job Descriptions

```json
{
  "jobSearchUrls": [
    "https://ph.jobstreet.com/ai-jobs-in-accounting/full-time",
    "https://ph.jobstreet.com/software-developer-jobs/full-time",
    "https://ph.jobstreet.com/marketing-jobs/full-time"
  ],
  "maxItems": 200,
  "scrapeJobDescription": true
}
```

#### With Proxy Configuration

```json
{
  "jobSearchUrls": [
    "https://ph.jobstreet.com/ai-jobs-in-accounting/full-time"
  ],
  "maxItems": 100,
  "scrapeJobDescription": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Job Data Structure

Each job listing includes:

#### Basic Information

- **jobId**: Unique job identifier
- **title**: Job title
- **description**: Brief job description
- **postDate**: When the job was posted (ISO format)
- **postDateDisplay**: Human-readable posting date (e.g., "13d ago")

#### Company Information

- **company.name**: Company name
- **company.id**: Company identifier
- **company.description**: Company description
- **company.logo**: Company logo URL

#### Location and Work Details

- **location**: Job location
- **country**: Country code (e.g., "PH" for Philippines)
- **workTypes**: Array of work types (e.g., \["Full time"])
- **workArrangement**: Work arrangement (e.g., "Remote", "On-site", "Hybrid")

#### Job Details

- **salary**: Salary information (if available)
- **bulletPoints**: Array of job highlights and benefits
- **classifications**: Job categories
  - **main**: Main job category
  - **sub**: Sub-category

#### Detailed Information (Optional)

- **jobDescriptionHtml**: Full HTML job description (if scrapeJobDescription is true)

#### Metadata

- **jobSearchUrl**: Original search URL used
- **sourceUrl**: Source URL for the job
- **scrapedAt**: When the data was scraped

### Job Categories

#### Common Job Classifications

- **Accounting**: Financial and accounting roles
- **Information Technology**: Software development, IT support
- **Marketing**: Digital marketing, content creation
- **Sales**: Business development, account management
- **Human Resources**: Recruitment, HR management
- **Customer Service**: Support, call center roles

### Work Arrangements

#### Remote Work Options

- **Remote**: Fully remote positions
- **Hybrid**: Combination of remote and on-site work
- **On-site**: Traditional office-based positions

#### Work Types

- **Full time**: Permanent full-time positions
- **Part time**: Part-time positions
- **Contract**: Contract-based work
- **Freelance**: Project-based freelance work

### Billing

This actor uses a **pay-per-result** billing model:

- You are charged only for successfully scraped job listings
- No charges for failed requests or empty results
- Transparent pricing based on actual data extracted

### Support

For technical support or questions about this actor, please contact our support team.

### Legal Notice

This actor is designed for legitimate research and business purposes. Users are responsible for complying with JobStreet's terms of service and applicable laws. Please use responsibly and respect the website's robots.txt and rate limits.

# Actor input Schema

## `jobSearchUrls` (type: `array`):

List of JobStreet job search URLs to scrape

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

Maximum number of jobs to scrape (default: 100)

## `scrapeJobDescription` (type: `boolean`):

Whether to scrape detailed job descriptions (slower but more comprehensive)

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

Proxy settings for the actor

## Actor input object example

```json
{
  "jobSearchUrls": [
    "https://ph.jobstreet.com/ai-jobs-in-accounting/full-time"
  ],
  "maxItems": 100,
  "scrapeJobDescription": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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("powerai/jobstreet-job-scraper-ppr").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("powerai/jobstreet-job-scraper-ppr").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 '{}' |
apify call powerai/jobstreet-job-scraper-ppr --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hvc4pRcgS3Zlqk5Sa/builds/kARVV3i8Ik2BOvEhK/openapi.json
