Bayt Job Listings Extractor avatar

Bayt Job Listings Extractor

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Bayt Job Listings Extractor

Bayt Job Listings Extractor

Bayt job listings scraper that pulls job titles, companies, salaries, and locations from any Bayt.com search URL, pages through results automatically, so you get MENA job market data as clean JSON without manual browsing.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Pulls job listings from Bayt.com, a major job portal for the Middle East and North Africa. Give it one or more Bayt.com search URLs and it scrapes job titles, company names, city and country locations, salary ranges, career levels, experience requirements, job summaries, and posting dates. The output is structured JSON. Pagination is handled automatically.

Bayt.com covers job markets across the UAE, Saudi Arabia, Qatar, Kuwait, Egypt, Lebanon, Jordan, and other MENA countries. This actor works on any Bayt.com search results URL, including country pages, keyword searches, city-filtered results, and searches with any filters applied.

What it collects

Every job listing card on Bayt.com exposes the following data. Fields marked optional appear on some listings and are null when not present.

FieldAlways presentDescription
jobIdYesUnique numeric ID for the listing on Bayt.com
jobTitleYesJob title as shown on the card
jobUrlYesFull URL of the job listing page
companyNameYesName of the hiring company
companyUrlYesURL of the company profile on Bayt.com
companyLogoUrlYesURL of the company logo image
cityYesCity where the role is based
countryYesCountry where the role is based
jobSummaryYesAI-generated summary shown on the search card
careerLevelYesSeniority label (Entry level, Mid career, Senior executive, etc.)
yearsOfExperienceOptionalExperience range parsed from the career label (e.g. 5-7 Years of Experience)
salaryOptionalSalary range if the employer chose to display it
workTypeOptionalHybrid or Remote if specified
citizenshipReqOptionalNationality restriction if specified (e.g. Saudi nationals)
postedTimestampYesUnix timestamp (seconds) of the posting date
postedDateYesISO 8601 UTC datetime string of the posting date
postedDateTextYesRelative date as shown on the page (e.g. 4 days ago)
isEasyApplyYestrue if the listing has a one-click apply button
isExternalYestrue if the listing links to an external site
scrapedAtYesISO 8601 UTC timestamp of when this record was extracted

Input

FieldTypeDefaultDescription
startUrlsArrayโ€”One or more Bayt.com job search URLs to scrape
maxItemsInteger25Max job listings to extract per URL
requestTimeoutSecsInteger30Per-request timeout in seconds
{
"startUrls": ["https://www.bayt.com/en/uae/jobs/data-analyst-jobs/"],
"maxItems": 75
}

Example: multiple countries, same role

{
"startUrls": [
"https://www.bayt.com/en/uae/jobs/software-engineer-jobs/",
"https://www.bayt.com/en/saudi-arabia/jobs/software-engineer-jobs/",
"https://www.bayt.com/en/qatar/jobs/software-engineer-jobs/"
],
"maxItems": 50
}

Example: broad country-level collection

{
"startUrls": [
"https://www.bayt.com/en/uae/jobs/",
"https://www.bayt.com/en/saudi-arabia/jobs/",
"https://www.bayt.com/en/egypt/jobs/"
],
"maxItems": 100
}

Output

Each job is saved as one JSON record in the Apify dataset. Results are available as JSON, CSV, or Excel from the Storage tab after the run finishes.

Example record

{
"jobId": "5461128",
"jobTitle": "Unreal Engine Gameplay Programmer",
"jobUrl": "https://www.bayt.com/en/qatar/jobs/unreal-engine-gameplay-programmer-5461128/",
"companyName": "Dunetech Studios",
"companyUrl": "https://www.bayt.com/en/company/dunetech-studios-2304796/",
"companyLogoUrl": "https://secure.b8cdn.com/58x58/images/logo/96/2304796_logo_n.png",
"city": "Doha",
"country": "Qatar",
"jobSummary": "A unique opportunity for an Unreal Engine Gameplay Programmer at a small independent studio focused on creating exceptional interactive experiences.",
"careerLevel": "Entry level",
"yearsOfExperience": null,
"salary": null,
"workType": null,
"citizenshipReq": null,
"postedTimestamp": 1781095408,
"postedDate": "2025-04-07T10:43:28+00:00",
"postedDateText": "21 hours ago",
"isEasyApply": true,
"isExternal": true,
"scrapedAt": "2025-04-08T08:12:34.123456+00:00"
}

Common uses

  • Salary research: collect salary ranges for a specific role across different MENA countries and compare compensation by location
  • Hiring trend tracking: run the actor weekly on industry-specific search URLs to see which companies are growing and how fast
  • Competitor monitoring: watch job postings from specific companies to understand their expansion and skill priorities
  • Job dataset creation: build training or benchmark datasets for HR analytics, NLP models, or job recommendation systems
  • Recruitment pipeline: feed fresh listings into a downstream workflow to automatically match candidates

How to run

  1. Open the Input tab
  2. Paste one or more Bayt.com job search URLs into the Start URLs field
  3. Set Max Items per URL to control how much data to collect
  4. Click Start
  5. Download results from the Storage tab when the run finishes

URL formats that work

The actor accepts any standard Bayt.com search results URL:

  • Country page: https://www.bayt.com/en/uae/jobs/
  • Keyword search: https://www.bayt.com/en/international/jobs/software-engineer-jobs/
  • City search: https://www.bayt.com/en/uae/jobs/software-engineer-jobs-in-dubai/
  • Any search URL with filters copied directly from the Bayt.com results page

Pagination

Each URL is scraped page by page. The actor reads the next link in the page to find the next results page and continues until the per-URL item limit is reached or there are no more pages.

Optional fields

salary, workType, citizenshipReq, and yearsOfExperience appear on some listings and not others. Bayt.com employers choose whether to display salary. Work type and citizenship requirements are only listed when the employer fills them in. When not present, these fields are null in the output.

Rate and volume

Bayt.com shows roughly 20 to 30 job cards per page. At the default setting of 25 items per URL, the actor usually finishes in one or two pages. Increase maxItems to collect more per URL. Large runs over many URLs work well on the Apify platform.