GulfTalent Job Scraper — Hiring Signals avatar

GulfTalent Job Scraper — Hiring Signals

Pricing

from $3.00 / 1,000 validated gulftalent job returneds

Go to Apify Store
GulfTalent Job Scraper — Hiring Signals

GulfTalent Job Scraper — Hiring Signals

Search public GulfTalent jobs or scrape direct search URLs for recruiter-ready hiring records. Returns validated roles, employers, locations, salaries when disclosed, dates, descriptions, and canonical URLs from public pages only.

Pricing

from $3.00 / 1,000 validated gulftalent job returneds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

10 days ago

Last modified

Share

What is GulfTalent Job Scraper?

Search public GulfTalent pages and export recruiter-ready Gulf hiring records. It is a focused fit for staffing teams, labor-market researchers, HR-tech builders, and AI agents working with structured public job listings.

It can either build a normal GulfTalent search from one job keyword or process supported /jobs/search URLs with query-string filters. It uses GulfTalent's public structured JSON search and job endpoints, then uses a residential proxy only as an API fallback. Each persisted row is validated before it is stored and billed.

What it extracts

FieldDescription
jobId, title, jobUrlStable public job identity, title, and canonical GulfTalent link.
companyName, companyUrlPublished employer identity and public company link where available.
location, countryPublished city/workplace and country details.
salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriodDisclosed compensation only. Undisclosed values remain null.
employmentType, experienceText, industry, categoryPublished hiring criteria and classification fields where available.
description, requirementsPublic job-page text when detail collection is enabled.
applyUrl, postedAt, postedTextPublished application path and posting-time signals where exposed.
sourceUrl, scrapedAtDiscovery provenance and extraction timestamp.

It preserves the source’s published facts: undisclosed compensation remains null, and each row carries its public source URL and collection time.

When to use it

Use this actor to monitor a GulfTalent role or skill, build a Gulf hiring-intelligence dataset, track competitor job openings, research publicly disclosed compensation, or export search results into a CRM, spreadsheet, ATS, dashboard, or AI workflow.

For adjacent work, use an application workflow for job submission, a candidate-data workflow for talent search, and the matching board-specific actor when another site is your source of record.

Workflow: from search to hiring signal

A recruiting-operations team starts with a role such as data engineer, runs a bounded GulfTalent search, then exports the normalized dataset to its hiring dashboard. Next, it can group companyName and location to spot which employers are hiring in a market, compare disclosed salaryText values, or pass the public jobUrl records to an internal monitoring workflow. sourceUrl and scrapedAt make each downstream comparison traceable to the exact public search and collection time.

Inputs

Use keyword for a standard search. The actor creates up to maxPages public GulfTalent search pages and stops after maxResults unique validated records. Use searchUrls when you have already selected filters in GulfTalent; those URLs override keyword and are handled exactly as supplied.

includeJobDetails defaults to true. It retrieves each discovered job from GulfTalent's public job endpoint for the description and any disclosed details. Turn it off for a faster, lighter search-card export. proxyCountry controls optional Apify residential fallbacks; the owner-managed route is country-neutral. It is not a job-location filter.

Quick start

Start with one role and one public Gulf market session. This collects up to ten validated records and follows their detail pages:

{
"keyword": "software engineer",
"maxResults": 10,
"maxPages": 1,
"includeJobDetails": true,
"proxyCountry": "AE"
}

Example: search a role

{
"keyword": "data engineer",
"maxResults": 25,
"maxPages": 2,
"includeJobDetails": true,
"proxyCountry": "AE"
}
{
"searchUrls": [
"https://www.gulftalent.com/jobs/search?search_keyword=accountant"
],
"maxResults": 50,
"includeJobDetails": true,
"proxyCountry": "SA"
}

Output example

{
"jobId": "123",
"title": "Data Engineer",
"companyName": "Example Gulf Co",
"location": "Dubai",
"country": "AE",
"salaryText": "AED 12,000 - 18,000 per month",
"salaryCurrency": "AED",
"salaryMin": 12000,
"salaryMax": 18000,
"employmentType": "FULL_TIME",
"jobUrl": "https://www.gulftalent.com/uae/jobs/data-engineer-123",
"applyUrl": null,
"postedAt": "2026-07-20T00:00:00.000Z",
"sourceUrl": "https://www.gulftalent.com/api/jobs/search?search_keyword=data+engineer&offset=0&limit=20",
"scrapedAt": "2026-07-21T00:00:00.000Z"
}

API and agent use

Use this tool when you need public GulfTalent jobs for a role or already have a public GulfTalent search URL. It returns one dataset item per persisted job and writes OUTPUT plus RUN_SUMMARY records for machine-readable status, counts, billing, and safe diagnostics.

