# GCC Job Scraper — Bayt, Naukrigulf and GulfTalent (`blackfalcondata/gcc-job-scraper`) Actor

Get current job listings from Bayt, Naukrigulf and GulfTalent across the six Gulf states in one run. Search by keyword, then narrow by city, monthly salary in US dollars or posting date. Each job flags likely duplicates posted on the other boards.

- **URL**: https://apify.com/blackfalcondata/gcc-job-scraper.md
- **Developed by:** [Black Falcon Data](https://apify.com/blackfalcondata) (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

$1.20 / 1,000 job records

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/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

### What does GCC Job Scraper do?

GCC Job Scraper gets current job listings from [bayt.com](https://bayt.com), [naukrigulf.com](https://naukrigulf.com) and [gulftalent.com](https://gulftalent.com) across the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman in one run, with company, city, posting date, salary and a short summary for each job. Search by keyword and narrow by country, city, posting date or minimum monthly salary in US dollars.

**New to Apify?** [Sign up free](https://console.apify.com/sign-up?fpr=1h3gvi) and use the included $5 monthly platform credit to test this actor.

### Key features

- **🧭 Bayt, Naukrigulf and GulfTalent in one run:** one keyword searches the current listings of all three boards at once, newest first, across the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. Every job keeps its board, its own id and a link to the original posting, and the fields are the same whichever board it came from: title, company, location, city, category, industry, posting date, salary and a short summary.
- **⚡ Results in seconds:** the listings are already collected, so a run searches them instead of visiting three websites: a typical run finishes in well under a minute.
- **🎯 Filter by country, city, salary and date:** narrow any search by country, city, posting date (1 to 60 days) and minimum monthly salary in US dollars, which compares salaries posted in AED, SAR, QAR and the other Gulf currencies on one scale. A job that posts no salary is left out when the salary filter is set.
- **🔗 Likely cross-board duplicates flagged:** when the same opening appears to be posted on another board too, the job carries `possibleDuplicates` with that board, its id and its link. It is a hint and nothing is merged or dropped, so you decide whether two postings are one job.
- **📤 Export anywhere:** Download the dataset as JSON, CSV, or Excel from the Apify Console, or stream live via the Apify API and integrations (Make, Zapier, Google Sheets, n8n, …).

### What data can you get for each search?

Each job includes its board, its id on that board, country, title, company, location, city, category, industry, posting date, a link to the original posting, the salary as posted, the monthly salary in US dollars, a short summary and `possibleDuplicates`. By default every row has the same columns: a missing city or salary is `null`, other text fields the board leaves blank are empty strings and `possibleDuplicates` is an empty list. Turn on **Exclude empty fields** to drop those empty fields from the row instead.

### Input

The main inputs are a search keyword, an optional location filter, and a result limit. Additional filters and options are available in the input schema.

Key parameters:

- **`query`** — Words that must all appear in the job title, company or category, e.g. accountant or civil engineer. Leave empty for all jobs.
- **`country`** — One Gulf country. Leave empty for all six.
- **`maxResults`** — The most jobs to save. You pay per job saved, so this is also your spending cap for the run. (default: `100`)
- **`city`** — City name as the boards write it, e.g. Dubai, Riyadh or Doha. Leave empty for the whole country.
- **`postedWithinDays`** — Only jobs posted in the last N days (1-60). Leave empty for all current jobs.
- **`salaryMin`** — Only jobs whose stated salary reaches this many US dollars a month. Jobs without a stated salary are left out when this is set.
- **`excludeEmptyFields`** — Drop fields that are empty for a job (no city, no salary, no likely duplicates) from its row. Off by default so every row has the same columns. (default: `false`)

### Input examples

**Basic search** — One keyword across Bayt, Naukrigulf and GulfTalent in all six Gulf countries.

→ Up to 50 jobs, each with its board, country, city, salary and a short summary.

```json
{
  "query": "accountant",
  "maxResults": 50
}
```

**New jobs in one city with a salary floor** — Narrow to Dubai, the last 7 days and at least 3,000 USD a month.

→ Only recent Dubai jobs whose stated salary reaches the floor; jobs without a salary are left out.

```json
{
  "query": "civil engineer",
  "country": "AE",
  "city": "Dubai",
  "postedWithinDays": 7,
  "salaryMin": 3000,
  "maxResults": 100
}
```

### Output

Each run produces a dataset of structured job records. Results can be downloaded as JSON, CSV, or Excel from the Dataset tab in Apify Console.

### Example job record

```json
{
  "id": "naukrigulf-281026000025",
  "board": "naukrigulf",
  "country": "AE",
  "title": "Executive Accountant",
  "company": "Confidential Company",
  "location": "Ras Al Khaimah - United Arab Emirates (UAE)",
  "category": "Accounts / Taxation / Audit / Company Secretary",
  "industry": "Metals / Steel / Iron / Aluminium / Fabrication",
  "postedAt": "2026-10-28T04:58:23.000Z",
  "url": "https://www.naukrigulf.com/executive-accountant-jobs-in-ras-al-khaimah-uae-in-confidential-5-to-10-years-n-jid-281026000025",
  "city": "Ras Al Khaimah",
  "salary": "AED 4,100-5,500",
  "summary": "- Key ResponsibilitiesPrepare and review monthly books of accounts and submit them to HO. - Manage month-end and year-end closing activities. - Verify expenses and obtain HO approvals. - Record daily…",
  "salaryMonthlyUsd": 1486
}
```

### How to run searches

1. Go to [GCC Job Scraper](https://apify.com/blackfalcondata/gcc-job-scraper?fpr=1h3gvi) in Apify Console.
2. Enter a search keyword and optional location filter.
3. Set `maxResults` to control how many results you need.
4. Click **Start** and wait for the run to finish.
5. Export the dataset as JSON, CSV, or Excel.

### Use cases

- Extract job data from bayt.com for market research and competitive analysis.
- Track salary trends across regions and categories over time.
- Research company hiring patterns, employer profiles, and industry distribution.
- Export clean, structured data to dashboards, spreadsheets, or data warehouses.

### How much does it cost to run searches?

GCC Job Scraper uses [pay-per-event](https://docs.apify.com/platform/actors/paid-actors/pay-per-event) pricing. Starting a run is free — you pay only for each result that is actually produced.

- **Per result:** $0.0012 per job record

Example costs:

- 10 results: **$0.012**
- 25 results: **$0.03**
- 100 results: **$0.12**
- 200 results: **$0.24**
- 500 results: **$0.6**

### FAQ

#### How many searches can I check per run?

Each run performs one search and saves up to `maxResults` matching jobs (default 100, at most 100,000). You pay per job saved, and the run stops early if your maximum cost per run is reached.

#### Can I integrate GCC Job Scraper with other apps?

Yes. GCC Job Scraper works with Apify's [integrations](https://apify.com/integrations?fpr=1h3gvi) to connect with tools like Zapier, Make, Google Sheets, Slack, and more. You can also use webhooks to trigger actions when a run completes.

#### Can I use GCC Job Scraper with the Apify API?

Yes. You can start runs, manage inputs, and retrieve results programmatically through the [Apify API](https://docs.apify.com/api/v2). Client libraries are available for JavaScript, Python, and other languages.

#### Can I use GCC Job Scraper through an MCP Server?

Yes. Apify provides an [MCP Server](https://apify.com/apify/actors-mcp-server?fpr=1h3gvi) that lets AI assistants and agents call this actor directly. Use `excludeEmptyFields` to keep payloads manageable for LLM context windows.

#### Is it legal to run searches?

This actor queries publicly available data for the searches you provide. You remain responsible for ensuring your use complies with applicable laws, source terms, and downstream obligations.

#### Your feedback

If you have questions, need a feature, or found a bug, please [open an issue](https://apify.com/blackfalcondata/gcc-job-scraper/issues?fpr=1h3gvi) on the actor's page in Apify Console. Your feedback helps us improve.

### You might also like

- [Bayt Job Scraper — MENA Jobs with Salary & Skills](https://apify.com/blackfalcondata/bayt-scraper?fpr=1h3gvi) — Scrape bayt.com — the leading Middle East job board across UAE · Saudi Arabia · Qatar · Egypt & 9.
- [GulfTalent Job Scraper — Salaries, Emails & 40+ Fields](https://apify.com/blackfalcondata/gulftalent-scraper?fpr=1h3gvi) — 💰 $0.7/1K — scrape gulftalent.com, the largest Gulf and Middle East job board, across all six.
- [Naukrigulf Job Scraper — Gulf Job Board](https://apify.com/blackfalcondata/naukrigulf-scraper?fpr=1h3gvi) — Scrape naukrigulf.com — 13 markets across the Gulf and wider MENA, from UAE and Saudi Arabia to.
- [Wuzzuf Job Scraper \[Just 💰$1\] — Egypt & MENA Jobs](https://apify.com/blackfalcondata/wuzzuf-scraper?fpr=1h3gvi) — 💰 $1 per 1,000 jobs. Scrape wuzzuf.net across Egypt & the wider MENA region — structured salary ·.
- [Actiris Job Scraper \[Just 💰$1.5\] — Brussels Public Jobs](https://apify.com/blackfalcondata/actiris-scraper?fpr=1h3gvi) — 💰 $1.5 per 1,000 jobs. Scrape actiris.brussels — the official Brussels public employment service.
- [AllJobs Israel Job Scraper - Hebrew & English](https://apify.com/blackfalcondata/alljobs-co-il-scraper?fpr=1h3gvi) — Scrape alljobs.co.il — records. Every record carries extracted emails, salary and location the.
- [AMS Austria Job Scraper — Public Employment Service Jobs](https://apify.com/blackfalcondata/ams-austria-job-scraper?fpr=1h3gvi) — Scrape jobs.ams.at, Austria's official AMS public employment portal (alle jobs). Get live.
- [APEC Job Scraper \[Just 💰$0.8\] — French Executive Jobs](https://apify.com/blackfalcondata/apec-scraper?fpr=1h3gvi) — 💰 $0.8 per 1,000 jobs, platform usage included. Scrape apec.fr French executive listings — every.

### Getting started with Apify

New to Apify? [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=1h3gvi) — no credit card required.

1. Sign up — $5 platform credit included
2. Open this actor and configure your input
3. Click **Start** — export results as JSON, CSV, or Excel

Need more later? [See Apify pricing](https://apify.com/pricing?fpr=1h3gvi).

### Disclaimer

This actor accesses only publicly available data on bayt.com. You are responsible for how you use the extracted data — in particular any personal information such as names, phone numbers, or email addresses — and for complying with GCC's terms of use, applicable data-protection law (including the GDPR where it applies), and the anti-spam rules of your jurisdiction.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by GCC or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

### Search keywords

bayt scraper, bayt api, apify bayt, bayt data extraction, gcc scraper, gcc api, apify gcc, gcc data extraction, bayt.com scraper, bayt.com data, bayt.com api, naukrigulf.com scraper, gulftalent.com scraper, gcc united arab emirates, gcc united arab emirates scraper, gcc saudi arabia, gcc saudi arabia scraper, gcc qatar, gcc qatar scraper, gcc kuwait, gcc kuwait scraper, gcc bahrain, gcc bahrain scraper, gcc oman, gcc oman scraper, job listings scraper, recruitment data, hiring data, job board scraper, gcc job scraper, gulf job scraper, uae job scraper, saudi job scraper, bayt naukrigulf gulftalent, middle east jobs dataset.

# Changelog

This Actor's version history is a separate document: https://apify.com/blackfalcondata/gcc-job-scraper/changelog.md

# Actor input Schema

## `query` (type: `string`):

Words that must all appear in the job title, company or category, e.g. accountant or civil engineer. Leave empty for all jobs.

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

One Gulf country. Leave empty for all six.

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

The most jobs to save. You pay per job saved, so this is also your spending cap for the run.

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

City name as the boards write it, e.g. Dubai, Riyadh or Doha. Leave empty for the whole country.

## `postedWithinDays` (type: `integer`):

Only jobs posted in the last N days (1-60). Leave empty for all current jobs.

## `salaryMin` (type: `integer`):

Only jobs whose stated salary reaches this many US dollars a month. Jobs without a stated salary are left out when this is set.

## `excludeEmptyFields` (type: `boolean`):

Drop fields that are empty for a job (no city, no salary, no likely duplicates) from its row. Off by default so every row has the same columns.

## Actor input object example

```json
{
  "query": "accountant",
  "country": "AE",
  "maxResults": 100,
  "excludeEmptyFields": false
}
```

# Actor output Schema

## `results` (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 = {
    "query": "accountant",
    "country": "AE",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("blackfalcondata/gcc-job-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 = {
    "query": "accountant",
    "country": "AE",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("blackfalcondata/gcc-job-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 '{
  "query": "accountant",
  "country": "AE",
  "maxResults": 100
}' |
apify call blackfalcondata/gcc-job-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,blackfalcondata/gcc-job-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/dSDBU3QyAV4T81sUf/builds/T92KMhunCu8ENUSdP/openapi.json
