Bayt Jobs Scraper - Middle East (MENA) Job Listings avatar

Bayt Jobs Scraper - Middle East (MENA) Job Listings

Pricing

from $1.75 / 1,000 results

Go to Apify Store
Bayt Jobs Scraper - Middle East (MENA) Job Listings

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

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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.

Actor Region Salary Full description Output Pagination Countries No code Maintained


🎯 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

FeatureDescription
Keyword + country searchType keywords and pick a country (UAE, Saudi Arabia, Egypt…) or search internationally.
URL inputPaste any Bayt search URL to scrape a pre-filtered result set.
Structured salaryMinimum, maximum and currency for jobs that publish pay (detail mode).
Experience & typeRequired years of experience, education level and employment type (detail mode).
Full descriptionThe complete job description text (detail mode) β€” ready for search and NLP.
Company dataCompany name, profile link and stable company ID for enrichment.
30+ MENA marketsUAE, Saudi Arabia, Egypt, Qatar, Kuwait, Jordan, Lebanon, Bahrain, Oman and more.
Automatic paginationWalks through all result pages up to your maxItems limit.
Deduplicated outputEach job appears once, identified by its unique Bayt job ID.
Clean exportsJSON, 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

FieldTypeDescription
searchTermsarrayJob keywords to search.
countrystringCountry to search within (international, uae, saudi-arabia, egypt, qatar, kuwait, …).
startUrlsarrayBayt search-results URLs (scraped in addition to search terms).
includeDescriptionbooleanFetch each detail page for full description, salary, experience and employment type. Default false.
maxItemsintegerMaximum number of jobs to collect. Default 200.
proxyConfigurationobjectProxy 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

FieldTypeDescription
jobIdstringUnique Bayt job ID.
titlestringJob title.
urlstringDirect link to the job.
company / companyId / companyUrlCompany name, ID and profile link (ID/URL when the company is public).
city / countrystringJob location.
postedAgostringRelative posting date (e.g. "5 days ago").
snippetstringShort summary from the results page.
descriptionstringFull job description (detail).
salaryMin / salaryMax / salaryCurrency / salaryPeriodStructured salary (detail, when published).
employmentTypestringe.g. FULL_TIME, PART_TIME (detail).
yearsExperiencenumberRequired experience in years (detail).
educationLevelstringRequired education (detail).
postedDate / validThroughstringAbsolute posting and expiry dates (detail).
jobCountryCodestringISO country code (detail).
totalOpeningsnumberNumber of vacancies (detail).
isDirectApplybooleanWhether 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)

  1. Click Try for free / Start.
  2. Type one or more search terms and pick a country β€” or paste a Bayt search URL.
  3. (Optional) Enable Include full description & salary for richer data.
  4. Set maxItems to how many jobs you want.
  5. Click Save & Start.
  6. 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 international for 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.

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!