GulfTalent Scraper · Middle East Job Listings & Salaries avatar

GulfTalent Scraper · Middle East Job Listings & Salaries

Pricing

from $2.00 / 1,000 job results

Go to Apify Store
GulfTalent Scraper · Middle East Job Listings & Salaries

GulfTalent Scraper · Middle East Job Listings & Salaries

Scrape GulfTalent.com job listings — the Middle East's leading professional job site. Each job returns title, company, location, salary, industry, role, employment type and full description as clean JSON/CSV. One row per job. UAE, Saudi, Qatar & more. No browser

Pricing

from $2.00 / 1,000 job results

Rating

5.0

(1)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

30

Total users

11

Monthly active users

2 hours ago

Last modified

Categories

Share

GulfTalent Scraper

Search and scrape job listings from GulfTalent.com — the Middle East's leading professional job site. Search by keyword, category, country or city (or paste any listing URL) and get clean, structured rows: job title, company, location, structured salary with USD conversion, industry, role, employment type, posted/expiry dates, the full description, plus any emails and phone numbers found in the ad. One complete row per job. No browser.

How it works

Why use this scraper

  • Search built in — keyword(s), category, country and city inputs; no URL hunting. Unknown keywords automatically fall back to a filtered browse, so every query returns what exists.
  • Complete rows, not stubs — every job's detail page is fetched and merged in, so each row already has company, location, salary, industry, role, employment type and the full description.
  • Structured salary + USD16000 - 20500 AED becomes salaryMin/salaryMax/salaryCurrency/salaryPeriod plus monthly-USD equivalents (Gulf currencies are USD-pegged, so the conversion is exact).
  • Contacts for freeextractedEmails[] and extractedPhones[] pulled from every description; optional enrichEmails adds verified employer contact emails on top.
  • Incremental (diff) runs — schedule it and later runs emit only NEW/UPDATED jobs; already-seen jobs are skipped before their detail page is even fetched, so you only pay for the diff.
  • Notifications — Telegram, Slack, Discord or any webhook, out of the box. Pair with incremental mode for daily new-job alerts.
  • Result filters — must/exclude keywords, posted-date window, max age, minimum monthly USD salary, Easy-Apply only. Filtered-out jobs are never billed.
  • All Gulf markets — UAE, Saudi Arabia, Qatar, Kuwait, Bahrain, Oman — one country or all six in one run.
  • Pure HTTP, no browser — fast and cheap; no Playwright, no headless Chrome.

What it does

Give it a search (keyword / category / country / city) and/or GulfTalent listing URLs. It resolves the search to GulfTalent's own listing pages, paginates through the results, fetches each job's detail page, applies your filters, and emits one complete dataset row per job — up to Maximum items matching jobs (the cap counts kept rows, not scanned ones).

Supported inputs

InputExample
Keyword searchquery: "accountant" — or "accountant, auditor" for multiple
Category browsecategory: "sales" (18 categories in the dropdown)
Countrycountry: "uae" — or all for every Gulf market
Citylocation: "Dubai"
Listing URLsgulftalent.com/uae/jobs, /jobs/category/sales, any on-site search URL

Use cases

  • Job alerts & monitoring — incremental mode + Telegram/Slack/Discord webhook on a schedule = "new Gulf jobs in my niche, every morning".
  • Gulf labour-market & salary research — structured USD salaries across countries, industries and roles.
  • Lead generation — company names, emails/phones from ads, plus (with enrichEmails) verified employer contact emails.
  • Recruitment & sourcing — track who's hiring, for what role, at what salary.
  • Aggregation & job boards — pull fresh Middle East postings into your own product.

How it works

  1. You enter a keyword/category/country/city (or paste listing URLs).
  2. The actor resolves them to GulfTalent listing pages (probing and falling back automatically), paginates, and collects each job's detail URL.
  3. It fetches every job's detail page, normalises it into one flat row (structured salary, ISO dates, extracted contacts), applies your filters and incremental diff, and pushes it to the dataset.
  4. If configured, it posts a digest to your Telegram/Slack/Discord/webhook.

