# Jobberman & BrighterMonday Jobs Scraper — Africa Jobs (`hipersoft/jobberman-scraper`) Actor

Scrape job listings from Jobberman (Nigeria, Ghana) and BrighterMonday (Kenya, Uganda, Tanzania): title, company, location, job type, salary range, category, posted date, summary, plus full description, industry, education and experience. Export CSV/JSON.

- **URL**: https://apify.com/hipersoft/jobberman-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00075 / job

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Jobberman & BrighterMonday Jobs Scraper: Jobs in Nigeria, Ghana, Kenya and Uganda

**Jobberman & BrighterMonday Jobs Scraper** extracts job listings from Africa's leading job boards: **Jobberman** in **Nigeria and Ghana** and **BrighterMonday** in **Kenya and Uganda**. For every job you get the **title, company, location, job type, salary range and currency, job function, posted date, featured flag, summary and company logo**. Turn on **Full job details** to also get the **full job description, posting and closing dates, industry, education requirement, experience level and minimum experience**. Search any **keyword** or paste any search link with your own filters, and export to **CSV, Excel or JSON**. Ideal for **recruitment, salary benchmarking and labour-market research in Africa**.

### What does this jobs scraper do?

- 🌍 **4 countries**: Nigeria and Ghana (Jobberman), Kenya and Uganda (BrighterMonday).
- 🔎 **Keyword search**: accountant, software developer, sales, nurse, driver… or all jobs.
- 🔗 **Paste search links** with filters for location, industry, job function, salary or experience.
- 💰 **Salary ranges** with currency (NGN, GHS, KES, UGX) and parsed minimum/maximum.
- 🏢 **Company name and logo**, location and job type.
- 🗂️ **Job function** (category) and **industry**.
- 📝 **Full description** (optional) with responsibilities and requirements.
- 🎓 **Education and experience requirements** (optional).
- 📅 **Posted date and closing date** (optional).
- ⭐ **Featured** listings flagged.

### What data can you scrape?

| Field | Description |
|---|---|
| Job | ID, title, link, featured flag |
| Company | Name, logo |
| Location | City/region and country |
| Terms | Job type, salary text, currency, min and max |
| Category | Job function, industry\* |
| Dates | Posted (relative), date posted\*, closing date\* |
| Requirements\* | Education, experience level, minimum experience (months) |
| Text | Summary, full description\* |

\* With **Full job details** turned on.

### Use cases for African job data

- **Recruiters and staffing agencies**: source open roles and hiring companies across Nigeria, Ghana, Kenya and Uganda.
- **Salary benchmarking**: compare published salary ranges by role, city and industry.
- **HR tech and job aggregators**: feed fresh listings into your platform.
- **Market and labour research**: track hiring demand by sector over time.
- **Sales teams**: find companies that are growing and hiring.
- **Job seekers and career services**: build alerts for new roles.

### How to scrape Jobberman and BrighterMonday

1. Click **Try for free** to open the scraper in Apify Console.
2. Choose a **country** and enter **search terms**, or paste **job search links**.
3. Optionally turn on **Full job details**.
4. Set **Max jobs** and click **Start**.
5. Download the jobs as **CSV, Excel or JSON**.

### Input

#### Example input

```json
{
  "country": "ng",
  "searchTerms": ["accountant", "software developer"],
  "includeDetails": true,
  "maxItems": 500
}
```

| Field | Description |
|---|---|
| **Country** | Nigeria, Ghana, Kenya or Uganda. |
| **Search terms** | Keywords; one search each. Empty = all jobs. |
| **Job search links** | Search links with your own filters. |
| **Full job details** | Adds description, dates, industry, education and experience. |
| **Max jobs** | Stop after this many (0 = no limit). |

### Output

#### Job example (with full details)

