Bayt Jobs Scraper - Middle East (MENA) Job Listings
Pricing
from $1.75 / 1,000 results
Bayt Jobs Scraper - Middle East (MENA) Job Listings
Scrape jobs from Bayt.com, the #1 job site in the Middle East: title, company, location, salary, experience, employment type, posting date and full description across UAE, Saudi Arabia, Egypt, Qatar, Kuwait and 30+ MENA countries. Export to JSON, CSV, Excel.
Pricing
from $1.75 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Bayt Jobs Scraper π
Extract job listings from Bayt.com β the #1 job site in the Middle East β into clean, structured data. Search by keyword and country and export thousands of jobs with company, location, salary, years of experience, employment type, posting date, the full description and the apply link β across the UAE, Saudi Arabia, Egypt, Qatar, Kuwait, Jordan and 30+ MENA markets. Built for recruiters, job boards, salary benchmarking and labour-market research.
π― What does Bayt Jobs Scraper do?
Bayt.com is the leading employment marketplace in the Middle East and North Africa, with tens of thousands of active vacancies across the Gulf and wider MENA region. This actor turns any Bayt search into a structured dataset you can download or feed into your own tools.
Give it a search term (and optionally a country) β or a Bayt search URL β and it will:
- π Open the Bayt results page and read every job on it
- π Automatically paginate through all result pages until it reaches your limit
- π’ Capture company, company profile link, city and country
- π° Add structured salary (min / max / currency), experience and employment type (detail mode)
- π Include the full job description (detail mode)
- π§Ή Return clean, deduplicated, structured records β no HTML, no clutter
- β¬οΈ Export to JSON, CSV, Excel, HTML or via API in one click
No login, no browser extensions, no manual copy-paste.
β¨ Key features
| Feature | Description |
|---|---|
| Keyword + country search | Type keywords and pick a country (UAE, Saudi Arabia, Egyptβ¦) or search internationally. |
| URL input | Paste any Bayt search URL to scrape a pre-filtered result set. |
| Structured salary | Minimum, maximum and currency for jobs that publish pay (detail mode). |
| Experience & type | Required years of experience, education level and employment type (detail mode). |
| Full description | The complete job description text (detail mode) β ready for search and NLP. |
| Company data | Company name, profile link and stable company ID for enrichment. |
| 30+ MENA markets | UAE, Saudi Arabia, Egypt, Qatar, Kuwait, Jordan, Lebanon, Bahrain, Oman and more. |
| Automatic pagination | Walks through all result pages up to your maxItems limit. |
| Deduplicated output | Each job appears once, identified by its unique Bayt job ID. |
| Clean exports | JSON, CSV, Excel, HTML table, RSS or JSON API. |
π₯ Input
The actor accepts a simple, no-code input form.
Option A β by keyword & country (easiest)
{"searchTerms": ["software engineer", "accountant"],"country": "uae","maxItems": 200}
Option B β with full details
{"searchTerms": ["marketing manager"],"country": "saudi-arabia","includeDescription": true,"maxItems": 300}
Option C β by search URL
{"startUrls": [{ "url": "https://www.bayt.com/en/uae/jobs/data-analyst-jobs/" }],"maxItems": 500}
Input parameters
| Field | Type | Description |
|---|---|---|
searchTerms | array | Job keywords to search. |
country | string | Country to search within (international, uae, saudi-arabia, egypt, qatar, kuwait, β¦). |
startUrls | array | Bayt search-results URLs (scraped in addition to search terms). |
includeDescription | boolean | Fetch each detail page for full description, salary, experience and employment type. Default false. |
maxItems | integer | Maximum number of jobs to collect. Default 200. |
proxyConfiguration | object | Proxy settings. Apify Proxy is recommended and on by default. |
π€ Output
Each job is returned as a clean JSON object (fields marked detail appear when Include full description & salary is enabled):
{"jobId": "5475027","title": "Full Stack Developer","url": "https://www.bayt.com/en/saudi-arabia/jobs/full-stack-developer-5475027/","company": "Tabeq","companyId": "2312631","companyUrl": "https://www.bayt.com/en/company/tabeq-2312631/","city": "Riyadh","country": "Saudi Arabia","postedAgo": "5 days ago","snippet": "Summary: Elevate your career as a Full Stack Developerβ¦","description": "Overview of the role: β¦","salaryMin": 500,"salaryMax": 1000,"salaryCurrency": "USD","salaryPeriod": "MONTH","employmentType": "FULL_TIME","yearsExperience": 3,"educationLevel": "bachelor degree","postedDate": "2026-08-08","validThrough": "2026-10-07","jobCountryCode": "SA","totalOpenings": 1,"isDirectApply": true}
Output fields
| Field | Type | Description |
|---|---|---|
jobId | string | Unique Bayt job ID. |
title | string | Job title. |
url | string | Direct link to the job. |
company / companyId / companyUrl | Company name, ID and profile link (ID/URL when the company is public). | |
city / country | string | Job location. |
postedAgo | string | Relative posting date (e.g. "5 days ago"). |
snippet | string | Short summary from the results page. |
description | string | Full job description (detail). |
salaryMin / salaryMax / salaryCurrency / salaryPeriod | Structured salary (detail, when published). | |
employmentType | string | e.g. FULL_TIME, PART_TIME (detail). |
yearsExperience | number | Required experience in years (detail). |
educationLevel | string | Required education (detail). |
postedDate / validThrough | string | Absolute posting and expiry dates (detail). |
jobCountryCode | string | ISO country code (detail). |
totalOpenings | number | Number of vacancies (detail). |
isDirectApply | boolean | Whether direct apply is available (detail). |
You can download the dataset as JSON, CSV, Excel, HTML, RSS or XML, or fetch it programmatically through the Apify API.
π How to use Bayt Jobs Scraper (step by step)
- Click Try for free / Start.
- Type one or more search terms and pick a country β or paste a Bayt search URL.
- (Optional) Enable Include full description & salary for richer data.
- Set maxItems to how many jobs you want.
- Click Save & Start.
- When the run finishes, open the Dataset tab and Export to your preferred format β or grab it via API.
That's it. No code required.
π‘ Use cases
- Recruitment & sourcing β Track who is hiring for which roles across the Gulf and MENA, and reach out directly.
- Salary benchmarking β Build compensation datasets by role, country and experience for the region.
- Job boards & aggregators β Feed fresh MENA vacancies into your own portal or newsletter.
- Market & labour research β Measure demand by country, sector, seniority and employment type.
- Competitive intelligence β Monitor a competitor's open roles across the region to infer growth and priorities.
- HR & talent teams β Benchmark your own postings against the live regional market.
π Countries covered
The Gulf and wider MENA region, including United Arab Emirates, Saudi Arabia, Egypt, Qatar, Kuwait, Jordan, Lebanon, Bahrain, Oman and more β or search internationally across all of them at once. Use the country option or paste any country-specific Bayt URL.
π Integrations & automation
Because this runs on Apify, you can:
- π Schedule runs (hourly, daily, weekly) to keep a live feed of new vacancies.
- π Push results to Google Sheets, Airtable, Slack, Zapier, Make, or any webhook.
- π§© Call it from your backend with the Apify API and SDKs (JavaScript / Python).
- π Use webhooks to trigger downstream workflows the moment a run completes.
Call via API (example)
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms": ["accountant"],"country": "uae","maxItems": 200}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('YOUR_ACTOR_ID').call({searchTerms: ['software engineer'],country: 'saudi-arabia',includeDescription: true,maxItems: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
β FAQ
Do I need a Bayt account or API key? No. Just provide a search term or a Bayt URL.
Which countries can I scrape?
The whole MENA region β UAE, Saudi Arabia, Egypt, Qatar, Kuwait, Jordan, Lebanon, Bahrain, Oman and more β or international for all at once.
Does it include salary?
Yes, for jobs that publish it. Enable Include full description & salary to get structured salaryMin / salaryMax / salaryCurrency, plus experience, education and employment type.
Does it include the full job description? Yes β enable detail mode and each job's complete description is fetched.
Why are some company IDs missing? Some employers post as "Confidential Company" and don't expose a public profile. The company name is still captured; the ID/URL is only present for public companies.
Are results deduplicated? Yes. Each job is uniquely identified by its Bayt job ID and appears once per run.
What formats can I export? JSON, CSV, Excel, HTML, RSS and XML β via the dashboard or the API.
How do I keep data fresh? Schedule the actor to run on the interval you need; each run returns the current live listings.
π Tips for best results
- Start narrow, then widen. Test one keyword and a small
maxItems, confirm the fields, then scale up. - Use country for focus. Pick a specific market for local hiring intelligence, or
internationalfor the whole region. - Enable detail mode for salary & descriptions. The list is fast; detail mode adds pay, experience and full text.
- Use URLs for precise filters. Apply filters on Bayt itself, then paste the URL.
- Schedule for freshness. The market moves daily; a scheduled run keeps your dataset current.
βοΈ Legal & responsible use
This actor is intended for lawful data collection such as market research, analytics and recruitment. You are responsible for how you use the collected data. Only collect publicly available information, respect the target website's Terms of Service and robots.txt, and comply with all applicable laws and regulations, including data-protection rules when processing any personal data. Do not use the data for spam or any unlawful purpose. This actor is an independent tool and is not affiliated with, endorsed by, or connected to Bayt.com or its subsidiaries. All trademarks belong to their respective owners.
π Support
Questions, feature requests or an issue with the data? Open an issue on the actor's page β feedback is welcome and helps improve the tool.
β If this actor saves you time, please leave a review β it really helps!