# Bayt Scraper — Middle East Jobs (`hipersoft/bayt-scraper`) Actor

Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.

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

## Pricing

from $0.003 / job scraped

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

## Bayt Job Scraper — Middle East Jobs, Salaries & Companies

Scrape **Bayt.com** — the Middle East's #1 job site — into clean JSON, CSV or Excel. Search any keyword across **UAE, Saudi Arabia, Egypt, Qatar, Kuwait, Bahrain, Oman, Jordan, Lebanon** (or all markets) and get the **job title, company, salary range, career level, location, posted date, description and apply URL** for every listing. Fast and reliable.

![Bayt Job Scraper input — keywords, country and results limit in the Apify Console](https://api.apify.com/v2/key-value-stores/SUfvnaFLd9z9eBCtV/records/bayt-scraper-input.png?v=2)

### Features

- 💼 **Rich job data** — title, company, full description and apply URL per listing
- 🏢 **Company** — employer name, logo, and a flag for confidential postings
- 💰 **Salary range** — as posted, e.g. `AED 5,509 - AED 7,345` (where available)
- 📈 **Career level** — Entry, Mid career, Management and more
- 📍 **Location split** — country, city, area and two-letter ISO country code
- 🕐 **Freshness signals** — posted date, remote-working flag and external-source flag
- 🌍 **All MENA markets** — search one country or every Bayt market at once

### Use cases

- **Recruiting & sourcing** — monitor Gulf and wider MENA openings by role, city or company
- **Salary benchmarking** — track posted pay ranges across countries and career levels
- **Labour-market research** — measure hiring demand by keyword, market and seniority
- **B2B lead generation** — find companies actively hiring for specific skills
- **Feed an ATS or job board** with fresh, structured Middle East listings
- **Dataset building** — assemble MENA jobs datasets for analytics or ML

### How to scrape Bayt jobs

1. Add the **Bayt Job Scraper** to your Apify account.
2. Enter one or more search terms in **`keywords`** (one per line).
3. Choose a **`country`** market (or All) and set **`maxItemsPerKeyword`**.
4. Click **Run**.
5. Export the results as JSON, CSV or Excel, or pull them via the Apify API.

### Input

```json
{
  "keywords": ["accountant", "software engineer"],
  "country": "uae",
  "maxItemsPerKeyword": 200
}
```

| Field | Description |
|---|---|
| `keywords` | Job titles / search terms, one per line — each is scraped separately (**required**) |
| `country` | Market to search: UAE, Saudi Arabia, Egypt, Qatar, Kuwait, Bahrain, Oman, Jordan, Lebanon, … or All |
| `maxItemsPerKeyword` | Maximum jobs to return per keyword |

### What you get

![Bayt Job Scraper output example — Middle East job listings as structured JSON](https://api.apify.com/v2/key-value-stores/SUfvnaFLd9z9eBCtV/records/bayt-scraper-output.png?v=5)

```json
{
  "id": "5461169",
  "title": "Accountant",
  "company": "Trust & Will International Freight Forwarder LLC",
  "isConfidential": false,
  "location": "Dubai, UAE",
  "country": "UAE",
  "city": "Dubai",
  "area": "Business Bay",
  "iso": "ae",
  "salaryRange": "AED 5,509 - AED 7,345",
  "careerLevel": "Mid career",
  "remoteWorking": 0,
  "isExternal": true,
  "description": "An opportunity exists for an accountant in a leading international logistics company…",
  "postedAt": "2026-06-10T04:00:16.000Z",
  "companyLogo": "https://img.bayt.com/…/logo.png",
  "url": "https://www.bayt.com/en/uae/jobs/accountant-5461169/",
  "sourceUrl": "https://www.bayt.com",
  "collectedAt": "2026-07-30T22:04:55.271Z"
}
```

Every record has a stable `id`, `sourceUrl`, `collectedAt` and explicit `null` for missing fields.

#### Output schema

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique Bayt job listing ID. |
| `title` | string | Job title. |
| `company` | string | Employer name (confidential postings are flagged). |
| `isConfidential` | boolean | Whether the employer is hidden as a confidential posting. |
| `location` | string | Full location text as displayed on the listing. |
| `country` | string | Country name. |
| `city` | string | City name. |
| `area` | string | District or area within the city. |
| `iso` | string | Two-letter ISO country code. |
| `salaryRange` | string | Salary range as posted, e.g. `AED 5,509 - AED 7,345`. |
| `careerLevel` | string | Seniority level, e.g. Entry, Mid career, Management. |
| `remoteWorking` | integer | Remote-working flag (0 = on-site, 1 = remote). |
| `isExternal` | boolean | Whether the listing points to an external application source. |
| `description` | string | Job description text. |
| `postedAt` | string (ISO date) | When the job was posted. |
| `companyLogo` | string (URL) | Employer logo image URL. |
| `url` | string (URL) | Job listing URL on Bayt.com. |
| `sourceUrl` | string (URL) | Base source site URL. |
| `collectedAt` | string (ISO date) | When the record was collected. |

### Related Actors

Combine Bayt with other job sources for wider coverage:

- [Reed Job Scraper](https://apify.com/hipersoft/reed-scraper) — UK jobs with salaries and full descriptions.
- [Naukri Job Scraper](https://apify.com/hipersoft/naukri-scraper) — India jobs with company and salary data.
- [RemoteOK Job Scraper](https://apify.com/hipersoft/remoteok-scraper) — remote roles with tags and salary ranges.
- [We Work Remotely Jobs Scraper](https://apify.com/hipersoft/weworkremotely-scraper) — remote jobs with full descriptions by category.
- [Company Careers Job Scraper](https://apify.com/hipersoft/company-jobs-scraper) — roles straight from Greenhouse, Lever and Ashby boards.

### FAQ

**Do I need a Bayt account or any setup?**
No account and no setup — just add your `keywords`, pick a `country` market and run.

**How many jobs can I get per run?**
Use `maxItemsPerKeyword` to cap results per keyword. Each keyword is scraped separately, so more keywords means wider coverage across MENA roles and markets.

**Which countries can I search?**
UAE, Saudi Arabia, Egypt, Qatar, Kuwait, Bahrain, Oman, Jordan, Lebanon and more — or search All markets at once.

**What's the output format?**
Structured JSON — one record per job with `title`, `company`, `salaryRange`, `careerLevel`, location split, dates and the full `description`. Export as JSON, CSV or Excel.

**Can I filter by keyword and market?**
Yes. Provide any number of `keywords`, choose a `country` market (or All), and set `maxItemsPerKeyword` to control volume.

**Is scraping Bayt.com legal?**
Only public data shown to any visitor on Bayt.com is collected. This is an independent tool, not affiliated with Bayt; check Bayt's Terms of Service and applicable regulations for your use case.

**Can I integrate this with other tools?**
The Bayt Job 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), JavaScript/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

### Notes

Original clean-room implementation. Returns only public data shown to any visitor on Bayt.com; you are responsible for compliance with Bayt's terms. Not affiliated with Bayt.

# Actor input Schema

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

Search terms, one per line (e.g. "accountant", "software engineer", "sales manager").

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

Bayt country market.

## `maxItemsPerKeyword` (type: `integer`):

Cap jobs per keyword (20 per page).

## Actor input object example

```json
{
  "keywords": [
    "accountant"
  ],
  "country": "uae",
  "maxItemsPerKeyword": 200
}
```

# 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": [
        "accountant"
    ]
};

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

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/bayt-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 '{
  "keywords": [
    "accountant"
  ]
}' |
apify call hipersoft/bayt-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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