Tanqeeb Jobs Scraper: MENA Job Listings by Country avatar

Tanqeeb Jobs Scraper: MENA Job Listings by Country

Pricing

from $5.00 / 1,000 job listings

Go to Apify Store
Tanqeeb Jobs Scraper: MENA Job Listings by Country

Tanqeeb Jobs Scraper: MENA Job Listings by Country

Scrape Tanqeeb job listings for Saudi Arabia, UAE, Egypt and 15 more MENA countries. Get title, company, region, category, salary, original source and posted date. For market research and leads.

Pricing

from $5.00 / 1,000 job listings

Rating

0.0

(0)

Developer

LIAICHI MUSTAPHA

LIAICHI MUSTAPHA

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

12 days ago

Last modified

Share

Collect job listings from Tanqeeb, one of the largest job aggregators in the Middle East and North Africa. Pick a country (Saudi Arabia, UAE, Egypt, Qatar and 14 more) and a time window, and get every listing as a clean record: title, company, region, categories, industry, job type, workplace, salary when published, the board the job was originally posted on, and the posted date.

Tanqeeb shows at most 10,000 results per search. This Actor gets past that limit by splitting large result sets by region and by category, then removing duplicates. A 30-day Saudi Arabia run collected 17,941 of the 17,959 listings Tanqeeb reported (99.9%) in 18 minutes, instead of only the newest 10,000.

Features

  • ✅ 18 countries: Saudi Arabia, UAE, Egypt, Qatar, Lebanon, Jordan, Morocco, Kuwait, Oman, Algeria, Bahrain, Palestine, Iraq, Tunisia, Sudan, Libya, Yemen, Syria.
  • ✅ Full coverage past the 10,000-result cap: automatic splitting by region and category, with de-duplication by job ID.
  • ✅ Posted date on every record, converted from Tanqeeb's "3 hours ago" / "Thursday" / "30 September 2026" labels to YYYY-MM-DD and checked against the exact job timestamps.
  • ✅ Company, region, categories, industry, job type, workplace, salary, experience, education and nationals-only requirements.
  • ✅ Original source per job (Bayt, LinkedIn, Naukri Gulf, Jadarat, company career pages and more), so you can see where the market posts.
  • ✅ Optional job page details: exact posting timestamp, expiry date, city and full description.
  • ✅ Coverage report: the run's STATS record shows Tanqeeb's own total, items saved, coverage % and any slice that could not be fully collected.
  • ✅ No personal data: recruiter names, emails and phone numbers are never collected.
  • ✅ Fast and light: plain HTTP, no browser, no proxy needed.

Use cases

  • Labor market research: hiring volume by region, category and industry in a MENA country.
  • Job board and recruitment analytics: which companies hire most, which boards they post on.
  • Salary and requirements studies: published salary ranges, experience and education requirements, nationals-only rules (Saudization, Emiratization).
  • Lead generation for HR and recruitment services: companies that are actively hiring this week.
  • Dashboards and newsletters: a daily or weekly snapshot with the Last 24 hours window.

Input

FieldTypeDefaultDescription
countryselectsaudiTanqeeb country site to collect.
periodselect30Only jobs posted in the last 1, 3, 7, 14, 30 or 90 days.
maxItemsinteger0Stop after this many jobs. 0 means no limit.
includeDetailsbooleanfalseAlso open each job page for the exact timestamp, expiry date, city and full description. One extra request per job.
maxConcurrencyinteger4Parallel requests (1 to 10).
proxyConfigurationproxynoneOptional. Tanqeeb works without a proxy.

Example:

{
"country": "uae",
"period": "7",
"maxItems": 0,
"includeDetails": false
}

Output

Each job is one dataset item:

{
"jobId": "21305164",
"title": "Head of Legal",
"titleTranslated": "رئيس الشؤون القانونية",
"company": "DHL",
"companyConfidential": false,
"companyProfileUrl": null,
"country": "Saudi",
"state": "Eastern Province",
"district": null,
"location": "Saudi - Eastern Province",
"workplace": "On-site",
"jobType": "Full Time",
"experience": null,
"careerLevel": null,
"education": null,
"categories": ["Other"],
"industry": null,
"salary": null,
"gender": null,
"nationality": null,
"residencyRequirement": null,
"originalSource": "DHL jobs",
"isVerified": false,
"isClosed": false,
"postedDateText": "2 hours ago",
"postedDate": "2026-10-12",
"url": "https://saudi.tanqeeb.com/jobs-in-saudi/all/jobs/021305164.html",
"countrySite": "saudi",
"source": "Tanqeeb",
"scrapedAt": "2026-10-12T16:05:18.165Z"
}

With includeDetails: true, each item also has datePosted, validThrough, employmentType, city, countryCode and description.

The key-value store record STATS summarises the run:

{
"status": "SUCCEEDED",
"country": "saudi",
"periodDays": 30,
"reportedTotal": 17959,
"itemsSaved": 17941,
"coveragePct": 99.9,
"truncatedSlices": []
}

How to use

In Apify Console

  1. Click Try for free on this page.
  2. Pick a Country and a Posted within window (for example Saudi Arabia, last 30 days).
  3. Optionally set Max jobs for a quick sample, or switch on Include job page details.
  4. Click Start. Results appear in the Output tab; download them as JSON, CSV or Excel.
  5. Open the STATS record in the key-value store to see the coverage of the run.

Through the API

curl -X POST "https://api.apify.com/v2/acts/scraper_guru~tanqeeb-jobs-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"country": "uae", "period": "7"}'

Or with the JavaScript client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('scraper_guru/tanqeeb-jobs-scraper').call({ country: 'egypt', period: '30' });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`${items.length} jobs`);

Pricing

Pay per result: $0.005 per job saved to the dataset. A 7-day UAE run (about 5,000 jobs) costs about $25. Use Max jobs to cap the cost of a run.

FAQ

How does it get more than 10,000 results?

Tanqeeb stops paginating after page 500. When a search reports more than 10,000 jobs, the Actor runs one search per region. Because some jobs have no region, it also runs one search per category to catch them, and splits any slice still above 10,000 further (category, then job type). Results are merged and de-duplicated by job ID. The STATS record lists every slice and flags any that stayed above the cap.

Why is coverage sometimes a little under 100%?

A handful of listings have neither a region nor a category, so they are reachable only through the newest 10,000 of the unsplit search. For windows of 30 days or less this usually means 99% or more (99.9% for Saudi Arabia in testing). For 90-day windows in the biggest countries, coverage is lower; STATS.coveragePct tells you exactly.

Is the posted date exact?

postedDate is derived from the card label and is exact to the day. Turn on includeDetails for the exact timestamp (datePosted) and the expiry date (validThrough).

Tanqeeb is an aggregator. Are these all original Tanqeeb jobs?

No. originalSource names the board or site Tanqeeb collected each job from. Count by jobId within one country, and de-duplicate before adding countries together.

Does it collect contact details?

No. Tanqeeb cards can include recruiter names, emails or phone numbers; the Actor ignores those fields on purpose.

Does it respect the site's rules?

Yes. It uses only the URLs that Tanqeeb's robots.txt allows (path pagination and filters, never the ?keywords, ?countries or ?job_id URLs), runs at a modest request rate, and needs no login.