Tanqeeb Jobs Scraper: MENA Job Listings by Country
Pricing
from $5.00 / 1,000 job listings
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
12 days ago
Last modified
Categories
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-DDand 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
STATSrecord 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 hourswindow.
Input
| Field | Type | Default | Description |
|---|---|---|---|
country | select | saudi | Tanqeeb country site to collect. |
period | select | 30 | Only jobs posted in the last 1, 3, 7, 14, 30 or 90 days. |
maxItems | integer | 0 | Stop after this many jobs. 0 means no limit. |
includeDetails | boolean | false | Also open each job page for the exact timestamp, expiry date, city and full description. One extra request per job. |
maxConcurrency | integer | 4 | Parallel requests (1 to 10). |
proxyConfiguration | proxy | none | Optional. 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
- Click Try for free on this page.
- Pick a Country and a Posted within window (for example Saudi Arabia, last 30 days).
- Optionally set Max jobs for a quick sample, or switch on Include job page details.
- Click Start. Results appear in the Output tab; download them as JSON, CSV or Excel.
- Open the
STATSrecord 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.