GCC Jobs API — Bayt, Naukrigulf and GulfTalent in One Search avatar

GCC Jobs API — Bayt, Naukrigulf and GulfTalent in One Search

Pricing

$1.10 / 1,000 job records

Go to Apify Store
GCC Jobs API — Bayt, Naukrigulf and GulfTalent in One Search

GCC Jobs API — Bayt, Naukrigulf and GulfTalent in One Search

Get current job listings in the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman from Bayt, Naukrigulf and GulfTalent with one HTTP call or MCP tool. Filter by city, salary and posting date, flag likely cross-board duplicates and follow new and expired jobs.

Pricing

$1.10 / 1,000 job records

Rating

0.0

(0)

Developer

Black Falcon Data

Black Falcon Data

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

What does GCC Jobs API do?

GCC Jobs API searches current jobs from Bayt, Naukrigulf and GulfTalent in six Gulf countries. One HTTP call or one MCP tool covers the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. Filter by country, city, monthly salary in US dollars and posting date. Get any job back with its full description. Flag openings that look posted on more than one board. Follow new and expired jobs through a change list. There is no run to start: the jobs are already indexed.

How to use this actor

  • 👉 Register for a free Apify account — no credit card required.
  • 🎉 Just click Sign up free on Apify → and complete a quick signup.
  • 💰 A free Apify account includes $5 in monthly credits — enough to test this actor.
  • ⏳ Scrape during the free trial, with no commitment or upfront payment required.

Key features

  • ⚡ One HTTP call, no run to start: search, a single job and the change list are plain GET endpoints on an always-on server, all answering JSON. There is no run to start, nothing to poll and no dataset to read afterwards, and every parameter is a query string, so a spreadsheet, a notebook, an n8n flow or a bot can call it directly.
  • 🧭 Bayt, Naukrigulf and GulfTalent in one search: one keyword searches the current listings of all three boards at once, newest first, across the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. Every job keeps its board, its own id and a link to the original posting, and the fields are the same whichever board it came from: title, company, location, city, category, industry, posting date, salary and a short summary.
  • 🤖 MCP tools for AI agents: Point Claude, Cursor or any MCP client at /mcp and the agent gets three tools: search_jobs, get_job and list_changes. Search answers with compact rows sized for a context window; get_job returns one listing as Markdown with its complete description, so the agent reads the full text only for the jobs it picked.
  • 🎯 Filter by country, city, salary and date: narrow any search with country (AE, SA, QA, KW, BH, OM), city, postedWithinDays (1 to 60) and salaryMin, a monthly amount in US dollars that compares salaries posted in AED, SAR, QAR and the other Gulf currencies on one scale. A job that posts no salary is left out when salaryMin is set.
  • 🔗 Likely cross-board duplicates flagged: when the same opening appears to be posted on another board too, the job carries possibleDuplicates with that board, its id and its link. It is a hint and nothing is merged or dropped, so you decide whether two postings are one job.
  • 🔄 Follow new, updated and expired jobs: /changes lists every job that was added, changed or taken down since your last cursor, oldest first, so a local copy or an alert flow stays in sync without re-reading the whole index. A job is marked expired when its board closes it, or when a complete pass over its board and country no longer finds it.
  • 📤 Export anywhere: every answer is JSON with a stable key set, and paging is a cursor you pass back as it came. Call it from a spreadsheet, a notebook, an n8n or Make flow, or straight from an AI agent, and pipe the response wherever you need it.

Each result includes Core job fields (id, board, country, title, location, category, industry, and postedAt, and more) and company metadata (company). All fields are always present — unavailable data points are returned as null, never omitted.

Input

Configure the actor through the input schema in Apify Console.

Output

Every request answers with structured job records as JSON in the response body. There is no run to start and no dataset to poll.

Example job record

{
"id": "naukrigulf-271026000350",
"board": "naukrigulf",
"country": "AE",
"title": "environmental engineer / environmental consultant",
"company": "Confidential Company",
"location": "Dubai - United Arab Emirates (UAE)",
"category": "Engineering",
"industry": "Water Treatment / De-Salination / Waste Management",
"postedAt": "2026-10-27T17:17:49.000Z",
"url": "https://www.naukrigulf.com/environmental-engineer-environmental-consultant-jobs-in-dubai-uae-in-confidential-2-to-8-years-n-jid-271026000350",
"city": "Dubai",
"su": 0,
"summary": "A. Hazardous Waste Management & Treatment - Evaluate, characterize and classify hazardous and non-hazardous industrial waste streams. - Recommend appropriate physical, chemical, biological and other…"
}

How to answer searches

  1. Go to GCC Jobs API in Apify Console.
  2. Configure the input.
  3. Click Start and wait for the run to finish.
  4. Export the dataset as JSON, CSV, or Excel.

Use cases

  • Extract job data from bayt.com for market research and competitive analysis.
  • Track salary trends across regions and categories over time.
  • Research company hiring patterns, employer profiles, and industry distribution.
  • Export clean, structured data to dashboards, spreadsheets, or data warehouses.

How much does it cost to answer searches?

GCC Jobs API uses pay-per-event pricing. Starting a run is free — you pay only for each result that is actually produced.

  • Per result: $0.0011 per job record

Example costs:

  • 10 results: $0.011
  • 25 results: $0.028
  • 100 results: $0.11
  • 200 results: $0.22
  • 500 results: $0.55

FAQ

How many searches can I check per run?

Every search in your input list is checked — there is no fixed cap, so the number of searches per run is limited only by your list size and the run's time budget.

Can I integrate GCC Jobs API with other apps?

Yes. GCC Jobs API works with Apify's integrations to connect with tools like Zapier, Make, Google Sheets, Slack, and more. You can also use webhooks to trigger actions when a run completes.