For a small role search, pass one keyword and a low maxResults. For a precisely filtered page you already opened in the site, pass its full URL in searchUrls. Treat the returned records as public market signals that complement a human recruiting workflow.

Run through the Apify API

Run this Actor with your Apify API token:

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~gulftalent-job-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"data engineer","maxResults":10,"maxPages":1,"includeJobDetails":true,"proxyCountry":"AE"}'

MCP and AI-agent prompt

Find up to15 public GulfTalent data-engineer jobs, then filter the returned country field if I need UAE-only records and return job title, employer, disclosed salary, location, posted date, and job URL. Read OUTPUT and RUN_SUMMARY; if the outcome is PARTIAL, preserve the returned rows and surface the warnings instead of treating them as an empty search.

The actor is read-only with respect to GulfTalent and gathers public job-posting pages. Use the dataset for rows and the key-value records for outcome, pagination coverage, charges, and recovery guidance.

Pricing

Pricing is Pay per event:

ChargePrice
Validated GulfTalent job written to the dataset$0.003 per job
Actor start$0.00005 per started GB of memory, rounded up; minimum one event
Apify compute and Apify proxy usageIncluded in the event price
Owner-managed residential routeIncluded in the job-event price

Only unique, fully validated records successfully written to the default dataset trigger job-scraped. A run with maxResults: 20 has a maximum $0.060 in job-result event charges, plus the start event. Apify platform usage is included in these prices under the current billing setting. Check the live Pricing tab for the current rate card before large scheduled runs.

For example, a bounded run that returns 10 results (10 job records) has at most $0.030 in job-result charges, plus $0.00005 for the 1-GB start event, with Apify compute/proxy usage included.

Reliability and limits

GulfTalent's rendered job pages may use Akamai protection. The actor starts with public JSON endpoints, uses bounded fallback attempts without HTTP retries or redirects, and can confirm an unavailable route through a residential fallback. It distinguishes usable empty searches from unavailable upstream routes.

Partial useful results are preserved as PARTIAL. A public search that loads with no matching jobs completes as VALID_EMPTY. When the source route is unavailable, the actor records UPSTREAM_FAILED with recovery guidance. Every terminal path writes OUTPUT and RUN_SUMMARY with one of COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, UPSTREAM_FAILED, or CONFIG_ERROR.

Freshness and provenance

Each dataset record retains the public search sourceUrl and its scrapedAt timestamp. The actor reads GulfTalent’s structured public search and job endpoints at run time, so the returned records reflect the source response received for that run. OUTPUT and RUN_SUMMARY explain the completed outcome, coverage, charges, and any recovery guidance.

Builder's note

I designed the dependable path here to stay deliberately narrow: normalize GulfTalent’s structured public search response first, then enrich each selected job from its matching public detail response. That design makes every exported row traceable, keeps result billing tied to a validated write, and gives agents a small, predictable input-to-dataset workflow.

Focused standalone workflow

This actor is designed as a focused standalone workflow: one public GulfTalent search or role keyword enters, and a stable, recruiter-ready job dataset exits. It is a good fit when GulfTalent is the source of record for the hiring signal; use a separate board-specific actor when another site is the source.

Responsible use

Collect public job-posting data according to applicable law and the source platform's terms. Use the output as one transparent market-research input alongside appropriate human review and privacy-aware recruiting practices.

Retrieval and delivery safeguards

The Actor tries direct public JSON access, an owner-managed country-neutral residential connection, then the caller's available Apify residential/datacenter fallbacks. Owner-managed access is configured by the owner; callers do not need a provider key. Requests are limited to25seconds and256KiB of decoded JSON, do not follow redirects and do not retry a paid HTTP attempt. A route that works is reused first.

Only the primary positions search array and the exact requested job detail are normalized. Recommended jobs are excluded. A failed or malformed target cannot establish an empty search; useful search records remain available if matching details fail. Missing or undisclosed salary stays unknown.

searchUrls supports /jobs/search and /api/jobs/search query filters. Country-path location URLs and individual-job URLs are rejected to avoid silently widening the search. Each supplied URL is one window; use offset and limit1–20.

The schema prefill requests one detailed job to keep automated checks small; the ordinary maximum-results default is unchanged. The event allowance is checked before retrieval and before each saved row. Dataset delivery and the named job event use the same SDK operation. An unconfirmed write stops further delivery and leaves a checkpoint; inspect rows and charges before starting a fresh run.

Consume OUTPUT and RUN_SUMMARY only when TERMINAL_FENCE is DONE and its hash matches SHA256 of JSON.stringify({ output, summary }). A PENDING or mismatched fence is unconfirmed completion. Early budget, lifecycle or page boundaries are reported as partial coverage.