Bayt Jobs Scraper | Middle East UAE Jobs Companies avatar

Bayt Jobs Scraper | Middle East UAE Jobs Companies

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Bayt Jobs Scraper | Middle East UAE Jobs Companies

Bayt Jobs Scraper | Middle East UAE Jobs Companies

Scrape Bayt.com jobs and company profiles across UAE, Saudi Arabia & MENA. Extract titles, salaries, locations, JobPosting fields & URLs — Bayt API alternative.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Bayt Scraper (Apify)

Thin Apify Actor that calls the bayt-com Cloud Run worker over HTTPS + API key.

Does not scrape inside Apify CU — no Chrome/patchright in this image.

Worker URL is config, not code: the Actor reads WORKER_BASE_URL from Actor environment variables (plus optional per-run workerBaseUrl). If you migrate the worker to a new host, update WORKER_BASE_URL (and WORKER_AUTH if the API key changes) in Apify Console — no Actor code change required. Set WORKER_PROVIDES_PROXY=1 when the worker supplies its own PROXY_URL.

Architecture

This Actor --HTTPS + WORKER_AUTH--> bayt-com Cloud Run (me-west1) --> bayt.com

Worker URL (default / env):

https://bayt-com-l7fhldkljq-zf.a.run.app

Channels

  • jobs — SERP (/en/{geo}/jobs/{keyword}-jobs/), optional enrichDetails
  • company — company profile via companyId / companyUrl
  • Detail mode — detailUrls / jobIds/v1/listings

Free Apify plan limits (set by this Actor's developer)

LimitFree Apify planPaid Apify plan
Runs of this Actor10 runs totalUnlimited
Results per run (maxResults)Up to 200Up to 200

These caps are enforced by the Actor developer (not Apify platform errors). When you hit the 10-run limit, the run finishes gracefully with a clear status message asking you to upgrade. Paying Apify users are not subject to the run cap.

Env

VariablePurpose
WORKER_BASE_URLHTTPS worker root (production source of truth)
WORKER_AUTHMust match Cloud Run WORKER_API_KEY (secret @baytWorkerApiKey)
WORKER_PROVIDES_PROXY1 = skip forwarding proxyUrl; worker uses PROXY_URL

Lead / contact fields

Every output item carries the full lead key set from lead-output.md. Values below are what Bayt guest surfaces actually yield (verified against the 2026-09-03 recon report and the cloud smoke dataset); missing subfields are explained per item in leadAbsences, never silently dropped.

FieldTypeMeaning on Bayt
phones[{value, type, e164?}]Always [] on guest surfaces. Bayt job pages (JobPosting) carry no telephone/ContactPoint key; contact runs through the Apply register wall (/en/register-j/), which the scraper never submits. Recorded as leadAbsences.phones=本站无.
emails[{value, type}]Always [] on guest surfaces. JobPosting has no email key and platform emails are unknown (never guessed). Recorded as leadAbsences.emails=本站无.
address{street, unit, locality, region, postalCode, country, full}City-level only on detail rows (e.g. locality=Jeddah, region=Jeddah, country=SA, full="Jeddah, Jeddah" from JSON-LD jobLocation). street/unit (门牌)/postalCode are 本站无 everywhere; SERP search rows carry no address at all (address all null, leadAbsences.address=本站无). Company rows carry the profile location line in full (e.g. Dubai, United Arab Emirates), still without street/unit/postal.
geo{lat, lng}Always null on SERP/LDP/company surfaces (Bayt exposes no coordinates). Recorded as leadAbsences.geo=本站无. A supplement, never a substitute for address.
person{name, role?}Always null on guest surfaces. No recruiter/hiring-contact key exists on LDP or company pages. Recorded as leadAbsences.person=未验证 (not 本站无, per the mission ruling: unmeasured, not proven absent).
org{name, id?}The verified employer identity. Job rows: {name=<company>} from hiringOrganization.name. Company rows (companyId, e.g. 2301604): {name, id=<companyId>} plus size/follower context in the item body. This is the richest lead surface on Bayt (special note: company pages).
web{website, socials[]}Job rows: website = company profile backlink from JSON-LD sameAs (e.g. /en/company/<slug>-<id>/), socials=[]. Company rows: same backlink shape. No social keys exist on the pages, so socials is leadAbsences.socials=未验证, not 本站无.
leadSourceenumsearch (SERP card) | detail (job LDP via detailUrls/jobIds or enrichDetails) | entity (company profile via companyId/companyUrl). contact/reveal-xhr never occur on Bayt.
leadRevealenumvisible whenever employer identity is present (no click needed) | absent where no reveal control exists. click/xhr/gated/image never occur because Bayt guest surfaces expose zero reveal controls (revealControls=[]).
leadAbsencesobject/mapPer-subfield reason using the fixed vocabulary 本站无 / 闸门锁 / 未验证, matching the recon report. Present on every row; null lead values always pair with a reason here.

Reveal cost

There is no click-reveal cost on Bayt: guest surfaces have no "show phone/email" controls and no reveal XHR (revealControls=[]; the only observed "Click to reveal" belongs to the Cloudflare IP-block shell and exposes only the visitor IP, never business data). Lead enrichment therefore costs only the normal surface fetches: SERP page → optional job LDP fetch (enrichDetails, JSON-LD JobPosting) → optional company profile fetch (channel=company). No extra clicks, no per-lead requests beyond the page itself. Run-time impact comes from the egress path (Geonode Extract hot path through the Cloudflare IP-block, residential), not from reveal mechanics.

Honest limitations

Consistent with the recon report and leadAbsences:

  • 本站无 (not on this site): phones, emails, geo on all guest surfaces; address.street/unit(门牌)/postalCode everywhere; any address on SERP search rows.
  • 闸门锁 (gated): direct recruiter contact sits behind the Apply registration wall (register-j); the scraper never registers, logs in, or submits forms, so this stays locked by design.
  • 未验证 (unmeasured, not claimed): person (no recruiter key found, but not proven site-wide absent), web.socials / Contact-About surfaces (/about, /contact, help-center were never opened this round; worker has no mapping), /ar/ locale, and the qatar/egypt markets. These are never marked 本站无. Outputs from those inputs would carry leadAbsences=未验证.

More Actors like this

Looking for another jobs / freelance scraper, or a specialized Actor outside Bayt? Use a dedicated Actor when one exists — structured fields, better coverage, usually lower cost. Use this Actor for Bayt.com Middle East job search and company profiles.

Similar jobs & freelance Actors

Prefer another specialized scraper?

E-commerce

Real Estate

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to use (no code required)

  1. Open Bayt Jobs Scraper and click Try for free
  2. Set channel to jobs (or company for employer profiles)
  3. Enter a keyword (e.g. software engineer) and optional location / geo (e.g. uae, saudi-arabia)
  4. Optionally enable enrichDetails for JobPosting fields from listing detail pages (Store Test default is off)
  5. Set maxResults (Store Test default is 1; start with 520 for real pulls) and click Start
  6. Download results from the Dataset tab (JSON, CSV, Excel, …)

Local

python3.11 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
export WORKER_BASE_URL='https://bayt-com-l7fhldkljq-zf.a.run.app'
export WORKER_AUTH='…'
apify run --purge

FAQ

Q: Why did my free-plan run stop with a free-tier message?
A: Free Apify plan users get 10 runs of this Actor and up to 200 results per run. These limits are set by the Actor developer (not Apify). Upgrade to a paid Apify plan for unlimited runs.

Notes

  • Proxy: worker uses durable PROXY_URL; Apify actor-run proxy passwords are not forwarded.
  • Standby Live View: usesStandbyMode + python -m src.

All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss