GulfTalent Jobs Scraper
GulfTalent job listings as data: title, company, city, role, industry, seniority, job type and posting date, for the UAE, Saudi Arabia, Qatar and the Gulf.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
keywords,country,city(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00065 per job = $0.65 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Job returned | One job returned in the dataset. The site's looser matches, jobs outside your filters and repeats are never charged. | $0.00065 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-14, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
keywords | Job titles, one per line, up to 20. Each line is its own search, and a job only comes back when every word of the line is in its title, job role, industry, company or place. Skills that only appear in a job's description are not seen. Leave this empty and use the filters below to get every job that fits them. | array |
country | Only jobs in this country. GulfTalent keeps remote jobs under an entry of their own, so a remote job doesn't come back with a country, even when it names one. | string |
city | Only jobs in this city, the way GulfTalent names it: Dubai, Abu Dhabi, Sharjah, Riyadh, Jeddah, Doha, Kuwait City, Manama, Muscat, Cairo, Amman. Leave it empty for the whole country. | string |
jobRoles | Only jobs GulfTalent files under these roles. A job in any of the roles you pick comes back. | array |
industries | Only jobs from employers in these industries, as GulfTalent files them. A job in any of the industries you pick comes back. | array |
seniority | Only jobs at this level, as GulfTalent files them. | string |
employmentType | Only jobs of this type. | string |
postedWithinDays | Only jobs posted in the last this many days. GulfTalent's search has no date filter, so the actor reads its list newest first and stops at the first older job. How far it reads is set by Most pages per search. Leave it empty for any date. | integer |
companies | Only jobs from these companies, one per line, up to 20. A job comes back when every word of a line is in its company name, so Emirates finds Emirates NBD and Emirates Airline alike. GulfTalent's search can't filter by company, so this is checked on each job, within Most pages per search. | array |
minMonthlySalary | Not available right now. The salary is on each job's own page, which is paused with job details, so this filter is ignored for now. | integer |
salaryCurrency | Goes with the minimum salary, so not available right now either. | string |
easyApplyOnly | Only jobs you apply for on GulfTalent itself, rather than on the employer's own site. | boolean |
exclusiveOnly | Only jobs GulfTalent marks as exclusive to it. It marks very few. | boolean |
maxPagesPerSearch | Posted within, Companies and Minimum monthly salary are checked on each job here, because GulfTalent's search can't do them. With any of them set, one search reads at most this many pages of 200 jobs from GulfTalent's list, and the status message says when a search stopped there. Raise it for a long look back over a whole country. | integer |
maxResults | The most jobs returned in one run, across all your searches. Each job returned is charged. | integer |
includeDetails | Not available right now. Every row carries the search-result fields: title, company, place, job role, industry, seniority, job type, posting date and link. | boolean |
What you get
A structured dataset — each result includes fields like:
titlecompanylocationseniorityemploymentTypesalaryTextpostedAturlcitycountrycategoryindustrysalaryMinsalaryMaxsalaryCurrencysalaryPeriodnationalitygenderarabicFluencyvalidThroughdescriptionExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
GulfTalent Jobs Scraper: Gulf job listings by title, country and city
Search GulfTalent the way its own site lets you, by job title, country, city, role, industry, seniority and job type, and get one row per job. Each row carries the company, the place, the posting date and a link.
Job details are the catch. The description, salary, closing date and the employer's nationality, gender and Arabic asks are not available right now, so those fields come back empty, and the minimum salary filter waits on them too.
| Input | Job titles, up to 20 searches per run, plus GulfTalent's own filters |
| Output | One row per job |
| Ceiling | 20,000 jobs per run |
| Account needed | None |
| Price | $0.65 per 1,000 jobs, flat on every plan |
🔎 What GulfTalent Jobs Scraper does
It runs your searches against GulfTalent's search and keeps a job only when every word you typed is in its title, job role, industry, company name or place. GulfTalent's own search reads the body text too, which is why a made-up phrase still returns hundreds of results there. Those looser matches get dropped here and are never billed.
Word forms count as the same word, so accountant finds Accounting and engineer finds Engineering. Short words like HR and IT, and anything with symbols like C++, match as written.
Every filter on GulfTalent's search form is here: country, city, job role, industry, seniority, job type, Easy Apply, the separate Remote jobs entry and its exclusive listings. Two more are checked job by job, because the site cannot do them: posting date and company name.
📥 What you give it
{
"keywords": ["accountant", "civil engineer"],
"country": "AE",
"city": "Dubai",
"seniority": "4",
"employmentType": "1",
"postedWithinDays": 7,
"maxResults": 200,
"includeDetails": false
}
| Field | Default | What it is |
|---|---|---|
keywords | none, box starts at accountant | Job titles, one per line, up to 20. Each line is its own search. Leave it empty and the filters below decide everything. |
country | ANY | One of AE, SA, QA, KW, BH, OM, EG, JO, LB, IQ, or REMOTE for the site's separate remote listings. |
city | none | Written GulfTalent's way: Dubai, Abu Dhabi, Sharjah, Riyadh, Jeddah, Doha, Kuwait City, Manama, Muscat, Cairo, Amman. |
jobRoles | none | GulfTalent's 32 job roles. A job in any role you pick comes back. |
industries | none | GulfTalent's 39 industries, same idea. |
seniority | ANY | Student, junior, experienced, supervisor or top management. |
employmentType | ANY | Full-time, part-time, internship, contract or temporary. |
postedWithinDays | none | 1 to 365. Read the note under this table. |
companies | none | Company names, one per line, up to 20. Every word of a line has to be in the name, so Emirates finds Emirates NBD and Emirates Airline alike. |
minMonthlySalary | none | Not available right now. The salary is on each job's own page, which is paused with job details. |
salaryCurrency | COUNTRY | Goes with the minimum salary, so not available right now either. |
easyApplyOnly | off | Only jobs you apply for on GulfTalent itself. |
exclusiveOnly | off | Only jobs GulfTalent marks exclusive. It marks very few. |
maxPagesPerSearch | 10 | How far a search reads when a row-checked filter is on. Each page is 200 jobs. |
maxResults | 100 | Jobs returned across every search in the run, up to 20,000. |
includeDetails | off | Not available right now. Every row carries the search-result fields only. |
postedWithinDays and companies are checked job by job. With either set, a search reads at most maxPagesPerSearch pages and says so in the status message when it stops there. On 13 September 2026, covering every UAE job took 3 pages for the last day, 9 for a week and 27 for a month. A narrower search needs far fewer.
📤 What you get back
A real row from a run on 28 September 2026:
{
"jobId": "619261",
"title": "Sales Manager",
"company": "KOTRA",
"companyUrl": "https://www.gulftalent.com/companies/kotra-uae-careers",
"companyLogoUrl": "https://www.gulftalent.com/images1/logos/listing/NE455-5512_logo-img-kotra-uae-careers-jobs.png",
"location": "Dubai, UAE",
"city": "Dubai",
"country": "UAE",
"category": "Sales - Wholesale / Corporate",
"industry": "Manufacturing",
"seniority": "Experienced professional",
"employmentType": "Full-time",
"remote": false,
"easyApply": true,
"postedAt": "2026-08-07T05:00:00.000Z",
"url": "https://www.gulftalent.com/uae/jobs/sales-manager-619261",
"detailsIncluded": false,
"description": null,
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryPeriod": null,
"salaryText": null,
"validThrough": null,
"nationality": null,
"gender": null,
"arabicFluency": null,
"searchKeyword": "sales manager",
"searchCountry": "UAE",
"searchCity": null,
"scrapedAt": "2026-09-28T03:58:00.241Z"
}
| Field | What it is |
|---|---|
jobId | GulfTalent's own id. Stable, so use it as your dedupe key across runs. |
city | null when GulfTalent lists the job for a whole country rather than a city. |
category, industry | GulfTalent's own job role and industry labels, not free text. |
description, salaryMin to salaryText, validThrough, nationality, gender, arabicFluency | null for now. They come from each job's own page, which is paused with job details. |
searchKeyword, searchCountry, searchCity | Which of your searches found this job, so you can join the rows back to your own list. |
detailsIncluded | false on every row for now. |
Every row carries every key. A job found twice, by two searches or twice in one search's pages, comes back once, under the search that reached it first.
🧾 Reading the output
| Row | How to spot it | Charged |
|---|---|---|
| A job | it has a jobId | yes |
| The sample row | _sample: true | no |
No diagnostic rows land in the dataset. The reasons live in the run's status message and in RUN_REPORT in the key-value store, which breaks each search down: how many jobs GulfTalent claimed, how many pages were read, how many came back, how many looser matches and out-of-filter jobs were dropped, and why the search stopped. A real status line reads: "Returned 250 jobs from 2 searches in UAE. Stopped at the 250-job limit. 2,077 looser matches from the site were left out and not charged."
▶️ How to run it
1. Open GulfTalent Jobs Scraper and click Try for free. 2. Type job titles into Search words, one per line, or leave it empty and pick filters instead. 3. Set Country and City, then narrow with Job role, Seniority or Job type. 4. Set Maximum jobs. Start around 20 to see the shape of it, then click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$0.65 per 1,000 jobs. Flat on every Apify plan, no volume tiers.
You pay per job row delivered. Looser matches, jobs outside the filters you picked, jobs older than you asked for, a job a second search found again, and the sample row are all free.
💡 What people use it for
- Watching a role and a city on a schedule, Posted within set to a day, deduping on
jobId. - Counting postings by role, industry and seniority across the Gulf to see where hiring is moving.
- Tracking one company group's openings by feeding Companies the parent name.
🚧 What it does not do
- It matches titles, not descriptions. GulfTalent had 2,107 jobs mentioning "python developer"
and 192 with it in the title. You get the 192.
- No job details for now. Description, salary, closing date and the employer's requirements
come back empty.
- Remote jobs sit outside the countries. A remote job in Dubai will not appear in a UAE search.
Use country: "REMOTE" for those.
- No contact details. No recruiter name, phone or email.
- English only. A search written in Arabic is refused rather than returning nothing quietly.
- A search stops early when matches run thin, after at least two pages. The status message
says so, and names any later searches it skipped so you can run them on their own.
- The site's list shifts while it is read, so a job can appear twice in one pass and another can
slip past. Measured at 11 repeats in a 2,000-job UAE read.
- With no country set, a few jobs from outside the region come back. One in Zambia and one in
India turned up among 100 rows.
- It does not sign in or apply. Nothing behind a GulfTalent account is reachable.
🧭 Which jobs scraper do you need?
| If you want | Use |
|---|---|
| Gulf job listings from GulfTalent | This one |
| Gulf jobs from Naukrigulf instead | Naukrigulf Jobs Scraper |
| India | Naukri Jobs Scraper |
| Germany, Austria and Switzerland | XING Jobs Scraper |
| One employer's own careers page | Career Site Jobs Scraper |
❓ Questions people ask
Do I need a GulfTalent account? No. Nothing to sign up for, no key to manage.
Why did I get fewer jobs than the site's count? That count includes every job mentioning your words anywhere, descriptions included. RUN_REPORT puts the site's number next to what came back.
Why does a job have no city? GulfTalent lists some jobs against a whole country. Those rows keep country and leave city empty.
How do I follow a whole month of a country? Set Posted within to 30 and raise Most pages per search to around 30. Each page holds 200 jobs.
Is scraping job listings legal? These are public listings on a public site. They still carry personal data in places, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID and the input you used. The status message and RUN_REPORT usually name the problem between them.