Input configuration

FieldTypeDescription
querystringKeyword(s) — comma-separated or JSON array for multiple searches.
categorystringCategory slug (dropdown). Ignored when query is set.
countrystringall (default), uae, saudi-arabia, qatar, kuwait, bahrain, oman.
locationstringCity name(s) — comma-separated or JSON array.
startUrlsarrayGulfTalent listing URLs (auto-paginated), combined with the search fields.
includeKeywords / excludeKeywordsarrayKeep/drop jobs by title+description keywords.
fromDate / toDatestringPosted-date window (YYYY-MM-DD).
maxAgeDaysintegerOnly jobs posted in the last N days (0 = off).
minSalaryUsdintegerMinimum disclosed monthly salary in USD (0 = off).
easyApplyOnlybooleanOnly Easy-Apply jobs.
incrementalModebooleanDiff against previous runs — emit only NEW/UPDATED.
stateKeystringOptional name for the tracked search (auto-derived otherwise).
detectUpdates / emitUnchanged / emitExpiredbooleanIncremental extras: re-check known jobs, emit UNCHANGED rows, emit EXPIRED records.
telegramToken + telegramChatIdstringTelegram digest after each run.
slackWebhookUrl / discordWebhookUrl / webhookUrlstringSlack/Discord digest, or a JSON POST ({metadata, items}) to any endpoint.
notificationLimit / notifyOnlyNewint/boolJobs per message (1–20); notify only NEW/UPDATED when incremental.
compactbooleanCore fields only — lean payloads for AI agents/MCP.
descriptionMaxLengthintegerTruncate descriptions (0 = full).
flattenbooleanFlatten nested objects into CSV columns (default on).
enrichEmailsbooleanOpt-in employer contact-email enrichment (billed per email found).
maxItemsintegerCap on kept jobs (default 1000) — the primary cost control.
maxPagesintegerSafety bound on listing pages per source (0 = auto).
maxConcurrencyintegerParallel detail fetches. Default 8.
proxyobjectOptional override — the actor ships with its own built-in proxy.

Output sample

{
"portal": "gulftalent",
"jobId": "601722",
"url": "https://www.gulftalent.com/uae/jobs/field-services-engineer-601722",
"country": "uae",
"jobTitle": "Field Services Engineer",
"company": "Advanced Digital Gaming Technology (ADGT)",
"location": "Abu Dhabi, UAE",
"salary": "16000 - 20500 AED",
"salaryMin": 16000,
"salaryMax": 20500,
"salaryCurrency": "AED",
"salaryPeriod": "month",
"salaryMinUsd": 4357,
"salaryMaxUsd": 5582,
"companyIndustry": "IT, Software & Internet Services",
"jobRole": "IT - Software & Web Development",
"employmentType": "Full Time",
"postedDate": "2026-06-25T00:00:00+00:00",
"postedDateIso": "2026-06-25",
"validThrough": "2026-09-23T00:00:00+00:00",
"easyApply": true,
"extractedEmails": ["careers@adgt.ae"],
"extractedPhones": ["+971 4 123 4567"],
"description": "…full job description…"
}

Key output fields

