GulfTalent Job Listings Across 16 Middle East Markets
Search GulfTalent by keyword, category, industry, job type or nationality preference, or browse one employer's careers page, and get salary, description and preference details.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect: job search, one employer, pasted URLs, or salary benchmarks. |
searchQueries | array | optional | One or more job-title keywords. Each query is paginated in full and results are de-duplicated. Leave empty to browse all jobs that match the filters. |
country | string | optional | Restrict jobs to one of GulfTalent's 38 markets. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect: job search, one employer, pasted URLs, or salary benchmarks. |
searchQueries | array | optional | One or more job-title keywords. Each query is paginated in full and results are de-duplicated. Leave empty to browse all jobs that match the filters. |
country | string | optional | Restrict jobs to one of GulfTalent's 38 markets. |
city | string | optional | Restrict jobs to a city. Selecting a city also selects its country. |
category | string | optional | Job function such as Accounting, Software or Logistics. |
industry | string | optional | The hiring company's industry sector. |
careerLevel | string | optional | Seniority required by the posting. |
employmentTypes | array | optional | Any of: full-time, part-time, contract, temporary, internship. Leave empty for all types. |
nationality | string | optional | Only jobs aimed at this Gulf nationality. |
remoteOnly | boolean | optional | Keep only postings GulfTalent flags as remote. |
easyApplyOnly | boolean | optional | Keep only jobs that can be applied for on GulfTalent. |
exclusiveOnly | boolean | optional | Keep only GulfTalent-exclusive postings. |
postedWithinDays | integer | optional | Only jobs posted in the last N days. 0 means any age. |
includeKeywords | array | optional | Keep only jobs whose title, description or job function contains any of these terms (case-insensitive). |
excludeKeywords | array | optional | Drop jobs whose title, description or job function contains any of these terms (case-insensitive). |
minSalary | integer | optional | Drop jobs below this salary in the job's own currency. Jobs without a disclosed salary are kept. |
maxSalary | integer | optional | Drop jobs above this salary in the job's own currency. Jobs without a disclosed salary are kept. |
fetchFullDetails | boolean | optional | Visit each job page for the full description, salary, address and preference fields. Turn off for the fastest, cheapest listing-only runs. |
maxItems | integer | optional | Hard cap on emitted records (1-10000). |
companyUrl | string | optional | A GulfTalent company page such as https://www.gulftalent.com/companies/marriott-international-careers or just marriott-international-careers. |
startUrls | array | optional | Job detail URLs, search/listing URLs or company careers URLs. |
salaryTitles | array | optional | Job titles to benchmark, e.g. accountant or project manager. |
salaryCountry | string | optional | GulfTalent publishes salary benchmarks for six GCC countries. |
salaryCurrency | string | optional | Primary currency for the percentile fields. Leave empty for the country's own currency. |
Download the published input schema
View complete JSON
{
"description": "Search live GulfTalent jobs across 38 markets, pull an employer's careers page or specific URLs, and export salary benchmarks. No login, cookies, or API key required.",
"properties": {
"careerLevel": {
"default": "",
"description": "Seniority required by the posting.",
"editor": "select",
"enum": [
"",
"fresh-graduate",
"junior",
"experienced",
"manager",
"director"
],
"enumTitles": [
"Any career level",
"Student / Fresh Graduate",
"Junior Professional",
"Experienced Professional",
"Supervisor / Manager",
"Top Management / Director"
],
"prefill": "",
"title": "Career level",
"type": "string"
},
"category": {
"default": "",
"description": "Job function such as Accounting, Software or Logistics.",
"editor": "select",
"enum": [
"",
"accounting",
"admin",
"architecture",
"catering",
"design",
"customer-service",
"academic",
"chemical-engineering",
"civil-engineering",
"electronics-engineering",
"hse",
"mechanical-engineering",
"petroleum-engineering",
"power-engineering",
"finance-consulting",
"management",
"healthcare",
"hr",
"investment",
"software",
"journalism",
"legal",
"marketing",
"security",
"procurement",
"r-d",
"retail-sales",
"telesales",
"sales",
"translation",
"logistics",
"network-admin"
],
"enumTitles": [
"Any category",
"Accounting & Audit",
"Administration & Secretarial",
"Architecture",
"Catering, Food Services & Restaurants",
"Creative Arts & Design",
"Customer Service",
"Education & Teaching",
"Engineering - Chemical & Petrochemical",
"Engineering - Civil & Construction",
"Engineering - Electronics & Telecom",
"Safety & Environment",
"Engineering - Mechanical & Aeronautical",
"Engineering - Petroleum, Mining & Marine",
"Engineering - Power & Heavy Electrical",
"Finance, Business Analysis & Consulting",
"General Management",
"Healthcare",
"HR, Recruitment & Training",
"Investment Management",
"IT - Software & Web Development",
"Journalism",
"Legal",
"Marketing, Advertising & PR",
"Police, military & security services",
"Purchasing & Procurement",
"Research & Development (R&D)",
"Sales - Retail",
"Sales - Telesales / Telemarketing",
"Sales - Wholesale / Corporate",
"Translation",
"Transport, Logistics & Warehousing",
"IT - Network Administration"
],
"prefill": "",
"title": "Job category",
"type": "string"
},
"city": {
"default": "",
"description": "Restrict jobs to a city. Selecting a city also selects its country.",
"editor": "select",
"enum": [
"",
"dubai",
"abu-dhabi",
"sharjah",
"ras-al-khaimah",
"ajman",
"al-ain",
"fujairah",
"umm-al-quwain",
"riyadh",
"jeddah",
"mecca",
"dammam",
"khobar",
"dhahran",
"jubail",
"yanbu",
"doha",
"muscat",
"salalah",
"cairo",
"amman",
"kuwait-city",
"manama",
"baghdad",
"basra",
"erbil",
"kirkuk",
"mosul",
"sulaymaniyah",
"beirut"
],
"enumTitles": [
"Any city",
"Dubai (United Arab Emirates)",
"Abu Dhabi (United Arab Emirates)",
"Sharjah (United Arab Emirates)",
"Ras Al Khaimah (United Arab Emirates)",
"Ajman (United Arab Emirates)",
"Al Ain (United Arab Emirates)",
"Fujairah (United Arab Emirates)",
"Umm Al Quwain (United Arab Emirates)",
"Riyadh (Saudi Arabia)",
"Jeddah (Saudi Arabia)",
"Mecca (Saudi Arabia)",
"Dammam (Saudi Arabia)",
"Khobar (Saudi Arabia)",
"Dhahran (Saudi Arabia)",
"Jubail (Saudi Arabia)",
"Yanbu (Saudi Arabia)",
"Doha (Qatar)",
"Muscat (Oman)",
"Salalah (Oman)",
"Cairo (Egypt)",
"Amman (Jordan)",
"Kuwait City (Kuwait)",
"Manama (Bahrain)",
"Baghdad (Iraq)",
"Basra (Iraq)",
"Erbil (Iraq)",
"Kirkuk (Iraq)",
"Mosul (Iraq)",
"Sulaymaniyah (Iraq)",
"Beirut (Lebanon)"
],
"prefill": "",
"title": "City",
"type": "string"
},
"companyUrl": {
"default": "",
"description": "A GulfTalent company page such as https://www.gulftalent.com/companies/marriott-international-careers or just marriott-international-careers.",
"editor": "textfield",
"prefill": "",
"title": "Company careers URL or slug (mode=byCompany)",
"type": "string"
},
"country": {
"default": "uae",
"description": "Restrict jobs to one of GulfTalent's 38 markets.",
"editor": "select",
"enum": [
"",
"uae",
"saudi-arabia",
"egypt",
"qatar",
"jordan",
"bahrain",
"kuwait",
"oman",
"lebanon",
"iraq",
"remote-jobs",
"india",
"armenia",
"djibouti",
"malta",
"united-kingdom",
"nigeria",
"belgium",
"maldives",
"malaysia",
"finland",
"switzerland",
"singapore",
"uganda",
"latvia",
"south-korea",
"kenya",
"austria",
"spain",
"zambia",
"seychelles",
"united-states",
"pakistan",
"sweden",
"germany",
"france",
"brunei",
"libya"
],
"enumTitles": [
"Any country",
"United Arab Emirates",
"Saudi Arabia",
"Egypt",
"Qatar",
"Jordan",
"Bahrain",
"Kuwait",
"Oman",
"Lebanon",
"Iraq",
"Remote Jobs",
"India",
"Armenia",
"Djibouti",
"Malta",
"United Kingdom",
"Nigeria",
"Belgium",
"Maldives",
"Malaysia",
"Finland",
"Switzerland",
"Singapore",
"Uganda",
"Latvia",
"South Korea",
"Kenya",
"Austria",
"Spain",
"Zambia",
"Seychelles",
"United States",
"Pakistan",
"Sweden",
"Germany",
"France",
"Brunei",
"Libya"
],
"prefill": "uae",
"title": "Country",
"type": "string"
},
"easyApplyOnly": {
"default": false,
"description": "Keep only jobs that can be applied for on GulfTalent.",
"prefill": false,
"title": "Easy Apply only",
"type": "boolean"
},
"employmentTypes": {
"default": [],
"description": "Any of: full-time, part-time, contract, temporary, internship. Leave empty for all types.",
"editor": "stringList",
"prefill": [],
"title": "Employment types",
"type": "array"
},
"excludeKeywords": {
"default": [],
"description": "Drop jobs whose title, description or job function contains any of these terms (case-insensitive).",
"editor": "stringList",
"prefill": [],
"title": "Exclude keywords",
"type": "array"
},
"exclusiveOnly": {
"default": false,
"description": "Keep only GulfTalent-exclusive postings.",
"prefill": false,
"title": "Exclusive jobs only",
"type": "boolean"
},
"fetchFullDetails": {
"default": true,
"description": "Visit each job page for the full description, salary, address and preference fields. Turn off for the fastest, cheapest listing-only runs.",
"prefill": false,
"title": "Fetch full details",
"type": "boolean"
},
"includeKeywords": {
"default": [],
"description": "Keep only jobs whose title, description or job function contains any of these terms (case-insensitive).",
"editor": "stringList",
"prefill": [],
"title": "Must contain keywords",
"type": "array"
},
"industry": {
"default": "",
"description": "The hiring company's industry sector.",
"editor": "select",
"enum": [
"",
"marketing",
"accountancy",
"banking",
"professional-services",
"non-profit",
"construction",
"cosmetics",
"education",
"engineering",
"finance",
"fmcg",
"general-trading",
"government",
"healthcare",
"insurance",
"it",
"law",
"consulting",
"manufacturing",
"media",
"oil-gas",
"publishing",
"real-estate",
"hr",
"retail",
"security",
"shipping",
"telecom",
"logistics",
"hospitality",
"utilities",
"automotive",
"aviation",
"it-hardware-networking",
"cyber-network-security",
"restaurants-catering-food-services",
"facilities-management",
"mining-quarrying",
"textiles-apparel-fashion"
],
"enumTitles": [
"Any industry",
"Marketing, Advertising & PR",
"Audit & Accountancy",
"Banking & Financial Services",
"Business Support & Outsourcing",
"Non-profit / NGO / Social Services",
"Construction",
"Cosmetics, Personal Care & Luxury Goods",
"Education & Training",
"Engineering Services",
"Finance, Investment & Asset Management",
"FMCG / Consumer Goods / Food & Beverages",
"General Trading & Import/Export",
"Government & Public Sector",
"Healthcare, Pharmaceuticals & Medical Services",
"Insurance",
"Software & Internet Services",
"Legal Services",
"Management Consulting",
"Manufacturing",
"Media & Entertainment",
"Oil & Gas / Energy",
"Printing & Publishing",
"Property & Real Estate",
"Recruitment & HR",
"Retail",
"Security, law & order",
"Shipping, Freight & Marine",
"Telecoms",
"Transport, Logistics & Warehousing",
"Travel, Hotel & Tourism",
"Water, Power & Utilities",
"Automotive",
"Aviation, Airlines & Aerospace",
"IT, Hardware & Networking",
"Cyber & Network Security",
"Restaurants, Catering & Food Services",
"Facilities Management",
"Mining & Quarrying",
"Textiles, Apparel & Fashion"
],
"prefill": "",
"title": "Company industry",
"type": "string"
},
"maxItems": {
"default": 25,
"description": "Hard cap on emitted records (1-10000).",
"maximum": 10000,
"minimum": 1,
"prefill": 3,
"title": "Max records",
"type": "integer"
},
"maxSalary": {
"description": "Drop jobs above this salary in the job's own currency. Jobs without a disclosed salary are kept.",
"maximum": 10000000,
"minimum": 0,
"title": "Maximum salary",
"type": "integer"
},
"minSalary": {
"description": "Drop jobs below this salary in the job's own currency. Jobs without a disclosed salary are kept.",
"maximum": 10000000,
"minimum": 0,
"title": "Minimum salary",
"type": "integer"
},
"mode": {
"default": "search",
"description": "What to collect: job search, one employer, pasted URLs, or salary benchmarks.",
"editor": "select",
"enum": [
"search",
"byCompany",
"byUrls",
"salary"
],
"enumTitles": [
"Search jobs",
"One company's careers page",
"Pasted job / search / company URLs",
"Salary benchmarks"
],
"prefill": "search",
"title": "Mode",
"type": "string"
},
"nationality": {
"default": "",
"description": "Only jobs aimed at this Gulf nationality.",
"editor": "select",
"enum": [
"",
"uae",
"saudi",
"kuwaiti",
"qatari",
"bahraini",
"omani"
],
"enumTitles": [
"Any nationality",
"UAE",
"Saudi Arabia",
"Kuwait",
"Qatar",
"Bahrain",
"Oman"
],
"prefill": "",
"title": "Nationality preference",
"type": "string"
},
"postedWithinDays": {
"default": 0,
"description": "Only jobs posted in the last N days. 0 means any age.",
"maximum": 90,
"minimum": 0,
"prefill": 0,
"title": "Posted within (days)",
"type": "integer"
},
"remoteOnly": {
"default": false,
"description": "Keep only postings GulfTalent flags as remote.",
"prefill": false,
"title": "Remote jobs only",
"type": "boolean"
},
"salaryCountry": {
"default": "uae",
"description": "GulfTalent publishes salary benchmarks for six GCC countries.",
"editor": "select",
"enum": [
"uae",
"saudi-arabia",
"qatar",
"kuwait",
"bahrain",
"oman"
],
"enumTitles": [
"United Arab Emirates",
"Saudi Arabia",
"Qatar",
"Kuwait",
"Bahrain",
"Oman"
],
"prefill": "uae",
"title": "Salary country (mode=salary)",
"type": "string"
},
"salaryCurrency": {
"default": "",
"description": "Primary currency for the percentile fields. Leave empty for the country's own currency.",
"editor": "select",
"enum": [
"",
"AED",
"BHD",
"KWD",
"OMR",
"QAR",
"SAR",
"USD",
"GBP",
"EUR",
"INR"
],
"enumTitles": [
"Local currency",
"AED",
"BHD",
"KWD",
"OMR",
"QAR",
"SAR",
"USD",
"GBP",
"EUR",
"INR"
],
"prefill": "",
"title": "Salary currency (mode=salary)",
"type": "string"
},
"salaryTitles": {
"default": [
"accountant"
],
"description": "Job titles to benchmark, e.g. accountant or project manager.",
"editor": "stringList",
"prefill": [
"accountant"
],
"title": "Salary titles (mode=salary)",
"type": "array"
},
"searchQueries": {
"default": [
"accountant"
],
"description": "One or more job-title keywords. Each query is paginated in full and results are de-duplicated. Leave empty to browse all jobs that match the filters.",
"editor": "stringList",
"prefill": [
"accountant"
],
"title": "Search keywords (mode=search)",
"type": "array"
},
"startUrls": {
"default": [],
"description": "Job detail URLs, search/listing URLs or company careers URLs.",
"editor": "stringList",
"prefill": [],
"title": "Start URLs (mode=byUrls)",
"type": "array"
}
},
"required": [
"mode"
],
"schemaVersion": 1,
"title": "GulfTalent Jobs & Salary Benchmarks Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
jobs | string | optional | Dataset containing scraped GulfTalent job listings and salary benchmark records. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "GulfTalent job records with company, location, salary, description and application fields, plus salary-benchmark records with percentiles, sample sizes and allowances.",
"properties": {
"jobs": {
"description": "Dataset containing scraped GulfTalent job listings and salary benchmark records.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "GulfTalent jobs & salary records",
"type": "string"
}
},
"title": "GulfTalent Jobs & Salary Benchmarks Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"views": {
"overview": {
"display": {
"component": "table",
"properties": {}
},
"title": "Jobs & salary records",
"transformation": {
"fields": [
"recordType",
"title",
"companyName",
"country",
"city",
"salaryMin",
"salaryMax",
"salaryCurrency",
"median",
"sampleSize",
"postedAt",
"sourceUrl"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
GulfTalent Jobs & Salary Benchmarks
GulfTalent is one of the largest job boards for the Gulf and wider Middle East. This actor turns its public job search, employer careers pages and salary-benchmark pages into clean, structured records — 38 markets, 32 job categories, 39 industries and ten salary currencies, with no account, cookie or API key required.
What it does
- Searches jobs by keyword across one or many queries and pages through the complete result set, de-duplicating repeated postings.
- Filters by country, city, category, industry, career level, employment type, nationality preference, remote, Easy Apply, exclusive and posting age.
- Pulls every open job from one employer's GulfTalent careers page, including large employers whose page embeds thousands of roles.
- Accepts pasted job, search and company URLs and routes each one to the right collector.
- Exports salary benchmarks — 10th/25th/50th/75th/90th percentiles, sample sizes, allowance percentages and related titles.
- Omits empty fields at every depth: a posting that doesn't disclose a salary simply has no salary fields.
Services
| Mode | What it returns |
|---|---|
search |
Job records for one or more keywords and any combination of filters |
byCompany |
Every open job listed on one company's GulfTalent careers page |
byUrls |
Records from a mixed list of job, search/listing and company URLs |
salary |
Salary-benchmark records for one or more titles in one GCC country |
How it works
The actor reads GulfTalent's public search results and job/company/salary pages directly. Search results are paged by true row offset, so a request for thousands of records keeps going until the source is exhausted or maxItems is reached. Detail pages add the full description, salary, address and preference fields when fetchFullDetails is on. Salary records come from GulfTalent's own benchmark pages, which publish percentile bands per title and country.
All job URLs are normalised to canonical https://www.gulftalent.com/... links, and timestamps are returned in ISO 8601 UTC.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | search |
search, byCompany, byUrls or salary |
searchQueries |
array | ["accountant"] |
One or more keywords (mode=search). Empty = browse all jobs matching the filters |
country |
string | uae |
One of 38 GulfTalent markets, or empty for any country |
city |
string | – | One of 30 cities; also selects the city's country |
category |
string | – | One of 32 job categories |
industry |
string | – | One of 39 hiring-company industries |
careerLevel |
string | – | Fresh graduate, junior, experienced, manager or director |
employmentTypes |
array | [] |
Any of full-time, part-time, contract, temporary, internship |
nationality |
string | – | One of six Gulf nationality preferences |
remoteOnly |
boolean | false |
Keep only remote-flagged postings |
easyApplyOnly |
boolean | false |
Keep only jobs with Easy Apply |
exclusiveOnly |
boolean | false |
Keep only GulfTalent-exclusive postings |
postedWithinDays |
integer | 0 |
0–90; 0 means any age |
includeKeywords |
array | [] |
Keep jobs whose title/description/function contains any term |
excludeKeywords |
array | [] |
Drop jobs whose title/description/function contains any term |
minSalary / maxSalary |
integer | – | Salary bounds in the job's own currency; undisclosed salaries are kept |
fetchFullDetails |
boolean | true |
Visit each job page for description, salary, address and preferences |
maxItems |
integer | 25 |
Hard record cap (1–10000) |
companyUrl |
string | – | Company page URL or slug (mode=byCompany) |
startUrls |
array | [] |
Job, search or company URLs (mode=byUrls) |
salaryTitles |
array | ["accountant"] |
Titles to benchmark (mode=salary) |
salaryCountry |
string | uae |
UAE, Saudi Arabia, Qatar, Kuwait, Bahrain or Oman (mode=salary) |
salaryCurrency |
string | – | Primary currency; empty uses the country's currency (mode=salary) |
Output per job
jobId,title,referenceNumbercompanyName,companyUrl,companyLogoUrl,companyId,companyConfidentialcountry,countrySlug,city,location,area,streetAddress,addressRegion,postalCodesalaryMin,salaryMax,salaryCurrency,salaryPeriod,salaryLabel,salaryTextemploymentType,jobFunction,categoryId,careerLevel,careerLevelIdcompanyIndustry,industryId,nationalityPreference,genderPreference,arabicFluencyisRemote,isExclusive,easyApply,applyUrldescription,descriptionHtml,companyDescription,similarJobUrlspostedAt,validThrough,sourceUrl,searchQuerycompanyJobCount— total open jobs on that employer's page (byCompany)recordType: "job",scrapedAt
Output per salary record
title,titleSlug,jobTitleId,country,countrySlugcurrency,currencyName,salaryPeriod(month)percentile10,percentile25,median,percentile75,percentile90sampleSize,companyCount,industryCount,batchDatesalaryByCurrency— all ten currencies with the same percentile bandsallowanceHousingPct,allowanceTransportPct,allowanceOtherPctrelatedTitles[]—title,slug,median,currencysourceUrl,recordType: "salary",scrapedAt
Example: multi-keyword search with filters
{
"mode": "search",
"searchQueries": ["accountant", "financial analyst"],
"country": "uae",
"city": "dubai",
"careerLevel": "experienced",
"postedWithinDays": 30,
"fetchFullDetails": true,
"maxItems": 100
}
Example: all open jobs at a large employer
{
"mode": "byCompany",
"companyUrl": "https://www.gulftalent.com/companies/marriott-international-careers",
"fetchFullDetails": false,
"maxItems": 1000
}
Example: mixed URLs
{
"mode": "byUrls",
"startUrls": [
"https://www.gulftalent.com/uae/jobs/finance-manager-651612",
"https://www.gulftalent.com/saudi-arabia/jobs/category/accounting",
"https://www.gulftalent.com/companies/hays-careers"
]
}
Example: salary benchmarks in USD
{
"mode": "salary",
"salaryTitles": ["accountant", "project manager", "civil engineer"],
"salaryCountry": "uae",
"salaryCurrency": "USD",
"maxItems": 3
}
Usage cost
You pay only for Apify platform usage — there is no per-record fee from this actor. Listing-only runs (fetchFullDetails: false) are the cheapest because they read one search response per page of results. Turning detail fetching on adds one job-page visit per record. Company runs read one employer page; salary runs read one benchmark page per title. To keep large runs inexpensive, request more records with detail fetching off.
FAQ
Do I need a GulfTalent account or API key? No. The actor reads public GulfTalent pages; no login, cookies or key are required.
Why do some jobs have no salary fields?
Employers choose whether to disclose pay. When it isn't disclosed, salaryMin/salaryMax are omitted rather than guessed. salaryText carries a free-text note when one exists.
What is the difference between a job record and a salary record?
A job record describes one live posting. A salary record describes GulfTalent's pay benchmark for a title and country, with percentiles and sample size. Use recordType to tell them apart.
Which countries have salary benchmarks? GulfTalent publishes salary pages for six GCC countries: UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. Other markets return no salary records and the run reports the coverage limit.
How does maxItems interact with pagination?
The actor pages through the source in true row offsets and stops when maxItems is reached or the source is exhausted. It never stops early just because one page had no new postings.
Can I search several keywords at once?
Yes — add them to searchQueries. Results from every keyword are de-duplicated by job ID, and searchQuery shows which keyword found each row.
Does remoteOnly use a server-side filter?
GulfTalent doesn't expose a reliable remote filter in its search API, so the flag is applied to every posting's own remote marker. The same applies to the posting-age window.
What does byCompany return for a large employer?
Every open job GulfTalent lists on that employer's careers page — the full page is read in one pass, so there is no 200-job ceiling. companyJobCount records the total.
Is this affiliated with GulfTalent? No. This is an independent third-party actor using public pages and is not affiliated with, endorsed by or sponsored by GulfTalent.
Notes
- Empty values are omitted; there are no
nullfields to defend against. postedAtandvalidThroughare ISO 8601 UTC. Detail pages sometimes publish date-only values, in which case the time is midnight UTC.applyUrlis the canonical GulfTalent posting URL. External application links are not exposed by the source.salaryByCurrencyincludes all ten benchmark currencies; the top-level percentile fields usesalaryCurrencyor the local currency.- Search totals change as employers add and remove postings, so two runs on different days can legitimately differ.
Limitations
- Salary benchmarks exist only for GCC countries; the actor reports unsupported countries instead of inventing data.
- Arabic-script keywords have no matching GulfTalent search index. The actor falls back to a broad browse plus local text matching, which can be slower than a Latin keyword search.
- GulfTalent does not publish recruiter emails or phone numbers. Those fields are deliberately not fabricated.
- Remote, posting-age, include/exclude and salary checks are applied after the listing or detail page is read; they can make a filtered run read more pages than an unfiltered one.
- Some postings are country-wide ads with no city;
cityis therefore omitted for those records.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build zZCteaXnpbNbasj4u. Documentation is regenerated from the default published build; private drafts are not included.