# Naukri Gulf Jobs Scraper (`hgservices/naukrigulf-jobs-scraper`) Actor

Collect public Naukrigulf.com job listings into structured datasets. Search by keyword, location, filters, saved search URL, or job IDs, and get job titles, companies, salaries, experience, skills, and optional full job details.

- **URL**: https://apify.com/hgservices/naukrigulf-jobs-scraper.md
- **Developed by:** [Harish Garg](https://apify.com/hgservices) (community)
- **Categories:** Jobs, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 job listing results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## NaukriGulf Jobs Scraper

### What does NaukriGulf Jobs Scraper do?

**NaukriGulf Jobs Scraper collects public job listings from [NaukriGulf.com](https://www.naukrigulf.com) into a clean, ready-to-use dataset.** Search by job title, skill, company, or Gulf location, then receive useful vacancy details such as the role, employer, location, experience, salary, posting date, key skills, and full job description.

Use it to track the Gulf job market, discover new openings across the UAE, Saudi Arabia, Qatar, and other GCC countries, benchmark salaries, or power your own recruitment workflows. Run it on demand or on a schedule, then access results through Apify's API, integrations, exports, monitoring, and optional proxy infrastructure.

### Why use NaukriGulf Jobs Scraper?

- **Find relevant Gulf opportunities quickly** - search for roles such as software engineer, accountant, driver, nurse, or any skill and location combination.
- **Track the Gulf job market** - follow new postings, remote and on-site roles, salary ranges, experience requirements, and employer activity.
- **Bring data into your workflow** - export results or connect them to Google Sheets, Make, Zapier, and other Apify integrations.
- **Choose the detail level you need** - collect search results only for fast discovery, or include full job details for deeper analysis.
- **Repeatable job monitoring** - schedule a run to check for newly posted roles every day, week, or at another interval that suits your process.

### How to scrape NaukriGulf job listings

1. Open the Actor and select the **Input** tab.
2. Enter a keyword, such as `software engineer`, and optionally add a location, such as `Dubai`.
3. Refine the search with filters for posting date, experience, salary range, industry, functional area, and sort order.
4. Set the maximum number of job listings to collect and whether to include detailed job information.
5. Click **Start**. View the results in the **Dataset** tab or download them when the run finishes.

You can also paste a NaukriGulf search URL to reuse a search you have already configured on the website, or provide job IDs when you need specific listings.

### Input

Set up the Actor in the **Input** tab. The most useful fields are:

| Field | What it does |
|---|---|
| `keyword` | Job title, skill, or search phrase to find. |
| `location` | Optional city or Gulf country, for example `Dubai` or `Qatar`. |
| `searchUrl` | A NaukriGulf search URL whose selected filters you want to reuse. |
| `jobIds` | Specific 12-digit NaukriGulf job IDs to collect directly. |
| `freshness` | Limit results to jobs posted within the last 24 hours to 60 days. |
| `sortBy` | Order results by relevance or newest posting date. |
| `experience` | Target a years-of-experience bucket (0-1 up to 20+). |
| `salaryRange` | Filter by monthly salary bucket (USD). |
| `industryId` | NaukriGulf industry filter ID (for example `25` for IT). |
| `functionalAreaId` | NaukriGulf functional area filter ID. |
| `nationalityId` | NaukriGulf nationality cluster filter ID. |
| `maxItems` | Maximum number of job listings to include in the dataset (minimum 25). |
| `getJobDetails` | Include job descriptions, skills, education, company about, and contact details. |

If you provide job IDs, they take priority. If you provide a search URL, its search criteria take priority over manually entered search filters (except Sort by).

### Output

Every dataset record represents one NaukriGulf job listing. Available fields can include the job title, company, link, location, experience, salary, posting time, key skills, full description, education, employment type, work mode, and company information where available.

```json
{
  "jobId": "180826001011",
  "title": "Software Engineer - (Hybrid Mobile App Developer flutter & react)",
  "company": "Dicetek LLC",
  "url": "https://www.naukrigulf.com/software-engineer-jobs-in-dubai-uae-in-dicetek-llc-5-to-10-years-m-cd-41691-jid-180826001011",
  "location": "Dubai - United Arab Emirates (UAE)",
  "experience": "5-10 Yrs",
  "salary": "Not disclosed",
  "postedAt": "2026-08-18 12:29:21",
  "keySkills": ["Mobile Application Architect", "Flutter/React Native Developer", "API Integration"],
  "employmentType": "Full-time",
  "workMode": "On-site"
}
```

You can download the dataset in various formats such as **JSON, HTML, CSV, or Excel**.

### Data table

| Field | Description |
|---|---|
| `jobId` | Identifier for the job listing. |
| `title` | Job title (designation). |
| `company` | Hiring company. |
| `url` | Link to the job listing. |
| `location` | Job location. |
| `experience` | Required experience range. |
| `experienceMin` / `experienceMax` | Numeric experience bounds. |
| `salary` / `salaryMin` / `salaryMax` | Salary information when available. |
| `salaryCurrency` | Salary country/currency context. |
| `postedAt` | Date and time the job was posted. |
| `workMode` | On-site, remote, or hybrid information when available. |
| `employmentType` | Employment type (full-time, part-time, ...). |
| `descriptionPlain` | Readable job description when detailed collection is enabled. |
| `keySkills` | Skills listed for the role. |
| `education` | Education requirements when available. |
| `nationality` | Desired candidate nationality when available. |
| `industry` | Industry of the role. |
| `functionalArea` | Functional area of the role. |
| `vacancies` | Number of open vacancies. |
| `companyAbout` | About the hiring company. |
| `companyWebsite` | Company website when available. |
| `contactEmail` | Recruiter contact email when available. |

### How much does it cost to scrape NaukriGulf jobs?

The cost depends on the number of listings you collect and whether you include detailed job information. Start with a small search to estimate the cost for your use case, then use **max items** or a maximum run-cost limit to stay within budget. Apify's free tier may be enough to try a small run before you scale up.

### Tips for better job-search data

- For daily job alerts, select recent postings, sort by date, and schedule recurring runs.
- Use a specific keyword and location to reduce unrelated results.
- Collect listing data only when you need a broad market overview; include job details for richer analysis.
- Use `maxItems` to create predictable, focused datasets.
- Paste a saved NaukriGulf search URL when you want to repeat a more complex search.

### FAQ, disclaimer, and support

#### Can I use this for recruitment or market research?

Yes. It is useful for job discovery, hiring-market research, salary benchmarking, and internal reporting. Always make sure your intended use complies with applicable laws, the source website's terms, and privacy requirements.

#### Why are some fields blank?

Job listings do not always include every detail. Salary, work mode, company data, education requirements, and other optional fields may be unavailable for a particular listing.

#### Where can I get help?

For feedback, questions, or a custom data-collection solution, use the Actor's **Issues** tab or contact the author through the Actor page.

# Actor input Schema

## `keyword` (type: `string`):

Job title, role or keyword to search on NaukriGulf, e.g. "software engineer", "accountant", "driver". Ignored when Search URL or Job IDs are provided.

## `location` (type: `string`):

City or Gulf country to restrict results to, e.g. "Dubai", "Riyadh", "Qatar". Leave empty for all Gulf countries. Ignored when Search URL or Job IDs are provided.

## `searchUrl` (type: `string`):

Paste a full NaukriGulf search results URL, e.g. https://www.naukrigulf.com/software-engineer-jobs-in-dubai?Freshness=7. Filters set on the site are applied automatically and override the manual filters below (except Sort by). Ignored when Job IDs are provided.

## `jobIds` (type: `array`):

12-digit NaukriGulf job IDs to fetch directly (overrides keyword, location, Search URL and all filters). Extract them from any NaukriGulf job URL (the ...jid-XXXXXXXXXXXX suffix).

## `freshness` (type: `string`):

Only jobs posted within the chosen window.

## `sortBy` (type: `string`):

Sort order of search results. "Date" returns newest jobs first and also works together with Search URL.

## `experience` (type: `string`):

Required years of experience bucket. Leave empty for any.

## `salaryRange` (type: `array`):

Monthly salary buckets in USD. Leave empty for any. Bucket values are passed straight to the NaukriGulf CTC filter.

## `industryId` (type: `string`):

NaukriGulf industry filter ID, e.g. "25" for IT, "7" for Banking and Finance, "42" for Recruitment. Leave empty for any. Find more IDs in the search clusters of a result set.

## `functionalAreaId` (type: `string`):

NaukriGulf functional area filter ID, e.g. "16" for IT Software, "38" for Engineering. Leave empty for any.

## `nationalityId` (type: `string`):

NaukriGulf nationality cluster filter ID, e.g. "991" for GCC Nationals, "992" for Arab Nationals. Leave empty for any.

## `maxItems` (type: `integer`):

Maximum number of jobs to collect (minimum 25). Each result page returns up to 25 jobs.

## `getJobDetails` (type: `boolean`):

When enabled, fetches the full job description, salary breakdown, desired candidate profile, education, company about and contact details for every job (slower, charged as detailed items). Disable for quick listing-only runs.

## Actor input object example

```json
{
  "keyword": "software engineer",
  "freshness": "",
  "sortBy": "relevance",
  "experience": "",
  "maxItems": 100,
  "getJobDetails": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

All scraped NaukriGulf job listings with full details, as JSON items in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keyword": "software engineer"
};

// Run the Actor and wait for it to finish
const run = await client.actor("hgservices/naukrigulf-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keyword": "software engineer" }

# Run the Actor and wait for it to finish
run = client.actor("hgservices/naukrigulf-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "software engineer"
}' |
apify call hgservices/naukrigulf-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hgservices/naukrigulf-jobs-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/2eKAgy0KTfnCMw3ax/builds/Jktg7qOSoJXtw62Cg/openapi.json