FieldDescription
jobId / url / countryGulfTalent job id, detail URL, country
jobTitlejob title
company / companyLogoUrlemployer + logo
locationcity, country
salarysalary text as shown (when disclosed)
salaryMin / salaryMax / salaryCurrency / salaryPeriodstructured salary parsed from the text
salaryMinUsd / salaryMaxUsdmonthly USD equivalents (exact — Gulf pegs)
companyIndustry / companyTypeindustry + company type
jobRole / employmentType / careerLevelrole/function, full-time/contract, seniority
yearsOfExperience / numberOfVacanciesexperience + openings (when shown)
postedDate / postedDateIso / validThroughposted + expiry dates (from the page's JobPosting metadata)
easyApplyquick-apply available
extractedEmails / extractedPhonescontacts found in the ad text
incrementalStatusNEW / UPDATED / UNCHANGED / EXPIRED (incremental mode)
descriptionfull job description
detailsany extra labelled fields (nationality, gender, etc.)

FAQ

How do I search by keyword? Set query (e.g. "finance manager"). The actor uses GulfTalent's own title pages; if a keyword has no dedicated page it automatically browse-scans the selected market and keeps only matching jobs.

Do I get the salary? Yes, when the employer publishes it — both the original text and the structured salaryMin/Max/Currency/Period plus exact monthly-USD equivalents. minSalaryUsd filters on it.

How do the diff runs work? Turn on incrementalMode and run on a schedule. Already-seen jobs are skipped before their detail page is fetched, so later runs only pay for genuinely new jobs (incrementalStatus: "NEW"). detectUpdates re-checks known jobs for edits; emitExpired reports jobs that disappeared.

Can it message me the results? Yes — set a Telegram bot token + chat id, a Slack/Discord webhook, or a generic webhook URL. With notifyOnlyNew (default) and incremental mode, you get pinged only about new jobs.

Is the full description included? Yes — every row includes the complete job description from the detail page. Use descriptionMaxLength to trim it, or compact for core fields only.

Do I need a proxy? No — the actor ships with a built-in proxy. The proxy field is only an override.

Support

Found an issue or want a field added? Open an issue on the actor's Issues tab and we'll take a look.

Additional services

Need verified employer contact emails? Turn on enrichEmails to append a best-effort contact email + website per company (billed only when an email is found) — on top of the free extractedEmails from ad text.

Explore more scrapers

Check the publisher's profile for more job-board and directory scrapers (LinkedIn Jobs, Naukri, SEEK, Jobstreet, Bayt-style boards and more).

🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/gulftalent-scraper).

Purpose: Searches and scrapes GulfTalent.com job listings (keyword/category/country/city or listing URLs), fetching each detail page so every row is complete — with structured USD salaries, ISO dates, extracted contacts, incremental diff runs and webhook notifications.

Minimal input:

{
"query": "accountant",
"country": "uae",
"maxItems": 25,
"compact": true
}

Output: one row per job — portal, jobId, url, country, jobTitle, company, location, salary, salaryMin/Max/Currency/Period, salaryMinUsd/MaxUsd, companyIndustry, jobRole, employmentType, postedDate(Iso), validThrough, easyApply, extractedEmails, extractedPhones, description, details. compact: true returns core fields only (ideal for LLM context). With enrichEmails on, adds contactEmail and contactWebsite.

Behaviors an agent should know:

  • query accepts a string, comma-separated list, or JSON array; unknown keywords fall back to a filtered browse automatically (no error).
  • maxItems caps KEPT rows (default 1000) — always set a small value for test runs; filters (includeKeywords, minSalaryUsd, maxAgeDays, …) drop rows before they are stored or billed.
  • incrementalMode: true + a stable stateKey makes repeat calls return only new jobs — the cheapest way to poll.
  • compact: true and descriptionMaxLength control payload size for LLM contexts.
  • No anti-bot on GulfTalent; the actor ships with a built-in proxy, so the proxy override is optional.
  • Billing: pay-per-event — see the Pricing tab on the actor page; enrichEmails is billed per email found and never charged for misses.

⚠️ Disclaimer

This actor collects only publicly available job-listing data for legitimate research, lead-generation and recruitment use. Respect GulfTalent's terms of service and applicable laws (including data-protection rules) in your jurisdiction. You are responsible for how you use the scraped data.

SEO Keywords

gulftalent scraper, gulftalent.com scraper, gulftalent api, gulftalent job search api, middle east job scraper, gulf jobs data, uae jobs scraper, saudi arabia jobs scraper, qatar jobs scraper, kuwait jobs scraper, dubai jobs data, abu dhabi jobs, gulf salary data usd, recruitment data middle east, job board scraper, job alerts telegram, incremental job scraper, employer leads gulf, gulftalent export