# Workopolis Jobs Scraper - Low-cost💲🔥🇨🇦💼 (`delectable_incubator/workopolis-jobs-scraper-low-cost`) Actor

🔍 Easily scrape jobs from Workopolis Canada. Extract job titles, companies, locations, salaries, work modes, job types, descriptions, requirements, posting dates & more. Ideal for Canadian job market research, recruitment, HR analytics, hiring intelligence and lead generation.

- **URL**: https://apify.com/delectable\_incubator/workopolis-jobs-scraper-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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.

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

<p align="center">
  <img src="https://i.ibb.co/jkNS73wX/readme.png" alt="Workopolis Jobs Scraper" width="100%">
</p>

---

## 🇨🇦💼 Workopolis Jobs Scraper | Bulk Canada Job Scraper | Apify Actor

### 🚀 Extract Workopolis Job Listings in Seconds (No Code)

The **Workopolis Jobs Scraper** is a powerful, scalable and SEO-optimized Apify Actor built to extract job listings from **Workopolis.ca**, one of Canada's leading employment platforms.

Scrape thousands of Canadian job listings in bulk, including job titles, hiring companies, locations, salaries, work modes, employment types, posting dates, requirements, benefits, and application links for recruitment intelligence, HR analytics, AI datasets, job boards, salary research, and labor market analysis.

---

### 🔥 Why This Workopolis Scraper?

✔ Best Workopolis scraper on Apify

✔ Supports bulk keyword scraping (multi-search)

✔ Covers jobs across Canada

✔ High-speed job extraction

✔ Automatic pagination

✔ Structured JSON / CSV / Excel output

✔ Enterprise-ready cloud execution

✔ No coding required

---

## 🎯 What This Scraper Does (Workopolis Job Extraction)

This Apify Actor extracts structured job listings directly from Workopolis search results.

#### 📌 Core Features

✅ Scrape Workopolis job listings

✅ Bulk keyword job scraping (SEO BOOST 🚀)

✅ Location filtering (Toronto, Vancouver, Montreal, Calgary, Ottawa, Edmonton and more)

✅ Automatic pagination

✅ Extract hiring companies

✅ Extract job titles

✅ Extract salary information

✅ Extract employment types

✅ Extract work modes (Remote / Hybrid / On-site)

✅ Extract posting dates

✅ Extract requirements

✅ Extract benefits

✅ Extract Quick Apply availability

✅ Extract application URLs

✅ Clean structured datasets

✅ High-speed cloud extraction engine

---

## ⚡ Input Configuration (Simple & Powerful)

### 🔥 BULK KEYWORD MODE (SEO BOOST 🚀)

````

{
"keywords": \[
"software engineer",
"data analyst",
"project manager",
"registered nurse",
"accountant",
"marketing specialist"
],
"location": "Canada",
"max\_items": 500
}

```

---

## 📊 Extracted Job Data (Structured Output)

| Field | Description |
|------|-------------|
| jobTitle | Job title |
| companyName | Hiring company |
| location | Job location |
| jobType | Employment type |
| workMode | Remote / Hybrid / On-site |
| salary | Salary information |
| postedDate | Posting date |
| requirements | Job requirements |
| benefits | Employee benefits |
| quickApply | Quick Apply availability |
| jobUrl | Direct application URL |

---

## 💡 Use Cases (High Demand SEO Keywords)

This Workopolis scraper is perfect for:

💼 Canadian job aggregation

📊 Canada labor market analysis

🏢 Recruitment intelligence

📈 HR analytics

💰 Salary benchmarking

🤖 AI training datasets

📡 Job aggregation platforms

🎯 Hiring trend analysis

⚡ Bulk job data extraction

---

## 🚀 Key Features (Apify SEO Optimized)

⚡ Bulk keyword scraping

🇨🇦 Canada-wide job coverage

📌 Smart pagination

🧠 Structured datasets

📊 High-speed extraction

🔁 Automatic retry system

💾 Export-ready data

⚙️ Enterprise scalability

☁️ Cloud execution on Apify

---

## 📤 Output Formats Supported

✔ JSON

✔ CSV

✔ Excel (XLSX)

✔ XML

✔ HTML Table

---

## 📦 Example Output

```

{
"jobTitle": "Software Engineer",
"companyName": "Tech Solutions Canada",
"location": "Toronto, ON",
"jobType": "Full-time",
"workMode": "Hybrid",
"salary": "$90,000 - $110,000 per year",
"postedDate": "3 days ago",
"requirements": \[
"3+ years of software development experience",
"Python or JavaScript"
],
"benefits": \[
"Health insurance",
"Remote work",
"Paid vacation"
],
"quickApply": true,
"jobUrl": "https://www.workopolis.com/job/software-engineer-123456"
}

