
ReKrute Job Scraper
scrape.ly/store/openrole/rekrute-scraperJobsLead generation
2 monthly users

Scrape GulfTalent.com jobs in the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. Search by keyword, country and city or paste URLs. Get title, company, monthly salary, seniority, nationality, full description and apply link.
Scrape job listings from GulfTalent.com, the Gulf's specialist job board, in the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman (plus Egypt, Jordan, Iraq and Lebanon). Search by keyword, country and city, or paste GulfTalent URLs, and get clean rows with title, company, monthly salary (also in USD), seniority, required nationality, gender and Arabic fluency, the full description and requirements, and the apply link. No login, no browser.
| Field | What it does |
|---|---|
query | Job keywords, e.g. developer, accountant. |
country | AE, SA, QA, KW, BH, OM, EG, JO, IQ, LB or all. |
location | Optional city, e.g. Dubai, Riyadh, Doha. |
startUrls | GulfTalent search pages, e.g. /uae/jobs/title/accountant, /uae/jobs/city/abu-dhabi, /qatar/jobs. Job URLs are fetched directly. |
jobUrls | Job pages or numeric job IDs. |
maxResults | Jobs to save across all searches (0 = all). |
postedWithinDays, seniority, easyApplyOnly, sortBy | Filters. |
includeDetails | Load each job for salary, description, requirements and candidate details (default on). |
{
"query": "accountant",
"country": "SA",
"location": "Riyadh",
"seniority": ["experienced", "manager"],
"postedWithinDays": 30,
"maxResults": 100
}
One row per job.
| Field | Description |
|---|---|
jobId, reference, url | GulfTalent job ID, the employer's reference and the job page. |
title, standardTitle, jobFunction, jobCategory, seniority | What the job is. |
company, companyId, companyUrl, companyLogo, companyAbout, industry, companyConfidential | The employer. |
location, city, country, countryCode, officeAddress, isRemote | Where the job is. |
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText, salaryUsdMin, salaryUsdMax, salaryDisclosed | Monthly salary band. salaryDisclosed is false when the employer hides it on the job page. |
employmentType, nationality, gender, arabicFluency, additionalBenefits | Candidate requirements and benefits. |
description, descriptionHtml, requirements, keywords | Full text. |
extractedEmails, extractedPhones | Contacts found in the description. |
postedAt, easyApply, applyUrl, isExclusive, status | Dates and how to apply. |
Example (trimmed, from a test run):
[
{
"jobId": "647107",
"reference": "QP275-9328",
"title": "Chef De Partie",
"url": "https://www.gulftalent.com/uae/jobs/chef-de-partie-647107",
"company": "RTC-1 Employment Services",
"companyId": 7330,
"companyConfidential": false,
"companyUrl": "https://www.gulftalent.com/companies/rtc-1-employment-services-careers",
"companyLogo": "https://www.gulftalent.com/images1/logos/QE275-7330_logo-img-rtc-1-employment-services-careers-jobs.jpg",
"companyAbout": "RTC-1 Employment Services is a licensed recruitment firm based in Dubai, UAE. Our team has been in the market ...",
"industry": "FMCG / Consumer Goods / Food & Beverages",
"jobFunction": "Catering, Food Services & Restaurants",
"jobCategory": "Catering",
"standardTitle": "Chef",
"seniority": "Student / Fresh graduate",
"location": "Dubai, UAE",
"city": "Dubai",
"country": "UAE",
"countryCode": "AE",
"officeAddress": "Cluster V, Jumeirah Lake Towers - Dubai, Dubai",
"isRemote": false,
"employmentType": "Full Time",
"salaryMin": 3800,
"salaryMax": 4000,
"salaryCurrency": "AED",
"salaryPeriod": "MONTH",
"salaryText": "3800 - 4000 AED",
"salaryDisclosed": true,
"salaryUsdMin": 1035,
"salaryUsdMax": 1089,
"additionalBenefits": null,
"nationality": "Philippines",
"gender": null,
"arabicFluency": null,
"description": "Position Title: Chef De Partie – QSR (2)\nEmployment Type: Full Time\nSalary: up to 4,000 AED inclusive depending on experience and qualifications\nBenefits: as pe...",
"descriptionHtml": "<p>Position Title: Chef De Partie – QSR (2)<br>Employment Type: Full Time<br>Salary: up to 4,000 AED inclusive depending...",
"requirements": "Qualifications:\n- Open to Tagalog speaker aged 40 years or below\n- Minimum High school graduate with at least 2 years of...",
"keywords": [],
"extractedEmails": [],
"extractedPhones": [],
"postedAt": "2026-10-15T05:00:00Z",
"easyApply": true,
"applyUrl": "https://www.gulftalent.com/uae/jobs/chef-de-partie-647107",
"isExclusive": false,
"isScraped": false,
"status": "LIVE",
"detailFetched": true,
"searchQuery": null,
"scrapedAt": "2026-10-15T22:11:26.262Z"
}
]
You pay $0.60 per 1,000 jobs saved ($0.0006 per job), plus a small amount of platform usage (compute and datacenter proxy traffic, a few cents per 1,000 jobs). Example: 1,000 jobs with full details ≈ $0.65 in total. The run stops cleanly at your maximum charge.
Is it legal to scrape GulfTalent? The actor collects only publicly visible job postings. Check GulfTalent's terms and your local rules for how you use the data.
Do I need a login or my own proxy? No. The default datacenter proxy spreads requests over several IP addresses so GulfTalent does not rate-limit the run.
How many results can I get? As many as GulfTalent lists for your search. All countries together hold tens of thousands of open jobs.
Why is the salary there when the job page says "Not Specified"?
Employers enter a salary band even when they hide it from the page. salaryDisclosed tells you which ones are shown publicly.
Can I scrape several countries in one run? Yes. Choose All countries, or paste one search URL per country; the limit is shared fairly between searches.
Can I schedule it or use the API? Yes. Schedule runs in the console or start them through the API.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
querystringOptionalSearch term
Job keywords, e.g. developer, accountant, sales manager. Leave empty to list every job in the country.
countryenumOptionaldefault "AE"Country
Which market to search. Search URLs below keep their own country.
locationstringOptionalCity
Optional city, e.g. Dubai, Abu Dhabi, Riyadh, Jeddah, Doha. Leave empty for the whole country.
startUrlsarrayOptionalSearch URLs
GulfTalent search pages copied from your browser, e.g. https://www.gulftalent.com/uae/jobs/title/accountant, https://www.gulftalent.com/uae/jobs/city/abu-dhabi or https://www.gulftalent.com/qatar/jobs. Job URLs pasted here are fetched directly.
jobUrlsarrayOptionalJob URLs
Single GulfTalent job pages (…/uae/jobs/restaurant-manager-585691) or numeric job IDs.
maxResultsintegerOptionaldefault 20Max results
Maximum number of jobs to save across all searches. 0 means all.
postedWithinDaysintegerOptionalPosted within (days)
Only jobs posted in the last N days, e.g. 1, 7 or 30. Leave empty for any age.
seniorityarrayOptionalSeniority
Only jobs at these career levels. Leave empty for all.
easyApplyOnlybooleanOptionaldefault falseEasy Apply only
Only jobs you can apply to directly on GulfTalent.
sortByenumOptionaldefault "date"Sort by
Date returns the newest jobs first. Relevance ranks keyword matches first.
includeDetailsbooleanOptionaldefault trueInclude full job details
Load each job for the salary, full description, requirements, nationality, gender, Arabic fluency, benefits and company profile. Turn off for faster rows with search-card fields only.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxies spread requests over several IP addresses so GulfTalent does not rate-limit the run.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| title | any | Title |
| company | any | Company |
| location | any | Location |
| seniority | any | Seniority |
| salaryText | any | Salary (monthly) |
| salaryUsdMax | any | Max (USD) |
| employmentType | any | Type |
| jobFunction | any | Function |
| postedAt | any | Posted |
| url | any | URL |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Job | One saved job listing. | $0.0006 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('openrole/gulftalent-scraper').call({
"query": "developer",
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run openrole/gulftalent-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=openrole/gulftalent-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Experienced roles posted in the last 30 days, with details.
Newest GulfTalent jobs for a keyword.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.