GCC Jobs API — Bayt, Naukrigulf and GulfTalent in One Search
Pricing
$1.10 / 1,000 job records
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
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
/mcpand the agent gets three tools:search_jobs,get_jobandlist_changes. Search answers with compact rows sized for a context window;get_jobreturns 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) andsalaryMin, 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 whensalaryMinis set. - 🔗 Likely cross-board duplicates flagged: when the same opening appears to be posted on another board too, the job carries
possibleDuplicateswith 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:
/changeslists 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.
What data can you get for each search?
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
- Go to GCC Jobs API in Apify Console.
- Configure the input.
- Click Start and wait for the run to finish.
- 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.
Is it legal to answer searches?
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
- Bayt Job Scraper — MENA Jobs with Salary & Skills — Scrape bayt.com — the leading Middle East job board across UAE · Saudi Arabia · Qatar · Egypt & 9.
- GCC Job Scraper — Bayt, Naukrigulf and GulfTalent — Get current job listings from Bayt, Naukrigulf and GulfTalent across the six Gulf states in one.
- GulfTalent Job Scraper — Salaries, Emails & 40+ Fields — 💰 $0.7/1K — scrape gulftalent.com, the largest Gulf and Middle East job board, across all six.
- Naukrigulf Job Scraper — Gulf Job Board — Scrape naukrigulf.com — 13 markets across the Gulf and wider MENA, from UAE and Saudi Arabia to.
- Wuzzuf Job Scraper [Just 💰$1] — Egypt & MENA Jobs — 💰 $1 per 1,000 jobs. Scrape wuzzuf.net across Egypt & the wider MENA region — structured salary ·.
- Actiris Job Scraper [Just 💰$1.5] — Brussels Public Jobs — 💰 $1.5 per 1,000 jobs. Scrape actiris.brussels — the official Brussels public employment service.
- AllJobs Israel Job Scraper - Hebrew & English — Scrape alljobs.co.il — records. Every record carries extracted emails, salary and location the.
- AMS Austria Job Scraper — Public Employment Service Jobs — Scrape jobs.ams.at, Austria's official AMS public employment portal (alle jobs). Get live.
Getting started with Apify
New to Apify? Create a free account with $5 credit — no credit card required.
- Sign up — $5 platform credit included
- Open this actor and configure your input
- 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.
| Endpoint | What it returns | Billed |
|---|---|---|
/health | Version, and that the server is up | Free |
/stats | How many jobs the index holds, per board and per country, and when it was built | Free |
/search | Jobs 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), cursor | Per job returned |
/job/{id} | One job with its complete description | One job |
/changes | Jobs added, updated or expired since cursor, oldest first. limit 1-100, default 100 | Per change returned |
/mcp | The MCP endpoint: tools search_jobs, get_job and list_changes | Per job returned |
BASE=https://blackfalcondata--gcc-jobs-api.apify.actorTOKEN=<APIFY_TOKEN># Accountant jobs in the UAE posted in the last 7 dayscurl "$BASE/search?q=accountant&country=AE&postedWithinDays=7&token=$TOKEN"# Engineering jobs in Riyadh paying at least $3,000 a monthcurl "$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 querycurl "$BASE/search?q=engineer&country=SA&city=Riyadh&salaryMin=3000&limit=50&cursor=<nextCursor>&token=$TOKEN"# One job with its full descriptioncurl "$BASE/job/<id>?token=$TOKEN"# Everything that changed since your last readcurl "$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.