{
  "openapi": "3.0.1",
  "info": {
    "title": "Naukrigulf Jobs Scraper - Gulf Jobs, Salaries & Recruiters",
    "description": "Scrape Naukrigulf.com jobs in the UAE, Saudi Arabia, Qatar, Kuwait, Oman, Bahrain and more by keyword, location, filters or URL: full description, skills, experience, salary in local currency and USD, nationality, recruiter contact. Monitor mode. $0.63 per 1,000 jobs.",
    "version": "0.1",
    "x-build-id": "M8GQgY56ZD1ITdPys"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/topapi~naukrigulf-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-topapi-naukrigulf-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/topapi~naukrigulf-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-topapi-naukrigulf-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/topapi~naukrigulf-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-topapi-naukrigulf-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Job titles, skills or company names, one per line (e.g. accountant, civil engineer, nurse). Each keyword is searched in every location below. Leave empty to list every job of the location (or the whole site). A Naukrigulf URL pasted here works too.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities or countries, one per line (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait, Muscat, Manama, Cairo, UAE, Saudi Arabia ...). Naukrigulf reads the place name itself. Leave empty for all 25+ countries the site lists.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Naukrigulf URLs",
            "type": "array",
            "description": "Any Naukrigulf search URL from your browser (e.g. https://www.naukrigulf.com/accountant-jobs-in-dubai?freshness=7, its filters are kept), job URLs or job ids (read as full rows), and company pages (all their open jobs). A link to a text file with one URL per line also works.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum jobs for the whole run (0 = no limit). Rows already delivered before a restart count against it.",
            "default": 50
          },
          "maxItemsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap per keyword x location search (or per URL / company)."
          },
          "includeDetails": {
            "title": "Include full job record",
            "type": "boolean",
            "description": "Read every job's full record from Naukrigulf: salary (employer's local range, USD conversion, USD band, benefits), industry, functional area, employment type, work mode (on-site / remote), localities, education, nationality and gender asked for, desired candidate profile, company type / profile / website, recruiter name, designation, email, city, country, address, website. Charged as job-details instead of job. Without it, every row still has the full description, summary, highlights, skills, experience and posted time.",
            "default": false
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Naukrigulf's own order.",
            "default": "relevance"
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Only jobs posted in the last N days: Naukrigulf's own freshness filter (1, 3, 7, 15, 30, 60) plus an exact cut on each job's posted time, before anything is charged."
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Only jobs posted after this date or time (2026-10-01 or 2026-10-01T08:00:00Z), checked before the charge."
          },
          "postedBefore": {
            "title": "Posted before",
            "type": "string",
            "description": "Only jobs posted on or before this date or time, checked before the charge."
          },
          "experienceYears": {
            "title": "Your experience (years)",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Only jobs whose required experience range includes this many years (Naukrigulf's own filter)."
          },
          "experienceBands": {
            "title": "Experience band",
            "type": "array",
            "description": "Naukrigulf's experience filter.",
            "items": {
              "type": "string",
              "enum": [
                "0",
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "0 - 1 year",
                "2 - 5 years",
                "6 - 10 years",
                "11 - 15 years",
                "16 - 20 years",
                "Above 20 years"
              ]
            }
          },
          "salaryBands": {
            "title": "Monthly salary (USD)",
            "type": "array",
            "description": "Naukrigulf's salary filter (monthly, US dollars).",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12",
                "13",
                "14",
                "15"
              ],
              "enumTitles": [
                "Less than $500",
                "$501 - $1,000",
                "$1,001 - $2,000",
                "$2,001 - $3,000",
                "$3,001 - $4,000",
                "$4,001 - $5,000",
                "$5,001 - $6,000",
                "$6,001 - $7,000",
                "$7,001 - $8,000",
                "$8,001 - $9,000",
                "$9,001 - $10,000",
                "$10,001 - $15,000",
                "$15,001 - $30,000",
                "$30,001 - $50,000",
                "Above $50,000"
              ]
            }
          },
          "minSalaryUsd": {
            "title": "Minimum monthly salary (USD)",
            "minimum": 1,
            "type": "integer",
            "description": "Picks Naukrigulf's salary bands from this amount up; with the full record on, the exact USD salary is checked too, before the charge."
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Naukrigulf industry names or ids, one per line (e.g. IT, Construction, Banking and Finance, Hospitality, Oil and Gas, 25). A name is matched against Naukrigulf's own industry list for your search.",
            "items": {
              "type": "string"
            }
          },
          "functionalAreas": {
            "title": "Functional areas",
            "type": "array",
            "description": "Naukrigulf job-function names or ids, one per line (e.g. Engineering, IT Software, Sales / Business Development, Accounts / Taxation / Audit / Company Secretary).",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Country filter",
            "type": "array",
            "description": "Naukrigulf's country filter (names or ids: UAE, Saudi Arabia, Qatar, Kuwait, Oman, Bahrain, Egypt, Lebanon ...). Use it with a keyword search to narrow without a location.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "City filter",
            "type": "array",
            "description": "Naukrigulf's city filter (names or ids: Dubai, Abu Dhabi, Sharjah, Riyadh, Jeddah, Doha, Muscat, Cairo ...).",
            "items": {
              "type": "string"
            }
          },
          "nationalities": {
            "title": "Nationality asked for",
            "type": "array",
            "description": "Naukrigulf's nationality filter.",
            "items": {
              "type": "string",
              "enum": [
                "991",
                "992",
                "993",
                "994",
                "995",
                "996",
                "999",
                "7"
              ],
              "enumTitles": [
                "GCC nationals",
                "Arab nationals",
                "Europeans / CIS",
                "Indians",
                "Filipinos",
                "Anglophones",
                "Other nationalities",
                "Any nationality"
              ]
            }
          },
          "genders": {
            "title": "Gender asked for",
            "type": "array",
            "description": "Naukrigulf's gender filter.",
            "items": {
              "type": "string",
              "enum": [
                "male",
                "female",
                "any",
                "nm"
              ],
              "enumTitles": [
                "Male",
                "Female",
                "Any",
                "Not mentioned"
              ]
            }
          },
          "postedBy": {
            "title": "Posted by",
            "enum": [
              "any",
              "company",
              "consultant"
            ],
            "type": "string",
            "description": "Direct employers or recruitment consultants (Naukrigulf's own filter).",
            "default": "any"
          },
          "easyApplyOnly": {
            "title": "Easy apply only",
            "type": "boolean",
            "description": "Only jobs with Naukrigulf's easy apply.",
            "default": false
          },
          "jobTitles": {
            "title": "Standard job titles",
            "type": "array",
            "description": "Naukrigulf's own job-title filter (names or ids, e.g. Accountant, Sales Executive, Project Manager).",
            "items": {
              "type": "string"
            }
          },
          "companyIds": {
            "title": "Company ids",
            "type": "array",
            "description": "Naukrigulf company ids (the companyId of a row): all open jobs of each company.",
            "items": {
              "type": "string"
            }
          },
          "excludeConfidential": {
            "title": "Hide confidential companies",
            "type": "boolean",
            "description": "Skip jobs whose company is hidden as 'Confidential', before the charge.",
            "default": false
          },
          "companyNames": {
            "title": "Only these companies",
            "type": "array",
            "description": "Keep only jobs whose company name contains one of these words, before the charge.",
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "type": "array",
            "description": "Skip jobs whose company name contains one of these words, before the charge.",
            "items": {
              "type": "string"
            }
          },
          "includeKeywords": {
            "title": "Must contain",
            "type": "array",
            "description": "Keep only jobs whose title, company or skills contain one of these words, before the charge.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Skip jobs whose title, company or skills contain one of these words, before the charge.",
            "items": {
              "type": "string"
            }
          },
          "withSalaryOnly": {
            "title": "Only jobs with a published salary",
            "type": "boolean",
            "description": "Needs the full record. Skips jobs without a published salary, before the charge.",
            "default": false
          },
          "workModes": {
            "title": "Work mode",
            "type": "array",
            "description": "Needs the full record.",
            "items": {
              "type": "string",
              "enum": [
                "on-site",
                "remote",
                "hybrid"
              ],
              "enumTitles": [
                "On-site",
                "Remote",
                "Hybrid"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Needs the full record.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "temporary",
                "internship",
                "freelance"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contract",
                "Temporary",
                "Internship",
                "Freelance"
              ]
            }
          },
          "excludeNationalityRestricted": {
            "title": "Hide jobs limited to some nationalities",
            "type": "boolean",
            "description": "Needs the full record. Skips jobs that ask for specific nationalities.",
            "default": false
          },
          "excludeGenderRestricted": {
            "title": "Hide jobs limited to one gender",
            "type": "boolean",
            "description": "Needs the full record. Skips jobs that ask for one gender.",
            "default": false
          },
          "monitorMode": {
            "title": "Monitor mode (only new jobs)",
            "type": "boolean",
            "description": "Deliver only jobs that no earlier run with the same monitor store delivered. Each search reads Naukrigulf's newest-first order and stops at the first page with nothing new, so a scheduled poll costs almost nothing when nothing changed.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that remembers delivered jobs. Use one name per saved search.",
            "default": "naukrigulf-jobs-monitor"
          },
          "resetMonitor": {
            "title": "Reset monitor memory",
            "type": "boolean",
            "description": "Forget earlier runs and deliver everything again.",
            "default": false
          },
          "skipReposts": {
            "title": "Skip reposts",
            "type": "boolean",
            "description": "Skip a job whose title, company and city match one already delivered (in this run or, in monitor mode, earlier runs).",
            "default": false
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "all",
              "text",
              "html",
              "markdown"
            ],
            "type": "string",
            "description": "Which description fields to include.",
            "default": "all"
          },
          "descriptionMaxLength": {
            "title": "Description max length",
            "minimum": 0,
            "type": "integer",
            "description": "Cut long texts to this many characters (0 = full text).",
            "default": 0
          },
          "compact": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Only the core fields (id, title, company, location, country, salary, experience, employment type, work mode, posted time, URL).",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "Drop empty fields",
            "type": "boolean",
            "description": "Leave out fields that are null or empty.",
            "default": false
          },
          "language": {
            "title": "Site language",
            "enum": [
              "en",
              "ar"
            ],
            "type": "string",
            "description": "English (www.naukrigulf.com) or Arabic (arabic.naukrigulf.com, Arabic keywords and labels).",
            "default": "en"
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "POST the new jobs of each run (JSON) to this URL."
          },
          "webhookHeaders": {
            "title": "Webhook headers",
            "type": "object",
            "description": "Extra headers for the webhook, e.g. an Authorization header."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "Incoming-webhook URL of a Slack channel."
          },
          "discordWebhookUrl": {
            "title": "Discord webhook URL",
            "type": "string",
            "description": "Webhook URL of a Discord channel."
          },
          "telegramToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "Bot token from @BotFather."
          },
          "telegramChatId": {
            "title": "Telegram chat id",
            "type": "string",
            "description": "Chat or channel id the bot posts to."
          },
          "whatsappPhoneNumberId": {
            "title": "WhatsApp phone number id",
            "type": "string",
            "description": "WhatsApp Cloud API sender id."
          },
          "whatsappAccessToken": {
            "title": "WhatsApp access token",
            "type": "string",
            "description": "WhatsApp Cloud API token."
          },
          "whatsappTo": {
            "title": "WhatsApp recipient",
            "type": "string",
            "description": "Recipient phone number with country code."
          },
          "notificationLimit": {
            "title": "Jobs per alert",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "How many jobs each alert lists.",
            "default": 10
          },
          "notifyOnlyChanges": {
            "title": "Alert only when there are new jobs",
            "type": "boolean",
            "description": "Skip the alert when a run delivered nothing.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Job records read at once (search pages: up to 4 at once).",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. By default the actor picks its own route to Naukrigulf. Your own proxy URLs are tried first."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}