Middle East Jobs API avatar

Middle East Jobs API

Pricing

from $0.80 / 1,000 job records

Go to Apify Store
Middle East Jobs API

Middle East Jobs API

Find job postings across Middle Eastern markets by role, location query, company, category, salary, posting age, employment type, remote status, and seniority.

Pricing

from $0.80 / 1,000 job records

Rating

0.0

(0)

Developer

Aspen Technology Labs, Inc.

Aspen Technology Labs, Inc.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Middle East Jobs API - JobsIndex by Aspen Tech Labs

Access fresh job postings across the Middle East through the JobsIndex API, built by Aspen Tech Labs. Job data is sourced directly from company career pages and ATS platforms, not scraped from job boards or aggregators. Coverage spans the United Arab Emirates, Saudi Arabia, and other countries throughout the region, with coverage depth varying by country.

Use this Actor when you need job posting data centered on the Middle East rather than the full global JobsIndex feed. Search by keyword, title, company, category, salary, seniority, employment type, work arrangement, posting age, and more across the default region, with the option to add other locations through where.

Regional Coverage

The current regional dataset contains ~89,000 active jobs from 85,000+ employer career sites across 13 countries.

  • United Arab Emirates (UAE): ~29,000 jobs
  • Saudi Arabia: ~15,000 jobs
  • Egypt: ~10,000 jobs
  • Qatar: ~8,000 jobs
  • Turkey: ~5,000 jobs

Need More or Something Different?

If this Actor is working well for you, we'd love a review. For more data, custom feeds, feedback, or any questions, reach out via our website or by email. You can also explore JobMarketPulse, our labor and job market intelligence platform.

Built-In Regional Preset

The intended regional preset covers the United Arab Emirates, Saudi Arabia, Qatar, Israel, Turkey, Egypt, Jordan, Kuwait, Oman, Bahrain, Lebanon, Iraq, and Cyprus.

Direct structured location inputs are not accepted because they could replace the default country scope. Use where to add locations to the default region.

Quick Start

{
"what": "hotel OR hospitality OR restaurant",
"size": 5
}

Input Parameters

ParameterDescriptionExample
salarySalary amount or range filter.20h-30h
whatJob search query with keywords, boolean logic, exact phrases, or field targeting.hotel OR hospitality OR restaurant
whereAdditional field-targeted location query combined with the default regional preset using OR.@(city) (Dubai)
titleJob title filter.Hotel Manager
company_nameEmployer name filter.Hospitality Group
company_domainEmployer website domain.example-hospitality.com
categoryJob category.Hotels
sub_categoryMore specific job function or role.Housekeeper
industryEmployer industry.Hotels and Restaurants
postedRelative posting age or ISO date.1w
employment_typeEmployment type.Full-Time
remoteWork arrangement: remote, on-site, or hybrid.hybrid
senioritySeniority level.Senior
pagePage number, starting from 0.0
sizeResults per page, from 1 to 100.5

Advanced Filters

what supports plain text, boolean logic, exact phrases, and field-targeted search.

what = hotel OR hospitality OR restaurant
what = @(title,description) (housekeeper OR bartender)

Structured Filter Precedence

When what is provided together with structured job filters such as title, company_name, company_domain, category, sub_category, industry, posted, salary, employment_type, remote, or seniority, those structured filters take priority and can override or narrow the keyword query. Use what when the corresponding structured fields are not set.

where adds locations to the internal 13-country regional preset using OR. The default regional results remain included. Use field-targeted location syntax:

where = @(city) (Dubai)
where = @(region) (Abu Dhabi)

Do not send separate country, region, city, postal_code, metro_area, county, or sub_city fields. The Actor removes those fields to protect the default country scope. User-provided where values are always appended with OR; they can add locations but cannot remove or replace the default Middle East preset.

Example with an additional city query:

{
"what": "software engineer",
"where": "@(city) (Dubai)",
"size": 5
}

Salary Filter Format

Use NUMBER[UNIT] or NUMBER[UNIT]-NUMBER[UNIT]. Supported units are h, d, w, m, and y.

Limits and Pagination

This Actor uses the JobsIndex jobs API. Results are paginated with page and size.

ParameterDefaultMinMax
page00Depends on size and the item cap
size51100

Invalid page or size values can return 400 Invalid page or size parameters.

Item Caps

Query shapeMax itemsEffective max sizeOver-size behavior
No company filter1000100Validation error; not silently capped
Company filter plus another keyword or filter2020Silent cap with capping metadata
Company filter only55Silent cap with capping metadata

A company filter means company_name, company_domain, or a company field referenced inside what. Another keyword or filter means anything in what other than company_*, or a value in fields such as title, category, sub_category, industry, posted, salary, employment_type, remote, or seniority.

This Actor always applies an internal regional where preset, so company-filtered requests normally use the 20-item company|keywords cap.

When a company-filtered request asks for size greater than the effective cap, the API returns up to the capped number of results instead of erroring. Response metadata includes size_requested and size_capped_by: "company" for the 5-item cap or "company|keywords" for the 20-item cap. These fields are absent from uncapped responses.

No-company-filter requests are not silently capped. Requests beyond the 1000-item retrieval window can return 400 Item limit reached. Maximum of 1000 items can be retrieved.

Free-Text Query Limits

The user-facing what and where queries are subject to JobsIndex free-text limits. The effective upstream where expression includes the default regional preset and the OR wrapper.

LimitValueError behavior
User-entered what length700 characters400 parameter exceeds 700 characters
User-entered where length511 charactersInput validation error or 400 parameter exceeds 700 characters for the combined query
Effective upstream where length700 characters, including the regional preset400 parameter exceeds 700 characters
Excessive MATCH operatorsBackend safety limit400 Too many MATCH operators
Unsafe SQL-like keywordsblocked400 Unsafe MATCH expression

Field Validation

Invalid filter values can return 400 Invalid value for parameter: <name>. Common validation examples include malformed company domains, invalid dates or relative posted values, invalid salary format, unsupported location formats, or overly long field values.

Output

Each run stores job records in the default Apify dataset. The dataset schema includes an Overview table for the most useful fields and a Raw data (all fields) table for the complete JobsIndex record.

Example dataset item:

{
"id": "example-middle-east-job-id",
"title": "Housekeeper",
"title_raw": "Hotel Housekeeping Attendant",
"company_name": "Example Hospitality Group",
"company_domain": "example-hospitality.com",
"company_type": "company",
"category": "Hotels",
"sub_category": "Housekeeper",
"industry": "Hotels and Restaurants",
"country": "United Arab Emirates",
"region": "Dubayy",
"city": "Dubai",
"salary_value": "18000.00-25000.00",
"salary_currency": "AED",
"salary_unit": "MONTH",
"employment_type": "Full-Time",
"remote": "on-site",
"posted": "2026-08-01",
"url_source": "https://example-hospitality.com/careers/housekeeper",
"url_apply": "https://example-hospitality.com/careers/housekeeper/apply"
}

Field availability depends on the source job posting.