Can I use GCC Jobs API with the Apify API?

Yes. You can start runs, manage inputs, and retrieve results programmatically through the Apify API. Client libraries are available for JavaScript, Python, and other languages.

Can I use GCC Jobs API through an MCP Server?

Yes. Apify provides an MCP Server that lets AI assistants and agents call this actor directly. Use narrow filters and the actor's result limit to keep payloads manageable for LLM context windows.

This actor queries publicly available data for the searches you provide. You remain responsible for ensuring your use complies with applicable laws, source terms, and downstream obligations.

Your feedback

If you have questions, need a feature, or found a bug, please open an issue on the actor's page in Apify Console. Your feedback helps us improve.

You might also like

Getting started with Apify

New to Apify? Create a free account with $5 credit — no credit card required.

  1. Sign up — $5 platform credit included
  2. Open this actor and configure your input
  3. Click Start — export results as JSON, CSV, or Excel

Need more later? See Apify pricing.

Endpoints

Every endpoint is a GET, every parameter is a query string, and every answer is JSON. Send Authorization: Bearer <APIFY_TOKEN> (or append ?token=<APIFY_TOKEN>) to authenticate. The base address is https://blackfalcondata--gcc-jobs-api.apify.actor. The full parameter list is on the Endpoints tab.

EndpointWhat it returnsBilled
/healthVersion, and that the server is upFree
/statsHow many jobs the index holds, per board and per country, and when it was builtFree
/searchJobs matching every word of q in the title, company or category, newest first. Filters: country, city, postedWithinDays (1-60), salaryMin (monthly USD), limit (1-100, default 20), cursorPer job returned
/job/{id}One job with its complete descriptionOne job
/changesJobs added, updated or expired since cursor, oldest first. limit 1-100, default 100Per change returned
/mcpThe MCP endpoint: tools search_jobs, get_job and list_changesPer job returned
BASE=https://blackfalcondata--gcc-jobs-api.apify.actor
TOKEN=<APIFY_TOKEN>
# Accountant jobs in the UAE posted in the last 7 days
curl "$BASE/search?q=accountant&country=AE&postedWithinDays=7&token=$TOKEN"
# Engineering jobs in Riyadh paying at least $3,000 a month
curl "$BASE/search?q=engineer&country=SA&city=Riyadh&salaryMin=3000&limit=50&token=$TOKEN"
# The next page: pass back the nextCursor of the previous answer with the same query
curl "$BASE/search?q=engineer&country=SA&city=Riyadh&salaryMin=3000&limit=50&cursor=<nextCursor>&token=$TOKEN"
# One job with its full description
curl "$BASE/job/<id>?token=$TOKEN"
# Everything that changed since your last read
curl "$BASE/changes?cursor=<nextCursor>&token=$TOKEN"

Use it from an AI agent (MCP)

Add the server to any MCP client (Claude Desktop, Claude Code, Cursor, an agent framework) as a streamable HTTP server at https://blackfalcondata--gcc-jobs-api.apify.actor/mcp, with the header Authorization: Bearer <APIFY_TOKEN>.

  • search_jobs: keyword, country, city, posting window and minimum monthly salary in, compact rows out (id, title, company, city, country, posting date, salary, summary, board, link). Ten rows by default, so an answer fits a context window.
  • get_job: one id in, the listing as Markdown with its complete description out.
  • list_changes: a cursor in, the jobs added, updated or expired since then out.

A tool call that finds nothing, or that fails, is not billed.

Reading the answer

A search answers { "ok": true, "total": 412, "offset": 0, "count": 20, "records": [ ... ], "nextCursor": "..." }. Each record carries id, board, country, title, company, location, city, category, industry, postedAt, url, salary as posted, su (the salary as monthly US dollars, 0 when none is posted), a short summary and, when the same opening seems to be posted on another board too, possibleDuplicates with that board, its id and its link. nextCursor is null on the last page.

/changes answers { "ok": true, "count": 3, "events": [ { "eventId": "...", "type": "new", "id": "...", "job": { ... } } ], "nextCursor": "...", "hasMore": false }. Store nextCursor and send it on your next call; hasMore tells you to call again right away.

A failure is { "ok": false, "error": "bad_request", "message": "..." }. The error code is stable and safe to branch on: bad_request and bad_cursor mean the request itself is wrong, not_found means the job is no longer current, resync (HTTP 410) means a cursor is too old and the query should start again without one, and not_ready or billing_unavailable (HTTP 503) are worth a retry.

How billing works

You pay per job returned: a search page of 20 jobs is 20 results, one job with its description is one result, and each entry in the change list is one result. /health and /stats are always free, and an answer with no jobs, a request that fails validation, or one that could not be billed is never charged. A request is charged before its jobs are sent, so nothing is delivered past a spending limit you set on your Apify account.

Disclaimer

This actor serves job listings that Bayt, Naukrigulf and GulfTalent publish openly on their websites. It is not affiliated with, endorsed by or operated by Bayt.com, Info Edge (Naukrigulf) or GulfTalent. Listings are reproduced as the boards served them when the index was last refreshed; a job can be filled or withdrawn before the next refresh, and salary, location and company details are only as complete as the employer made them. possibleDuplicates is an unverified hint. You are responsible for using the data in line with the boards' terms and the data-protection rules that apply to you.

Search keywords

bayt scraper, bayt api, apify bayt, bayt data extraction, bayt.com scraper, bayt.com data, bayt.com api, naukrigulf.com scraper, gulftalent.com scraper, job listings scraper, recruitment data, hiring data, job board scraper, middle east jobs mcp, job search mcp server.