```json
{
  "jobId": 1265969,
  "url": "https://www.jobberman.com/listings/account-administrative-officer-0k9evg",
  "title": "Account & Administrative Officer",
  "company": "FTR Electronics Ltd",
  "location": "Lagos",
  "jobType": "Full Time",
  "salary": "NGN 250,000 - 400,000",
  "salaryCurrency": "NGN",
  "salaryMin": 250000,
  "salaryMax": 400000,
  "category": "Accounting, Auditing & Finance",
  "postedAgo": "4 days ago",
  "featured": true,
  "summary": "FTR Electronics Limited is seeking a competent, detail-oriented, and highly organised Account & Administrative Officer to join our team…",
  "companyLogo": "https://i.roamcdn.net/kazi/ng/hq/UmIgq-9aZawAfVTXCTZrzw/-/_1Q6tq89LxV7VGZmZmBoYgNoQVb2hmbG5kZGluYgbMwekA",
  "country": "Nigeria",
  "description": "Responsibilities:\n• Maintain accurate financial records, including invoices, receipts, payments, and expenses.\n• Assist in preparing financial reports and account statements…",
  "datePosted": "2026-10-02",
  "validThrough": "2026-12-31",
  "industry": "IT & Telecoms",
  "jobFunction": "Accounting, Auditing & Finance",
  "employmentType": "FULL_TIME",
  "education": "HND",
  "experience": "Entry level",
  "minExperienceMonths": 24,
  "directApply": true,
  "search": "accountant (Nigeria)"
}
```

#### Output schema

| Field | Type | Description |
|---|---|---|
| `jobId`, `url`, `title`, `featured` | mixed | Job. |
| `company`, `companyLogo` | string | Employer. |
| `location`, `country` | string | Location. |
| `jobType`, `employmentType` | string | Job type. |
| `salary`, `salaryCurrency`, `salaryMin`, `salaryMax` | mixed | Salary. |
| `category`, `jobFunction`, `industry` | string | Classification. |
| `postedAgo`, `datePosted`, `validThrough` | string | Dates. |
| `education`, `experience`, `minExperienceMonths`, `directApply` | mixed | Requirements. |
| `summary`, `description` | string | Text. |
| `search`, `scrapedAt` | string | Source info. |

### How much does it cost?

This scraper uses **pay-per-job** pricing: a small fixed price per job, with automatic discounts on higher Apify plans. See the **Pricing** tab for the exact price.

### More job data

- [Bayt Scraper](https://apify.com/hipersoft/bayt-scraper): Middle East and North Africa jobs.
- [LinkedIn Jobs Scraper](https://apify.com/hipersoft/linkedin-jobs-scraper): jobs worldwide.
- [Indeed Scraper](https://apify.com/hipersoft/indeed-scraper): Indeed job listings.

### FAQ

**Which job boards are covered?**
Jobberman (jobberman.com, jobberman.com.gh) and BrighterMonday (brightermonday.co.ke, brightermonday.co.ug).

**Do all jobs show a salary?**
No. Salary is returned when the employer publishes it.

**Can I filter by location or industry?**
Yes. Apply filters on the job board, copy the link and paste it into **Job search links**.

**What formats can I export?**
CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.

**Can I integrate this scraper with other apps?**
The scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JS/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**Is it legal to scrape these job boards?**
The scraper only collects publicly posted job listings. You are responsible for using the data in line with the sites' terms and applicable law.

### Related Actors

- [Bayt Scraper](https://apify.com/hipersoft/bayt-scraper)
- [LinkedIn Jobs Scraper](https://apify.com/hipersoft/linkedin-jobs-scraper)

### Notes

Original clean-room implementation. Returns only public data. Not affiliated with Jobberman or BrighterMonday.

# Actor input Schema

## `country` (type: `string`):

Job board country.

## `searchTerms` (type: `array`):

Job titles or keywords, e.g. accountant, software developer, sales, nurse. Each term is a separate search. Leave empty for all jobs.

## `startUrls` (type: `array`):

Optional. Paste Jobberman or BrighterMonday search links with your own filters (location, industry, salary…).

## `includeDetails` (type: `boolean`):

Also collect the full description, posting and closing dates, industry, education, experience level and minimum experience. Slower.

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

Stop after this many jobs. 0 means no limit.

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

Not required for normal use.

## Actor input object example

```json
{
  "country": "ng",
  "searchTerms": [
    "accountant"
  ],
  "includeDetails": false,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

The results as dataset items.

# 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 = {
    "searchTerms": [
        "accountant"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/jobberman-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 = {
    "searchTerms": ["accountant"],
    "maxItems": 50,
}

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

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

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

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "accountant"
  ],
  "maxItems": 50
}' |
apify call hipersoft/jobberman-scraper --silent --output-dataset

```

## MCP server setup

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

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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