Middle East Jobs Scraper — 5 Boards, Deduplicated avatar

Middle East Jobs Scraper — 5 Boards, Deduplicated

Pricing

from $2.00 / 1,000 job records

Go to Apify Store
Middle East Jobs Scraper — 5 Boards, Deduplicated

Middle East Jobs Scraper — 5 Boards, Deduplicated

Job postings from Bayt, GulfTalent, NaukriGulf, Wuzzuf and Akhtaboot in one normalized schema: title, company, location, salary, seniority, function. Cross-board duplicates merged. Optional: only jobs posted since your last run.

Pricing

from $2.00 / 1,000 job records

Rating

0.0

(0)

Developer

Al Moutasem Nabil

Al Moutasem Nabil

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Middle East Jobs Scraper — Bayt, GulfTalent, NaukriGulf, Wuzzuf & Akhtaboot (Deduplicated)

Job postings from the top MENA job boards in one normalized schema: title, company, location, salary, seniority, function. Cross-board duplicates merged. Optional: only jobs posted since your last run.

وظائف الخليج والأردن ومصر من خمس منصات في مكان واحد — بيت.كوم، جلف تالنت، نوكري جلف، وظّفني وأخطبوط. نتائج موحّدة، بدون تكرار، مع تصنيف الراتب والمستوى الوظيفي. السعودية، الإمارات، قطر، الكويت، البحرين، عُمان، الأردن، مصر، لبنان.

Who it's for

  • Gulf recruiters and agencies watching what competitors are hiring for, without opening five tabs.
  • HR-tech products that need a clean, normalized job feed instead of five different schemas.
  • Salary-report and market analysts who need comparable pay data across countries and currencies.
  • Job aggregators that want one deduplicated feed rather than five overlapping ones.

What makes it different

Single-board scrapers already exist. The layer on top does not:

  • Five boards, one schema. Every posting comes back with the same fields whichever board it came from.
  • Cross-board deduplication. The same vacancy posted to Bayt, GulfTalent and NaukriGulf returns once, with all three URLs under boards. Matching is on normalized company + title + country
    • city, plus a Jaro-Winkler similarity check that catches "Senior iOS Developer", "Senior iOS Developer (m/f)" and "senior ios developer - urgent" as one job.
  • Arabic-aware. Titles and companies are normalized across alef forms, taa marbuta, yaa and tashkeel, so Arabic postings deduplicate as reliably as English ones. Arabic-Indic digits are read in salaries.
  • Normalized salary. All eight MENA currencies plus USD, monthly vs yearly detected from the text or inferred from magnitude, with the original string always kept in salary.raw.
  • New since last run. Change mode emits only job_added, job_removed and job_updated.

Output

One item per unique vacancy. Every field is documented in .actor/dataset_schema.json; the Console shows Jobs and New jobs views. A merged cross-posting looks like this:

{
"jobKey": "acme|senior-ios-developer|SA|riyadh",
"title": "Senior iOS Developer",
"titleNormalized": "senior ios developer",
"company": "Acme Trading LLC",
"companyNormalized": "acme",
"location": { "raw": "Riyadh - Saudi Arabia", "city": "riyadh", "country": "SA" },
"remote": "onsite",
"function": "engineering",
"seniority": "senior",
"employmentType": "full_time",
"salary": {
"min": 15000,
"max": 20000,
"currency": "SAR",
"period": "month",
"raw": "SAR 15,000 - 20,000 per month"
},
"postedAt": "2026-09-01T00:00:00.000Z",
"boards": [
{
"board": "bayt",
"url": "https://www.bayt.com/en/saudi-arabia/jobs/senior-ios-developer-5123456/",
"postedAt": "2026-09-02T00:00:00.000Z",
"boardJobId": "5123456"
},
{
"board": "gulftalent",
"url": "https://www.gulftalent.com/saudi-arabia/jobs/senior-ios-developer-629150",
"postedAt": null,
"boardJobId": "629150"
},
{
"board": "naukrigulf",
"url": "https://www.naukrigulf.com/senior-ios-developer-jobs-...",
"postedAt": "2026-09-01T00:00:00.000Z",
"boardJobId": "150726500829"
}
],
"language": "en",
"firstSeenAt": "2026-09-01T00:00:00.000Z",
"lastSeenAt": "2026-09-07T00:00:00.000Z",
"scrapedAt": "2026-09-07T00:00:00.000Z"
}

Boards that could not be read appear as error items with board and error, and are never charged.

Pricing

Pay-per-event. You pay for boards actually read and jobs actually returned.

EventPriceWhen
Board checked$0.005Per board fetched successfully. A blocked board is free.
Job record$0.002Snapshot mode, per unique job — a role on three boards is one charge.
Change detected$0.01Change mode, per change event.
  • Weekly pull of all iOS jobs in SA + AE, ~300 unique jobs across 5 boards: 5 × $0.005 + 300 × $0.002 = $0.625 per run.
  • Daily new-jobs feed, 5 boards, quiet day: $0.025. With 12 new jobs: $0.145.

Apify's apify-actor-start fee and platform compute are billed separately. Default memory 512 MB.

Scheduling, integrations and API

  1. Fill in the input, Save as task, then add a Schedule — daily at 07:00 is typical.
  2. Turn on Emit changes only with a Tracking ID so each run returns only what is new.
  3. Under Integrations, push results to Slack, Google Sheets, a webhook, Make or Zapier on Run succeeded. In change mode an empty dataset means nothing changed.
  4. Standby mode answers synchronously, which is what an AI agent wants: GET https://<your-actor>.apify.actor/?keywords=ios%20developer&countries=SA,AE&postedWithinDays=7

State lives in the named key-value store mena-jobs-state, one record per tracking ID; delete it to reset a watch list.

Per-board notes and limitations

  • NaukriGulf — uses the site's own JSON search API. The most reliable of the five, and the only one that reliably carries a posting date. Its search payload carries no salary.
  • GulfTalent — server-rendered country listings. Keyword filtering happens locally, so a narrow keyword search fetches more rows than it returns.
  • Akhtaboot — read from the per-country RSS feeds the site publishes. No salary or city, and no keyword parameter, so keywords are filtered locally.
  • Bayt and Wuzzuf — both sit behind Cloudflare and refuse a share of datacenter traffic with HTTP 403. The run still succeeds for the other boards and reports these as error items; switch proxyConfiguration to residential proxies to get them. Wuzzuf is Egypt-only and is skipped unless EG is among your countries.
  • Salary coverage is board-dependent. Most MENA postings publish no salary at all; salary is null rather than guessed.
  • Change detection is relative to your filters. Changing keywords, countries or boards between runs will look like added and removed jobs.

Watching specific employers rather than whole boards? ../hiring-signals-monitor tracks named companies' own career pages through their ATS and reports new roles, removed roles and hiring surges.

The Actor reads publicly listed job postings — the same pages any visitor sees — and Akhtaboot's own published RSS feeds. It never logs in and sends no cookies. It collects business data only: company names, titles, locations and salaries. It never collects recruiter names, emails or phone numbers, and drops such fields where a board's payload includes them. Requests are paced and concurrency is capped per board. Use the data in line with each board's terms and the laws that apply to you. Bayt, GulfTalent, NaukriGulf, Wuzzuf and Akhtaboot are trademarks of their owners; this Actor is not affiliated with them.