````

---

## 🔥 Why This is the BEST Workopolis Scraper on Apify?

✔ Optimized for Apify marketplace SEO

✔ Supports bulk keyword searches

✔ Fast and reliable extraction

✔ Enterprise-grade scalability

✔ Clean structured datasets

✔ Ideal for recruiters, HR teams, staffing agencies, researchers and AI companies

---

## 💸 Pricing

This scraper runs on a **pay-per-result pricing model**.

You only pay for successfully extracted records.

💳 **Price:** **$0.97 / 1,000 results**

---

## ❓ FAQ (SEO BOOST SECTION)

#### Can I scrape multiple keywords at once?

Yes. Bulk keyword mode allows multiple job searches in a single run.

#### Does it support pagination?

Yes. All search result pages are processed automatically.

#### Can I scrape jobs across Canada?

Yes. Search by city, province or nationwide.

#### Can I export the results?

Yes. JSON, CSV, Excel, XML and HTML are supported.

#### Is coding required?

No. This is a fully no-code Apify Actor.

---

## ⚠️ Disclaimer

This tool is an independent data extraction solution and is not affiliated with Workopolis.

---

## 🔗 Related Actors (PrimeScrape Ecosystem)

We are building the complete **PrimeScrape Job Intelligence Suite** 🚀

Coming Soon:

- LinkedIn Jobs Scraper
- Indeed Jobs Scraper
- Workday Jobs Scraper
- Oracle Careers Scraper

---

## 🌍 PrimeScrape Ecosystem

Built for large-scale data extraction, recruitment intelligence, automation and AI.

📊 Job data extraction

🏢 Company intelligence

📈 Market analytics

🤖 AI training datasets

⚙️ Automation pipelines

🇨🇦 Canadian hiring intelligence

---

## 📬 Support

⭐⭐⭐⭐⭐ Leave a review if this scraper helps your workflow.

📩 Contact us via Apify for feature requests, enterprise solutions or custom scraping projects.

# Actor input Schema

## `keywords` (type: `array`):

List of job keywords to search on Workopolis — one independent batch of results per keyword (e.g., 'software engineer', 'data analyst').
## `location` (type: `string`):

Job location applied to all keywords (e.g., 'toronto', 'montreal', 'vancouver')
## `max_items_per_keyword` (type: `integer`):

Maximum number of jobs to extract for each keyword in the list

## Actor input object example

```json
{
  "keywords": [
    "software engineer",
    "data analyst"
  ],
  "location": "toronto",
  "max_items_per_keyword": 100
}
````

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "keywords": [
        "software engineer",
        "data analyst"
    ],
    "location": "toronto",
    "max_items_per_keyword": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/workopolis-jobs-scraper-low-cost").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 = {
    "keywords": [
        "software engineer",
        "data analyst",
    ],
    "location": "toronto",
    "max_items_per_keyword": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/workopolis-jobs-scraper-low-cost").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 '{
  "keywords": [
    "software engineer",
    "data analyst"
  ],
  "location": "toronto",
  "max_items_per_keyword": 100
}' |
apify call delectable_incubator/workopolis-jobs-scraper-low-cost --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Workopolis Jobs Scraper - Low-cost💲🔥🇨🇦💼",
        "description": "🔍 Easily scrape jobs from Workopolis Canada. Extract job titles, companies, locations, salaries, work modes, job types, descriptions, requirements, posting dates & more. Ideal for Canadian job market research, recruitment, HR analytics, hiring intelligence and lead generation.",
        "version": "0.0",
        "x-build-id": "HvrWfkAzGITtFctjB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/delectable_incubator~workopolis-jobs-scraper-low-cost/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-delectable_incubator-workopolis-jobs-scraper-low-cost",
                "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/delectable_incubator~workopolis-jobs-scraper-low-cost/runs": {
            "post": {
                "operationId": "runs-sync-delectable_incubator-workopolis-jobs-scraper-low-cost",
                "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/delectable_incubator~workopolis-jobs-scraper-low-cost/run-sync": {
            "post": {
                "operationId": "run-sync-delectable_incubator-workopolis-jobs-scraper-low-cost",
                "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": [
                    "keywords",
                    "location"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords 🔍",
                        "type": "array",
                        "description": "List of job keywords to search on Workopolis — one independent batch of results per keyword (e.g., 'software engineer', 'data analyst').",
                        "default": [
                            "software engineer",
                            "data analyst"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Job location applied to all keywords (e.g., 'toronto', 'montreal', 'vancouver')",
                        "default": "toronto"
                    },
                    "max_items_per_keyword": {
                        "title": "Maximum Jobs to Scrape Per Keyword",
                        "type": "integer",
                        "description": "Maximum number of jobs to extract for each keyword in the list",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
