Vexaloom Labs

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.

FieldTypeRequiredDescription
modestringrequiredWhat to collect: job search, one employer, pasted URLs, or salary benchmarks.
searchQueriesarrayoptionalOne 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.
countrystringoptionalRestrict jobs to one of GulfTalent's 38 markets.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to collect: job search, one employer, pasted URLs, or salary benchmarks.
searchQueriesarrayoptionalOne 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.
countrystringoptionalRestrict jobs to one of GulfTalent's 38 markets.
citystringoptionalRestrict jobs to a city. Selecting a city also selects its country.
categorystringoptionalJob function such as Accounting, Software or Logistics.
industrystringoptionalThe hiring company's industry sector.
careerLevelstringoptionalSeniority required by the posting.
employmentTypesarrayoptionalAny of: full-time, part-time, contract, temporary, internship. Leave empty for all types.
nationalitystringoptionalOnly jobs aimed at this Gulf nationality.
remoteOnlybooleanoptionalKeep only postings GulfTalent flags as remote.
easyApplyOnlybooleanoptionalKeep only jobs that can be applied for on GulfTalent.
exclusiveOnlybooleanoptionalKeep only GulfTalent-exclusive postings.
postedWithinDaysintegeroptionalOnly jobs posted in the last N days. 0 means any age.
includeKeywordsarrayoptionalKeep only jobs whose title, description or job function contains any of these terms (case-insensitive).
excludeKeywordsarrayoptionalDrop jobs whose title, description or job function contains any of these terms (case-insensitive).
minSalaryintegeroptionalDrop jobs below this salary in the job's own currency. Jobs without a disclosed salary are kept.
maxSalaryintegeroptionalDrop jobs above this salary in the job's own currency. Jobs without a disclosed salary are kept.
fetchFullDetailsbooleanoptionalVisit each job page for the full description, salary, address and preference fields. Turn off for the fastest, cheapest listing-only runs.
maxItemsintegeroptionalHard cap on emitted records (1-10000).
companyUrlstringoptionalA GulfTalent company page such as https://www.gulftalent.com/companies/marriott-international-careers or just marriott-international-careers.
startUrlsarrayoptionalJob detail URLs, search/listing URLs or company careers URLs.
salaryTitlesarrayoptionalJob titles to benchmark, e.g. accountant or project manager.
salaryCountrystringoptionalGulfTalent publishes salary benchmarks for six GCC countries.
salaryCurrencystringoptionalPrimary 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.

FieldTypeRequiredDescription
jobsstringoptionalDataset 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, referenceNumber
  • companyName, companyUrl, companyLogoUrl, companyId, companyConfidential
  • country, countrySlug, city, location, area, streetAddress, addressRegion, postalCode
  • salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryLabel, salaryText
  • employmentType, jobFunction, categoryId, careerLevel, careerLevelId
  • companyIndustry, industryId, nationalityPreference, genderPreference, arabicFluency
  • isRemote, isExclusive, easyApply, applyUrl
  • description, descriptionHtml, companyDescription, similarJobUrls
  • postedAt, validThrough, sourceUrl, searchQuery
  • companyJobCount — total open jobs on that employer's page (byCompany)
  • recordType: "job", scrapedAt

Output per salary record

  • title, titleSlug, jobTitleId, country, countrySlug
  • currency, currencyName, salaryPeriod (month)
  • percentile10, percentile25, median, percentile75, percentile90
  • sampleSize, companyCount, industryCount, batchDate
  • salaryByCurrency — all ten currencies with the same percentile bands
  • allowanceHousingPct, allowanceTransportPct, allowanceOtherPct
  • relatedTitles[] — title, slug, median, currency
  • sourceUrl, 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 null fields to defend against.
  • postedAt and validThrough are ISO 8601 UTC. Detail pages sometimes publish date-only values, in which case the time is midnight UTC.
  • applyUrl is the canonical GulfTalent posting URL. External application links are not exposed by the source.
  • salaryByCurrency includes all ten benchmark currencies; the top-level percentile fields use salaryCurrency or 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; city is 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.

Open the step-by-step Python guide →

Source build zZCteaXnpbNbasj4u. Documentation is regenerated from the default published build; private drafts are not included.