Qatar Living Jobs Scraper avatar

Qatar Living Jobs Scraper

Pricing

from $5.00 / 1,000 job listings

Go to Apify Store
Qatar Living Jobs Scraper

Qatar Living Jobs Scraper

Export every job on Qatar Living with company, city, salary, required languages and applicant counts. Flags expired listings the site still displays.

Pricing

from $5.00 / 1,000 job listings

Rating

0.0

(0)

Developer

Mohammad Salman Farsi Khan

Mohammad Salman Farsi Khan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Share

Export every job on Qatar Living into a clean spreadsheet or JSON feed — with company, city, seniority, contract type, work mode, required languages, how many people already applied, salary ranges, and a flag showing which listings have already expired.

No login. No proxies. No browser. Just fast, structured Qatar job-market data.

Why this one is different

Qatar Living keeps job posts visible on the site long after they close. Listings expire 30 days after posting, and in our measurements, between 4% and 19% of listings on a given day had already expired but were still displayed. Every row here carries ageDays, expiresAtEstimate and isLikelyExpired, and you can filter dead listings out entirely with one checkbox.

It also reports applicantCount — how many candidates have already applied — which no other Qatar jobs dataset exposes.

Who this is for

  • Recruitment agencies placing candidates into Qatar from South Asia, the Philippines and Africa
  • HR and compensation teams benchmarking salaries in Doha
  • Job boards and aggregators adding Qatar coverage
  • Labour-market researchers and journalists tracking Gulf hiring
  • AI agents needing live Qatar job data through the Apify MCP server

What you get

Every row, always:

FieldExampleFilled
titleCCTV Technician100%
companyVeritas Technology CFM100%
city / countryDoha / Qatar99%
seniorityEntry Level99%
employmentTypeFull-Time, Contract, Freelance100%
workModeOn-Site, Hybrid, Remote94%
applicantCount4068% (shown by the site on most, not all, posts)
languages["Arabic", "English", "Hindi"]44% (only when the employer specifies)
postedRelative / postedDateEstimate / ageDays"11 hours ago" / ISO / 0100%
isLikelyExpired / expiresAtEstimatefalse / ISO100%
sourceUrl, jobId, companyId, scrapedAt100%

Fill rates come from a full 160-row export, measured — not estimated.

Turn on Include full description and salary and each row also gets:

FieldExample
descriptionFull description as clean text (descriptionHtml keeps the original)
salaryText / salaryMin / salaryMax / currency / salaryPeriod"2000 - 3000 QAR" / 2000 / 3000 / QAR / MONTH — present on about 60% of jobs, since not every employer publishes pay
datePosted / expiresAtExact dates published by the site
experienceMonths24

One row per job. No joining, no post-processing. Export as CSV, Excel, JSON or XML.

Input

{
"keyword": "technician",
"maxItems": 200,
"includeDescription": true,
"excludeExpired": true,
"postedWithinDays": 7
}
InputWhat it does
keywordFilter on title, company or seniority. Empty returns everything.
maxItemsStop after N jobs. The board typically holds 120–160 live listings, depending on the day, so 200 returns the whole board.
includeDescriptionAdds description, salary and exact dates from each job's own page.
excludeExpiredSkips listings past their 30-day expiry. You are not charged for skipped rows.
postedWithinDaysOnly jobs posted in the last N days. Set to 1 for a daily new-vacancy feed.

Filters run before billing — you only pay for rows you actually receive.

Output sample

{
"jobId": "1f4a3253-84b8-4be4-91c7-3f93ef5ca0d0",
"title": "CCTV Technician",
"company": "Veritas Technology CFM",
"city": "Doha",
"country": "Qatar",
"seniority": "Entry Level",
"employmentType": "Full-Time",
"workMode": "Hybrid",
"languages": ["Arabic", "English", "Hindi"],
"applicantCount": 40,
"isPromoted": true,
"hasQuickApply": true,
"postedRelative": "11 hours ago",
"postedDateEstimate": "2026-09-19T04:12:07.000Z",
"expiresAtEstimate": "2026-10-19T04:12:07.000Z",
"isLikelyExpired": false,
"ageDays": 0,
"salaryText": "2000 - 3000 QAR",
"salaryMin": 2000,
"salaryMax": 3000,
"currency": "QAR",
"salaryPeriod": "MONTH",
"experienceMonths": 0,
"sourceUrl": "https://www.qatarliving.com/en/jobs/jobs/profile/cctv-technician-5",
"scrapedAt": "2026-09-19T15:20:41.220Z"
}

Pricing

EventPrice
Each job returned$5.00 per 1,000
Each job enriched with description and salary$10.00 per 1,000

What a real run costs: The whole board (typically 120–160 jobs) costs about $0.60–$0.80, or about $1.80–$2.40 with full descriptions and salaries. A daily fresh-jobs feed (postedWithinDays: 1) usually costs a few cents per run.

How to use it

  1. Click Try for free.
  2. Leave the inputs empty for the whole board, or set excludeExpired: true for live vacancies only.
  3. Download CSV, Excel or JSON — or connect it to Make, Zapier, n8n, or your own code via the Apify API.
  4. Schedule it daily with postedWithinDays: 1 to receive only new listings.

FAQ

Does this need a login on the source site? No. It reads only public, server-rendered pages that anyone can view in a browser.

Does it respect robots.txt? Yes. It never touches the disallowed /api/ paths, keeps a 2-second delay between requests, and runs at most 2 requests in parallel.

Why do some jobs have no salary? Employers choose whether to publish pay. Roughly 60% of listings include a salary range; the rest show none, and expired listings are the most likely to be missing it. Every enriched row always includes the full description and exact posting dates.

What happens if I set a maximum cost per run? The Actor stops cleanly as soon as your budget can't cover another job. If your budget covers a job but not its description, that last job is delivered without the description and you are not charged for it. The row is marked enrichmentSkippedReason: "spending-limit". You never pay for data you don't receive.

Does it collect personal data about job seekers? No. Employer job postings only. No candidate names, CVs or contact details.

How do you know a job is expired? Job detail pages publish validThrough, which is always 30 days after datePosted. Listing rows use that 30-day rule as an estimate; enriched rows use the site's own validThrough date directly.

Why do a few jobs appear twice? Employers repost roles. The duplicates have different job IDs and different posting dates — turn on excludeExpired and the old copy disappears.

What about the Domestic (household) jobs tab? That section renders client-side through endpoints robots.txt disallows, so it isn't included. This Actor covers the corporate section in full.

Can my AI agent call this? Yes. It runs through the Apify MCP server and charges per event, so agents can call it directly.

Support

Need an extra field, or something broke? Open an issue on the Issues tab. I reply within 24 hours and fix breakages fast.

This Actor collects publicly available job postings for market research, recruitment and aggregation. You are responsible for how you use the data, including compliance with the source site's terms and applicable law in your jurisdiction.