{
  "data": {
    "id": "zZCteaXnpbNbasj4u",
    "actId": "j1nrC2bK9hXJRNcOJ",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-10-28T13:25:06.012Z",
    "finishedAt": "2026-10-28T13:25:10.440Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 4337,
      "runTimeSecs": 4.337,
      "computeUnits": 0.004818888888888889,
      "imageSizeBytes": 357884416
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"GulfTalent Jobs & Salary Benchmarks Input\",\n  \"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.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to collect: job search, one employer, pasted URLs, or salary benchmarks.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"byCompany\",\n        \"byUrls\",\n        \"salary\"\n      ],\n      \"enumTitles\": [\n        \"Search jobs\",\n        \"One company's careers page\",\n        \"Pasted job / search / company URLs\",\n        \"Salary benchmarks\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"searchQueries\": {\n      \"title\": \"Search keywords (mode=search)\",\n      \"type\": \"array\",\n      \"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.\",\n      \"editor\": \"stringList\",\n      \"default\": [\n        \"accountant\"\n      ],\n      \"prefill\": [\n        \"accountant\"\n      ]\n    },\n    \"country\": {\n      \"title\": \"Country\",\n      \"type\": \"string\",\n      \"description\": \"Restrict jobs to one of GulfTalent's 38 markets.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"uae\",\n        \"saudi-arabia\",\n        \"egypt\",\n        \"qatar\",\n        \"jordan\",\n        \"bahrain\",\n        \"kuwait\",\n        \"oman\",\n        \"lebanon\",\n        \"iraq\",\n        \"remote-jobs\",\n        \"india\",\n        \"armenia\",\n        \"djibouti\",\n        \"malta\",\n        \"united-kingdom\",\n        \"nigeria\",\n        \"belgium\",\n        \"maldives\",\n        \"malaysia\",\n        \"finland\",\n        \"switzerland\",\n        \"singapore\",\n        \"uganda\",\n        \"latvia\",\n        \"south-korea\",\n        \"kenya\",\n        \"austria\",\n        \"spain\",\n        \"zambia\",\n        \"seychelles\",\n        \"united-states\",\n        \"pakistan\",\n        \"sweden\",\n        \"germany\",\n        \"france\",\n        \"brunei\",\n        \"libya\"\n      ],\n      \"enumTitles\": [\n        \"Any country\",\n        \"United Arab Emirates\",\n        \"Saudi Arabia\",\n        \"Egypt\",\n        \"Qatar\",\n        \"Jordan\",\n        \"Bahrain\",\n        \"Kuwait\",\n        \"Oman\",\n        \"Lebanon\",\n        \"Iraq\",\n        \"Remote Jobs\",\n        \"India\",\n        \"Armenia\",\n        \"Djibouti\",\n        \"Malta\",\n        \"United Kingdom\",\n        \"Nigeria\",\n        \"Belgium\",\n        \"Maldives\",\n        \"Malaysia\",\n        \"Finland\",\n        \"Switzerland\",\n        \"Singapore\",\n        \"Uganda\",\n        \"Latvia\",\n        \"South Korea\",\n        \"Kenya\",\n        \"Austria\",\n        \"Spain\",\n        \"Zambia\",\n        \"Seychelles\",\n        \"United States\",\n        \"Pakistan\",\n        \"Sweden\",\n        \"Germany\",\n        \"France\",\n        \"Brunei\",\n        \"Libya\"\n      ],\n      \"default\": \"uae\",\n      \"prefill\": \"uae\"\n    },\n    \"city\": {\n      \"title\": \"City\",\n      \"type\": \"string\",\n      \"description\": \"Restrict jobs to a city. Selecting a city also selects its country.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"dubai\",\n        \"abu-dhabi\",\n        \"sharjah\",\n        \"ras-al-khaimah\",\n        \"ajman\",\n        \"al-ain\",\n        \"fujairah\",\n        \"umm-al-quwain\",\n        \"riyadh\",\n        \"jeddah\",\n        \"mecca\",\n        \"dammam\",\n        \"khobar\",\n        \"dhahran\",\n        \"jubail\",\n        \"yanbu\",\n        \"doha\",\n        \"muscat\",\n        \"salalah\",\n        \"cairo\",\n        \"amman\",\n        \"kuwait-city\",\n        \"manama\",\n        \"baghdad\",\n        \"basra\",\n        \"erbil\",\n        \"kirkuk\",\n        \"mosul\",\n        \"sulaymaniyah\",\n        \"beirut\"\n      ],\n      \"enumTitles\": [\n        \"Any city\",\n        \"Dubai (United Arab Emirates)\",\n        \"Abu Dhabi (United Arab Emirates)\",\n        \"Sharjah (United Arab Emirates)\",\n        \"Ras Al Khaimah (United Arab Emirates)\",\n        \"Ajman (United Arab Emirates)\",\n        \"Al Ain (United Arab Emirates)\",\n        \"Fujairah (United Arab Emirates)\",\n        \"Umm Al Quwain (United Arab Emirates)\",\n        \"Riyadh (Saudi Arabia)\",\n        \"Jeddah (Saudi Arabia)\",\n        \"Mecca (Saudi Arabia)\",\n        \"Dammam (Saudi Arabia)\",\n        \"Khobar (Saudi Arabia)\",\n        \"Dhahran (Saudi Arabia)\",\n        \"Jubail (Saudi Arabia)\",\n        \"Yanbu (Saudi Arabia)\",\n        \"Doha (Qatar)\",\n        \"Muscat (Oman)\",\n        \"Salalah (Oman)\",\n        \"Cairo (Egypt)\",\n        \"Amman (Jordan)\",\n        \"Kuwait City (Kuwait)\",\n        \"Manama (Bahrain)\",\n        \"Baghdad (Iraq)\",\n        \"Basra (Iraq)\",\n        \"Erbil (Iraq)\",\n        \"Kirkuk (Iraq)\",\n        \"Mosul (Iraq)\",\n        \"Sulaymaniyah (Iraq)\",\n        \"Beirut (Lebanon)\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"category\": {\n      \"title\": \"Job category\",\n      \"type\": \"string\",\n      \"description\": \"Job function such as Accounting, Software or Logistics.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"accounting\",\n        \"admin\",\n        \"architecture\",\n        \"catering\",\n        \"design\",\n        \"customer-service\",\n        \"academic\",\n        \"chemical-engineering\",\n        \"civil-engineering\",\n        \"electronics-engineering\",\n        \"hse\",\n        \"mechanical-engineering\",\n        \"petroleum-engineering\",\n        \"power-engineering\",\n        \"finance-consulting\",\n        \"management\",\n        \"healthcare\",\n        \"hr\",\n        \"investment\",\n        \"software\",\n        \"journalism\",\n        \"legal\",\n        \"marketing\",\n        \"security\",\n        \"procurement\",\n        \"r-d\",\n        \"retail-sales\",\n        \"telesales\",\n        \"sales\",\n        \"translation\",\n        \"logistics\",\n        \"network-admin\"\n      ],\n      \"enumTitles\": [\n        \"Any category\",\n        \"Accounting & Audit\",\n        \"Administration & Secretarial\",\n        \"Architecture\",\n        \"Catering, Food Services & Restaurants\",\n        \"Creative Arts & Design\",\n        \"Customer Service\",\n        \"Education & Teaching\",\n        \"Engineering - Chemical & Petrochemical\",\n        \"Engineering - Civil & Construction\",\n        \"Engineering - Electronics & Telecom\",\n        \"Safety & Environment\",\n        \"Engineering - Mechanical & Aeronautical\",\n        \"Engineering - Petroleum, Mining & Marine\",\n        \"Engineering - Power & Heavy Electrical\",\n        \"Finance, Business Analysis & Consulting\",\n        \"General Management\",\n        \"Healthcare\",\n        \"HR, Recruitment & Training\",\n        \"Investment Management\",\n        \"IT - Software & Web Development\",\n        \"Journalism\",\n        \"Legal\",\n        \"Marketing, Advertising & PR\",\n        \"Police, military & security services\",\n        \"Purchasing & Procurement\",\n        \"Research & Development (R&D)\",\n        \"Sales - Retail\",\n        \"Sales - Telesales / Telemarketing\",\n        \"Sales - Wholesale / Corporate\",\n        \"Translation\",\n        \"Transport, Logistics & Warehousing\",\n        \"IT - Network Administration\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"industry\": {\n      \"title\": \"Company industry\",\n      \"type\": \"string\",\n      \"description\": \"The hiring company's industry sector.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"marketing\",\n        \"accountancy\",\n        \"banking\",\n        \"professional-services\",\n        \"non-profit\",\n        \"construction\",\n        \"cosmetics\",\n        \"education\",\n        \"engineering\",\n        \"finance\",\n        \"fmcg\",\n        \"general-trading\",\n        \"government\",\n        \"healthcare\",\n        \"insurance\",\n        \"it\",\n        \"law\",\n        \"consulting\",\n        \"manufacturing\",\n        \"media\",\n        \"oil-gas\",\n        \"publishing\",\n        \"real-estate\",\n        \"hr\",\n        \"retail\",\n        \"security\",\n        \"shipping\",\n        \"telecom\",\n        \"logistics\",\n        \"hospitality\",\n        \"utilities\",\n        \"automotive\",\n        \"aviation\",\n        \"it-hardware-networking\",\n        \"cyber-network-security\",\n        \"restaurants-catering-food-services\",\n        \"facilities-management\",\n        \"mining-quarrying\",\n        \"textiles-apparel-fashion\"\n      ],\n      \"enumTitles\": [\n        \"Any industry\",\n        \"Marketing, Advertising & PR\",\n        \"Audit & Accountancy\",\n        \"Banking & Financial Services\",\n        \"Business Support & Outsourcing\",\n        \"Non-profit / NGO / Social Services\",\n        \"Construction\",\n        \"Cosmetics, Personal Care & Luxury Goods\",\n        \"Education & Training\",\n        \"Engineering Services\",\n        \"Finance, Investment & Asset Management\",\n        \"FMCG / Consumer Goods / Food & Beverages\",\n        \"General Trading & Import/Export\",\n        \"Government & Public Sector\",\n        \"Healthcare, Pharmaceuticals & Medical Services\",\n        \"Insurance\",\n        \"Software & Internet Services\",\n        \"Legal Services\",\n        \"Management Consulting\",\n        \"Manufacturing\",\n        \"Media & Entertainment\",\n        \"Oil & Gas / Energy\",\n        \"Printing & Publishing\",\n        \"Property & Real Estate\",\n        \"Recruitment & HR\",\n        \"Retail\",\n        \"Security, law & order\",\n        \"Shipping, Freight & Marine\",\n        \"Telecoms\",\n        \"Transport, Logistics & Warehousing\",\n        \"Travel, Hotel & Tourism\",\n        \"Water, Power & Utilities\",\n        \"Automotive\",\n        \"Aviation, Airlines & Aerospace\",\n        \"IT, Hardware & Networking\",\n        \"Cyber & Network Security\",\n        \"Restaurants, Catering & Food Services\",\n        \"Facilities Management\",\n        \"Mining & Quarrying\",\n        \"Textiles, Apparel & Fashion\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"careerLevel\": {\n      \"title\": \"Career level\",\n      \"type\": \"string\",\n      \"description\": \"Seniority required by the posting.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"fresh-graduate\",\n        \"junior\",\n        \"experienced\",\n        \"manager\",\n        \"director\"\n      ],\n      \"enumTitles\": [\n        \"Any career level\",\n        \"Student / Fresh Graduate\",\n        \"Junior Professional\",\n        \"Experienced Professional\",\n        \"Supervisor / Manager\",\n        \"Top Management / Director\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"employmentTypes\": {\n      \"title\": \"Employment types\",\n      \"type\": \"array\",\n      \"description\": \"Any of: full-time, part-time, contract, temporary, internship. Leave empty for all types.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"nationality\": {\n      \"title\": \"Nationality preference\",\n      \"type\": \"string\",\n      \"description\": \"Only jobs aimed at this Gulf nationality.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"uae\",\n        \"saudi\",\n        \"kuwaiti\",\n        \"qatari\",\n        \"bahraini\",\n        \"omani\"\n      ],\n      \"enumTitles\": [\n        \"Any nationality\",\n        \"UAE\",\n        \"Saudi Arabia\",\n        \"Kuwait\",\n        \"Qatar\",\n        \"Bahrain\",\n        \"Oman\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"remoteOnly\": {\n      \"title\": \"Remote jobs only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only postings GulfTalent flags as remote.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"easyApplyOnly\": {\n      \"title\": \"Easy Apply only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only jobs that can be applied for on GulfTalent.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"exclusiveOnly\": {\n      \"title\": \"Exclusive jobs only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only GulfTalent-exclusive postings.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"postedWithinDays\": {\n      \"title\": \"Posted within (days)\",\n      \"type\": \"integer\",\n      \"description\": \"Only jobs posted in the last N days. 0 means any age.\",\n      \"minimum\": 0,\n      \"maximum\": 90,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"includeKeywords\": {\n      \"title\": \"Must contain keywords\",\n      \"type\": \"array\",\n      \"description\": \"Keep only jobs whose title, description or job function contains any of these terms (case-insensitive).\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"excludeKeywords\": {\n      \"title\": \"Exclude keywords\",\n      \"type\": \"array\",\n      \"description\": \"Drop jobs whose title, description or job function contains any of these terms (case-insensitive).\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"minSalary\": {\n      \"title\": \"Minimum salary\",\n      \"type\": \"integer\",\n      \"description\": \"Drop jobs below this salary in the job's own currency. Jobs without a disclosed salary are kept.\",\n      \"minimum\": 0,\n      \"maximum\": 10000000\n    },\n    \"maxSalary\": {\n      \"title\": \"Maximum salary\",\n      \"type\": \"integer\",\n      \"description\": \"Drop jobs above this salary in the job's own currency. Jobs without a disclosed salary are kept.\",\n      \"minimum\": 0,\n      \"maximum\": 10000000\n    },\n    \"fetchFullDetails\": {\n      \"title\": \"Fetch full details\",\n      \"type\": \"boolean\",\n      \"description\": \"Visit each job page for the full description, salary, address and preference fields. Turn off for the fastest, cheapest listing-only runs.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"maxItems\": {\n      \"title\": \"Max records\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on emitted records (1-10000).\",\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"default\": 25,\n      \"prefill\": 3\n    },\n    \"companyUrl\": {\n      \"title\": \"Company careers URL or slug (mode=byCompany)\",\n      \"type\": \"string\",\n      \"description\": \"A GulfTalent company page such as https://www.gulftalent.com/companies/marriott-international-careers or just marriott-international-careers.\",\n      \"editor\": \"textfield\",\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"startUrls\": {\n      \"title\": \"Start URLs (mode=byUrls)\",\n      \"type\": \"array\",\n      \"description\": \"Job detail URLs, search/listing URLs or company careers URLs.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"salaryTitles\": {\n      \"title\": \"Salary titles (mode=salary)\",\n      \"type\": \"array\",\n      \"description\": \"Job titles to benchmark, e.g. accountant or project manager.\",\n      \"editor\": \"stringList\",\n      \"default\": [\n        \"accountant\"\n      ],\n      \"prefill\": [\n        \"accountant\"\n      ]\n    },\n    \"salaryCountry\": {\n      \"title\": \"Salary country (mode=salary)\",\n      \"type\": \"string\",\n      \"description\": \"GulfTalent publishes salary benchmarks for six GCC countries.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"uae\",\n        \"saudi-arabia\",\n        \"qatar\",\n        \"kuwait\",\n        \"bahrain\",\n        \"oman\"\n      ],\n      \"enumTitles\": [\n        \"United Arab Emirates\",\n        \"Saudi Arabia\",\n        \"Qatar\",\n        \"Kuwait\",\n        \"Bahrain\",\n        \"Oman\"\n      ],\n      \"default\": \"uae\",\n      \"prefill\": \"uae\"\n    },\n    \"salaryCurrency\": {\n      \"title\": \"Salary currency (mode=salary)\",\n      \"type\": \"string\",\n      \"description\": \"Primary currency for the percentile fields. Leave empty for the country's own currency.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"AED\",\n        \"BHD\",\n        \"KWD\",\n        \"OMR\",\n        \"QAR\",\n        \"SAR\",\n        \"USD\",\n        \"GBP\",\n        \"EUR\",\n        \"INR\"\n      ],\n      \"enumTitles\": [\n        \"Local currency\",\n        \"AED\",\n        \"BHD\",\n        \"KWD\",\n        \"OMR\",\n        \"QAR\",\n        \"SAR\",\n        \"USD\",\n        \"GBP\",\n        \"EUR\",\n        \"INR\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# GulfTalent Jobs & Salary Benchmarks\n\nGulfTalent 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.\n\n## What it does\n\n- **Searches jobs by keyword** across one or many queries and pages through the complete result set, de-duplicating repeated postings.\n- **Filters by country, city, category, industry, career level, employment type, nationality preference, remote, Easy Apply, exclusive and posting age.**\n- **Pulls every open job from one employer's GulfTalent careers page**, including large employers whose page embeds thousands of roles.\n- **Accepts pasted job, search and company URLs** and routes each one to the right collector.\n- **Exports salary benchmarks** — 10th/25th/50th/75th/90th percentiles, sample sizes, allowance percentages and related titles.\n- **Omits empty fields** at every depth: a posting that doesn't disclose a salary simply has no salary fields.\n\n## Services\n\n| Mode | What it returns |\n|---|---|\n| `search` | Job records for one or more keywords and any combination of filters |\n| `byCompany` | Every open job listed on one company's GulfTalent careers page |\n| `byUrls` | Records from a mixed list of job, search/listing and company URLs |\n| `salary` | Salary-benchmark records for one or more titles in one GCC country |\n\n## How it works\n\nThe 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.\n\nAll job URLs are normalised to canonical `https://www.gulftalent.com/...` links, and timestamps are returned in ISO 8601 UTC.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `search` | `search`, `byCompany`, `byUrls` or `salary` |\n| `searchQueries` | array | `[\"accountant\"]` | One or more keywords (`mode=search`). Empty = browse all jobs matching the filters |\n| `country` | string | `uae` | One of 38 GulfTalent markets, or empty for any country |\n| `city` | string | – | One of 30 cities; also selects the city's country |\n| `category` | string | – | One of 32 job categories |\n| `industry` | string | – | One of 39 hiring-company industries |\n| `careerLevel` | string | – | Fresh graduate, junior, experienced, manager or director |\n| `employmentTypes` | array | `[]` | Any of `full-time`, `part-time`, `contract`, `temporary`, `internship` |\n| `nationality` | string | – | One of six Gulf nationality preferences |\n| `remoteOnly` | boolean | `false` | Keep only remote-flagged postings |\n| `easyApplyOnly` | boolean | `false` | Keep only jobs with Easy Apply |\n| `exclusiveOnly` | boolean | `false` | Keep only GulfTalent-exclusive postings |\n| `postedWithinDays` | integer | `0` | 0–90; 0 means any age |\n| `includeKeywords` | array | `[]` | Keep jobs whose title/description/function contains any term |\n| `excludeKeywords` | array | `[]` | Drop jobs whose title/description/function contains any term |\n| `minSalary` / `maxSalary` | integer | – | Salary bounds in the job's own currency; undisclosed salaries are kept |\n| `fetchFullDetails` | boolean | `true` | Visit each job page for description, salary, address and preferences |\n| `maxItems` | integer | `25` | Hard record cap (1–10000) |\n| `companyUrl` | string | – | Company page URL or slug (`mode=byCompany`) |\n| `startUrls` | array | `[]` | Job, search or company URLs (`mode=byUrls`) |\n| `salaryTitles` | array | `[\"accountant\"]` | Titles to benchmark (`mode=salary`) |\n| `salaryCountry` | string | `uae` | UAE, Saudi Arabia, Qatar, Kuwait, Bahrain or Oman (`mode=salary`) |\n| `salaryCurrency` | string | – | Primary currency; empty uses the country's currency (`mode=salary`) |\n\n## Output per job\n\n- `jobId`, `title`, `referenceNumber`\n- `companyName`, `companyUrl`, `companyLogoUrl`, `companyId`, `companyConfidential`\n- `country`, `countrySlug`, `city`, `location`, `area`, `streetAddress`, `addressRegion`, `postalCode`\n- `salaryMin`, `salaryMax`, `salaryCurrency`, `salaryPeriod`, `salaryLabel`, `salaryText`\n- `employmentType`, `jobFunction`, `categoryId`, `careerLevel`, `careerLevelId`\n- `companyIndustry`, `industryId`, `nationalityPreference`, `genderPreference`, `arabicFluency`\n- `isRemote`, `isExclusive`, `easyApply`, `applyUrl`\n- `description`, `descriptionHtml`, `companyDescription`, `similarJobUrls`\n- `postedAt`, `validThrough`, `sourceUrl`, `searchQuery`\n- `companyJobCount` — total open jobs on that employer's page (`byCompany`)\n- `recordType: \"job\"`, `scrapedAt`\n\n## Output per salary record\n\n- `title`, `titleSlug`, `jobTitleId`, `country`, `countrySlug`\n- `currency`, `currencyName`, `salaryPeriod` (`month`)\n- `percentile10`, `percentile25`, `median`, `percentile75`, `percentile90`\n- `sampleSize`, `companyCount`, `industryCount`, `batchDate`\n- `salaryByCurrency` — all ten currencies with the same percentile bands\n- `allowanceHousingPct`, `allowanceTransportPct`, `allowanceOtherPct`\n- `relatedTitles[]` — `title`, `slug`, `median`, `currency`\n- `sourceUrl`, `recordType: \"salary\"`, `scrapedAt`\n\n### Example: multi-keyword search with filters\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"accountant\", \"financial analyst\"],\n  \"country\": \"uae\",\n  \"city\": \"dubai\",\n  \"careerLevel\": \"experienced\",\n  \"postedWithinDays\": 30,\n  \"fetchFullDetails\": true,\n  \"maxItems\": 100\n}\n```\n\n### Example: all open jobs at a large employer\n\n```json\n{\n  \"mode\": \"byCompany\",\n  \"companyUrl\": \"https://www.gulftalent.com/companies/marriott-international-careers\",\n  \"fetchFullDetails\": false,\n  \"maxItems\": 1000\n}\n```\n\n### Example: mixed URLs\n\n```json\n{\n  \"mode\": \"byUrls\",\n  \"startUrls\": [\n    \"https://www.gulftalent.com/uae/jobs/finance-manager-651612\",\n    \"https://www.gulftalent.com/saudi-arabia/jobs/category/accounting\",\n    \"https://www.gulftalent.com/companies/hays-careers\"\n  ]\n}\n```\n\n### Example: salary benchmarks in USD\n\n```json\n{\n  \"mode\": \"salary\",\n  \"salaryTitles\": [\"accountant\", \"project manager\", \"civil engineer\"],\n  \"salaryCountry\": \"uae\",\n  \"salaryCurrency\": \"USD\",\n  \"maxItems\": 3\n}\n```\n\n## Usage cost\n\nYou 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.\n\n## FAQ\n\n**Do I need a GulfTalent account or API key?**\nNo. The actor reads public GulfTalent pages; no login, cookies or key are required.\n\n**Why do some jobs have no salary fields?**\nEmployers 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.\n\n**What is the difference between a job record and a salary record?**\nA 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.\n\n**Which countries have salary benchmarks?**\nGulfTalent 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.\n\n**How does `maxItems` interact with pagination?**\nThe 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.\n\n**Can I search several keywords at once?**\nYes — add them to `searchQueries`. Results from every keyword are de-duplicated by job ID, and `searchQuery` shows which keyword found each row.\n\n**Does `remoteOnly` use a server-side filter?**\nGulfTalent 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.\n\n**What does `byCompany` return for a large employer?**\nEvery 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.\n\n**Is this affiliated with GulfTalent?**\nNo. This is an independent third-party actor using public pages and is not affiliated with, endorsed by or sponsored by GulfTalent.\n\n## Notes\n\n- Empty values are omitted; there are no `null` fields to defend against.\n- `postedAt` and `validThrough` are ISO 8601 UTC. Detail pages sometimes publish date-only values, in which case the time is midnight UTC.\n- `applyUrl` is the canonical GulfTalent posting URL. External application links are not exposed by the source.\n- `salaryByCurrency` includes all ten benchmark currencies; the top-level percentile fields use `salaryCurrency` or the local currency.\n- Search totals change as employers add and remove postings, so two runs on different days can legitimately differ.\n\n## Limitations\n\n- Salary benchmarks exist only for GCC countries; the actor reports unsupported countries instead of inventing data.\n- 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.\n- GulfTalent does not publish recruiter emails or phone numbers. Those fields are deliberately not fabricated.\n- 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.\n- Some postings are country-wide ads with no city; `city` is therefore omitted for those records.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "gulftalent-job-listings-across-16-middle-east",
      "title": "GulfTalent Jobs & Salary Benchmarks",
      "description": "Search live GulfTalent jobs in 38 markets by keyword, country, category, industry, seniority, type, nationality, remote, Easy Apply, exclusive or date; pull a company's full careers page; or export salary benchmarks with percentiles and allowances.",
      "version": "2.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# GulfTalent Jobs & Salary Benchmarks\n\nGulfTalent 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.\n\n## What it does\n\n- **Searches jobs by keyword** across one or many queries and pages through the complete result set, de-duplicating repeated postings.\n- **Filters by country, city, category, industry, career level, employment type, nationality preference, remote, Easy Apply, exclusive and posting age.**\n- **Pulls every open job from one employer's GulfTalent careers page**, including large employers whose page embeds thousands of roles.\n- **Accepts pasted job, search and company URLs** and routes each one to the right collector.\n- **Exports salary benchmarks** — 10th/25th/50th/75th/90th percentiles, sample sizes, allowance percentages and related titles.\n- **Omits empty fields** at every depth: a posting that doesn't disclose a salary simply has no salary fields.\n\n## Services\n\n| Mode | What it returns |\n|---|---|\n| `search` | Job records for one or more keywords and any combination of filters |\n| `byCompany` | Every open job listed on one company's GulfTalent careers page |\n| `byUrls` | Records from a mixed list of job, search/listing and company URLs |\n| `salary` | Salary-benchmark records for one or more titles in one GCC country |\n\n## How it works\n\nThe 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.\n\nAll job URLs are normalised to canonical `https://www.gulftalent.com/...` links, and timestamps are returned in ISO 8601 UTC.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `search` | `search`, `byCompany`, `byUrls` or `salary` |\n| `searchQueries` | array | `[\"accountant\"]` | One or more keywords (`mode=search`). Empty = browse all jobs matching the filters |\n| `country` | string | `uae` | One of 38 GulfTalent markets, or empty for any country |\n| `city` | string | – | One of 30 cities; also selects the city's country |\n| `category` | string | – | One of 32 job categories |\n| `industry` | string | – | One of 39 hiring-company industries |\n| `careerLevel` | string | – | Fresh graduate, junior, experienced, manager or director |\n| `employmentTypes` | array | `[]` | Any of `full-time`, `part-time`, `contract`, `temporary`, `internship` |\n| `nationality` | string | – | One of six Gulf nationality preferences |\n| `remoteOnly` | boolean | `false` | Keep only remote-flagged postings |\n| `easyApplyOnly` | boolean | `false` | Keep only jobs with Easy Apply |\n| `exclusiveOnly` | boolean | `false` | Keep only GulfTalent-exclusive postings |\n| `postedWithinDays` | integer | `0` | 0–90; 0 means any age |\n| `includeKeywords` | array | `[]` | Keep jobs whose title/description/function contains any term |\n| `excludeKeywords` | array | `[]` | Drop jobs whose title/description/function contains any term |\n| `minSalary` / `maxSalary` | integer | – | Salary bounds in the job's own currency; undisclosed salaries are kept |\n| `fetchFullDetails` | boolean | `true` | Visit each job page for description, salary, address and preferences |\n| `maxItems` | integer | `25` | Hard record cap (1–10000) |\n| `companyUrl` | string | – | Company page URL or slug (`mode=byCompany`) |\n| `startUrls` | array | `[]` | Job, search or company URLs (`mode=byUrls`) |\n| `salaryTitles` | array | `[\"accountant\"]` | Titles to benchmark (`mode=salary`) |\n| `salaryCountry` | string | `uae` | UAE, Saudi Arabia, Qatar, Kuwait, Bahrain or Oman (`mode=salary`) |\n| `salaryCurrency` | string | – | Primary currency; empty uses the country's currency (`mode=salary`) |\n\n## Output per job\n\n- `jobId`, `title`, `referenceNumber`\n- `companyName`, `companyUrl`, `companyLogoUrl`, `companyId`, `companyConfidential`\n- `country`, `countrySlug`, `city`, `location`, `area`, `streetAddress`, `addressRegion`, `postalCode`\n- `salaryMin`, `salaryMax`, `salaryCurrency`, `salaryPeriod`, `salaryLabel`, `salaryText`\n- `employmentType`, `jobFunction`, `categoryId`, `careerLevel`, `careerLevelId`\n- `companyIndustry`, `industryId`, `nationalityPreference`, `genderPreference`, `arabicFluency`\n- `isRemote`, `isExclusive`, `easyApply`, `applyUrl`\n- `description`, `descriptionHtml`, `companyDescription`, `similarJobUrls`\n- `postedAt`, `validThrough`, `sourceUrl`, `searchQuery`\n- `companyJobCount` — total open jobs on that employer's page (`byCompany`)\n- `recordType: \"job\"`, `scrapedAt`\n\n## Output per salary record\n\n- `title`, `titleSlug`, `jobTitleId`, `country`, `countrySlug`\n- `currency`, `currencyName`, `salaryPeriod` (`month`)\n- `percentile10`, `percentile25`, `median`, `percentile75`, `percentile90`\n- `sampleSize`, `companyCount`, `industryCount`, `batchDate`\n- `salaryByCurrency` — all ten currencies with the same percentile bands\n- `allowanceHousingPct`, `allowanceTransportPct`, `allowanceOtherPct`\n- `relatedTitles[]` — `title`, `slug`, `median`, `currency`\n- `sourceUrl`, `recordType: \"salary\"`, `scrapedAt`\n\n### Example: multi-keyword search with filters\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"accountant\", \"financial analyst\"],\n  \"country\": \"uae\",\n  \"city\": \"dubai\",\n  \"careerLevel\": \"experienced\",\n  \"postedWithinDays\": 30,\n  \"fetchFullDetails\": true,\n  \"maxItems\": 100\n}\n```\n\n### Example: all open jobs at a large employer\n\n```json\n{\n  \"mode\": \"byCompany\",\n  \"companyUrl\": \"https://www.gulftalent.com/companies/marriott-international-careers\",\n  \"fetchFullDetails\": false,\n  \"maxItems\": 1000\n}\n```\n\n### Example: mixed URLs\n\n```json\n{\n  \"mode\": \"byUrls\",\n  \"startUrls\": [\n    \"https://www.gulftalent.com/uae/jobs/finance-manager-651612\",\n    \"https://www.gulftalent.com/saudi-arabia/jobs/category/accounting\",\n    \"https://www.gulftalent.com/companies/hays-careers\"\n  ]\n}\n```\n\n### Example: salary benchmarks in USD\n\n```json\n{\n  \"mode\": \"salary\",\n  \"salaryTitles\": [\"accountant\", \"project manager\", \"civil engineer\"],\n  \"salaryCountry\": \"uae\",\n  \"salaryCurrency\": \"USD\",\n  \"maxItems\": 3\n}\n```\n\n## Usage cost\n\nYou 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.\n\n## FAQ\n\n**Do I need a GulfTalent account or API key?**\nNo. The actor reads public GulfTalent pages; no login, cookies or key are required.\n\n**Why do some jobs have no salary fields?**\nEmployers 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.\n\n**What is the difference between a job record and a salary record?**\nA 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.\n\n**Which countries have salary benchmarks?**\nGulfTalent 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.\n\n**How does `maxItems` interact with pagination?**\nThe 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.\n\n**Can I search several keywords at once?**\nYes — add them to `searchQueries`. Results from every keyword are de-duplicated by job ID, and `searchQuery` shows which keyword found each row.\n\n**Does `remoteOnly` use a server-side filter?**\nGulfTalent 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.\n\n**What does `byCompany` return for a large employer?**\nEvery 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.\n\n**Is this affiliated with GulfTalent?**\nNo. This is an independent third-party actor using public pages and is not affiliated with, endorsed by or sponsored by GulfTalent.\n\n## Notes\n\n- Empty values are omitted; there are no `null` fields to defend against.\n- `postedAt` and `validThrough` are ISO 8601 UTC. Detail pages sometimes publish date-only values, in which case the time is midnight UTC.\n- `applyUrl` is the canonical GulfTalent posting URL. External application links are not exposed by the source.\n- `salaryByCurrency` includes all ten benchmark currencies; the top-level percentile fields use `salaryCurrency` or the local currency.\n- Search totals change as employers add and remove postings, so two runs on different days can legitimately differ.\n\n## Limitations\n\n- Salary benchmarks exist only for GCC countries; the actor reports unsupported countries instead of inventing data.\n- 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.\n- GulfTalent does not publish recruiter emails or phone numbers. Those fields are deliberately not fabricated.\n- 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.\n- Some postings are country-wide ads with no city; `city` is therefore omitted for those records.\n",
      "input": {
        "title": "GulfTalent Jobs & Salary Benchmarks Input",
        "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.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "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"
            ],
            "default": "search",
            "prefill": "search"
          },
          "searchQueries": {
            "title": "Search keywords (mode=search)",
            "type": "array",
            "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",
            "default": [
              "accountant"
            ],
            "prefill": [
              "accountant"
            ]
          },
          "country": {
            "title": "Country",
            "type": "string",
            "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"
            ],
            "default": "uae",
            "prefill": "uae"
          },
          "city": {
            "title": "City",
            "type": "string",
            "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)"
            ],
            "default": "",
            "prefill": ""
          },
          "category": {
            "title": "Job category",
            "type": "string",
            "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"
            ],
            "default": "",
            "prefill": ""
          },
          "industry": {
            "title": "Company industry",
            "type": "string",
            "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"
            ],
            "default": "",
            "prefill": ""
          },
          "careerLevel": {
            "title": "Career level",
            "type": "string",
            "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"
            ],
            "default": "",
            "prefill": ""
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Any of: full-time, part-time, contract, temporary, internship. Leave empty for all types.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "nationality": {
            "title": "Nationality preference",
            "type": "string",
            "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"
            ],
            "default": "",
            "prefill": ""
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only postings GulfTalent flags as remote.",
            "default": false,
            "prefill": false
          },
          "easyApplyOnly": {
            "title": "Easy Apply only",
            "type": "boolean",
            "description": "Keep only jobs that can be applied for on GulfTalent.",
            "default": false,
            "prefill": false
          },
          "exclusiveOnly": {
            "title": "Exclusive jobs only",
            "type": "boolean",
            "description": "Keep only GulfTalent-exclusive postings.",
            "default": false,
            "prefill": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "type": "integer",
            "description": "Only jobs posted in the last N days. 0 means any age.",
            "minimum": 0,
            "maximum": 90,
            "default": 0,
            "prefill": 0
          },
          "includeKeywords": {
            "title": "Must contain keywords",
            "type": "array",
            "description": "Keep only jobs whose title, description or job function contains any of these terms (case-insensitive).",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs whose title, description or job function contains any of these terms (case-insensitive).",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "minSalary": {
            "title": "Minimum salary",
            "type": "integer",
            "description": "Drop jobs below this salary in the job's own currency. Jobs without a disclosed salary are kept.",
            "minimum": 0,
            "maximum": 10000000
          },
          "maxSalary": {
            "title": "Maximum salary",
            "type": "integer",
            "description": "Drop jobs above this salary in the job's own currency. Jobs without a disclosed salary are kept.",
            "minimum": 0,
            "maximum": 10000000
          },
          "fetchFullDetails": {
            "title": "Fetch full details",
            "type": "boolean",
            "description": "Visit each job page for the full description, salary, address and preference fields. Turn off for the fastest, cheapest listing-only runs.",
            "default": true,
            "prefill": false
          },
          "maxItems": {
            "title": "Max records",
            "type": "integer",
            "description": "Hard cap on emitted records (1-10000).",
            "minimum": 1,
            "maximum": 10000,
            "default": 25,
            "prefill": 3
          },
          "companyUrl": {
            "title": "Company careers URL or slug (mode=byCompany)",
            "type": "string",
            "description": "A GulfTalent company page such as https://www.gulftalent.com/companies/marriott-international-careers or just marriott-international-careers.",
            "editor": "textfield",
            "default": "",
            "prefill": ""
          },
          "startUrls": {
            "title": "Start URLs (mode=byUrls)",
            "type": "array",
            "description": "Job detail URLs, search/listing URLs or company careers URLs.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "salaryTitles": {
            "title": "Salary titles (mode=salary)",
            "type": "array",
            "description": "Job titles to benchmark, e.g. accountant or project manager.",
            "editor": "stringList",
            "default": [
              "accountant"
            ],
            "prefill": [
              "accountant"
            ]
          },
          "salaryCountry": {
            "title": "Salary country (mode=salary)",
            "type": "string",
            "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"
            ],
            "default": "uae",
            "prefill": "uae"
          },
          "salaryCurrency": {
            "title": "Salary currency (mode=salary)",
            "type": "string",
            "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"
            ],
            "default": "",
            "prefill": ""
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "GulfTalent Jobs & Salary Benchmarks Output",
        "description": "GulfTalent job records with company, location, salary, description and application fields, plus salary-benchmark records with percentiles, sample sizes and allowances.",
        "properties": {
          "jobs": {
            "type": "string",
            "title": "GulfTalent jobs & salary records",
            "description": "Dataset containing scraped GulfTalent job listings and salary benchmark records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "defaultMemoryMbytes": 1024,
      "minMemoryMbytes": 1024,
      "maxMemoryMbytes": 1024,
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Jobs & salary records",
              "transformation": {
                "fields": [
                  "recordType",
                  "title",
                  "companyName",
                  "country",
                  "city",
                  "salaryMin",
                  "salaryMax",
                  "salaryCurrency",
                  "median",
                  "sampleSize",
                  "postedAt",
                  "sourceUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "2.0.1",
    "imageDigest": "af5dca4a89c46dbbf5fb0e59cf6c60edbdbed409342daeecefa9c07020f76ca8",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "2.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.004818888888888889
    }
  }
}