Wuzzuf Jobs Scraper
Pricing
from $0.89 / 1,000 job scrapeds
Wuzzuf Jobs Scraper
Scrape job listings from Wuzzuf: titles, companies, salaries, locations, job types, career levels, skills, and full descriptions.
Pricing
from $0.89 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Wuzzuf Jobs Scraper
Wuzzuf Jobs Scraper extracts structured job listing data from Wuzzuf, the leading job board for Egypt, Saudi Arabia, the UAE, and the wider Gulf and MENA region.
| Search by keyword and filter by location, category, career level, job type, and posting date — get clean, structured job data with full descriptions, salaries, and skills, ready for analysis or integration. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this Actor: Actor ID parsebird/wuzzuf-jobs-scraper on Apify — call it with the Apify API or ApifyClient (e.g. Python: ApifyClient(token).actor("parsebird/wuzzuf-jobs-scraper").call(run_input={"keyword": "engineer", "results_wanted": 20})) — key inputs are keyword (string, job title/skill to search), startUrl (string, a Wuzzuf search URL to use instead of keyword), location/category/careerLevel/jobType (string text filters), maxJobAge (enum: "7 days" | "30 days" | "90 days" | "all", default "all"), results_wanted (integer, default 20), max_pages (integer, default 10), and proxyConfiguration (object) — output items include title, company, company_logo, location, salary, job_type, job_category, career_level, date_posted, skills, description_html, description_text, url, and scraped_at — full API spec at https://apify.com/parsebird/wuzzuf-jobs-scraper/api and an API token from the Apify Console under Settings → Integrations.
What does Wuzzuf Jobs Scraper do?
Wuzzuf Jobs Scraper is a Wuzzuf API alternative that turns any Wuzzuf job search into a structured dataset. Point it at a keyword, a saved Wuzzuf search URL, or a combination of filters, and it collects job title, company, salary, job type, career level, skills, and the full job description for every matching listing — no manual copy-pasting required.
- 🔍 Search by keyword, or pass a Wuzzuf search URL directly as a starting point
- 🗺️ Filter results by location, job category, career level, job type (including remote/hybrid), and how recently the job was posted
- 📝 Full job descriptions in both HTML and plain text, plus extracted skills/keywords
- 🏢 Company name and logo pulled from each listing, when the employer isn't anonymous
- ⚙️ Runs on the Apify platform: schedule recurring scrapes, trigger runs via API or webhook, and export results as JSON, CSV, Excel, HTML, or XML
- 🆓 New Apify accounts get free platform credits, enough to try this Actor at no cost
What data can you extract from Wuzzuf?
| Field | Description |
|---|---|
title | Job title |
company | Company name (null if the employer is anonymous) |
company_logo | Company logo URL |
location | Job location, e.g. "Maadi, Cairo, Egypt" |
salary | Salary text, or "Confidential" / "Not disclosed" if hidden |
job_type | Job type, e.g. "Full Time", "Full Time, Remote" |
job_category | Job category/role tags |
career_level | Career level, e.g. "Experienced" |
date_posted | Posting date as shown on Wuzzuf |
skills | Extracted skills and keywords |
description_html | Full job description (HTML) |
description_text | Full job description (plain text) |
url | Public Wuzzuf job URL |
scraped_at | ISO timestamp of when the item was collected |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| keyword | string | No | "" | Keyword to search for (e.g. "engineer") |
| startUrl | string | No | — | A Wuzzuf search URL (if provided, it's used as the starting point instead of keyword) |
| location | string | No | "" | Filter by location text (e.g. "Cairo") |
| category | string | No | "" | Filter by category text (e.g. "IT") |
| careerLevel | string | No | "" | Filter by career level text (e.g. "Experienced") |
| jobType | string | No | "" | Filter by job type text (e.g. "Full Time", "Remote") |
| maxJobAge | string | No | "all" | Only include jobs within a time window: "7 days", "30 days", "90 days", "all" |
| results_wanted | integer | No | 20 | Maximum number of job items to collect |
| max_pages | integer | No | 10 | Maximum pages to process |
| proxyConfiguration | object | No | — | Proxy settings (recommended for stability at scale) |
Output example
{"title": "Engineer","company": "Roasty","company_logo": "https://wuzzuf.net/MAAMOUN-GROUP-Egypt-44745-1741777901.jpeg","location": "Qalyub, Qalubia, Egypt","salary": "Confidential","job_type": "Full Time","job_category": ["Engineering - Mechanical/Electrical"],"career_level": "Experienced","date_posted": "09/10/2025 15:18:30","skills": ["Electrical Engineering", "Mechanical Engineering"],"description_html": "<p>...</p>","description_text": "...","url": "https://wuzzuf.net/jobs/p/o6tiukbaxxwz-engineer-roasty-qalubia-egypt","scraped_at": "2026-02-18T06:07:02.248Z"}
How to scrape Wuzzuf jobs
- Open Wuzzuf Jobs Scraper on the Apify Store and click Try for free.
- Enter a
keyword(e.g. "engineer"), or paste a Wuzzuf search URL intostartUrl. - Optionally set
location,category,careerLevel,jobType, andmaxJobAgeto narrow the results. - Set
results_wantedandmax_pagesto control how much data you collect. - Click Start and download your results as JSON, CSV, or Excel once the run finishes — or pull them via the API.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("parsebird/wuzzuf-jobs-scraper").call(run_input={"keyword": "engineer","location": "Cairo","results_wanted": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["company"], item["url"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('parsebird/wuzzuf-jobs-scraper').call({keyword: 'engineer',location: 'Cairo',results_wanted: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Use cases
- Job market research — track how many roles a keyword or category has open on Wuzzuf over time.
- Recruitment and talent sourcing — build a feed of open roles matching a client's requirements.
- Salary benchmarking — collect visible salary ranges across a role or industry.
- Competitive intelligence — monitor which companies are actively hiring, and for what roles.
- Job aggregation — feed a job board, newsletter, or Slack/Telegram bot with fresh Wuzzuf listings.
How much does it cost to scrape Wuzzuf?
Wuzzuf Jobs Scraper uses pay-per-event (PPE) pricing — you're charged per job scraped, not for platform compute time.
| Event | Price per event | Price per 1,000 |
|---|---|---|
| Job scraped | $0.00099 (free plan) / $0.00089 (Bronze, Silver, Gold) | $0.99 (free plan) / $0.89 (Bronze, Silver, Gold) |
Scraping 1,000 job listings costs under a dollar. New Apify accounts include free platform credits, so you can test this Actor at no cost before committing to a larger run.
Is it legal to scrape Wuzzuf?
Scraping publicly available data, like job listings on Wuzzuf, is generally considered legal, as established in cases such as hiQ Labs v. LinkedIn. This Actor only collects data that is already visible to any visitor on public Wuzzuf search results and job pages. You are responsible for how you use the scraped data — avoid collecting or storing personal data, and respect the target website's terms of service. Read more in Apify's guide on the legality of web scraping.
Other job scrapers by ParseBird
- JobsDB Job Scraper
- Workable Job Scraper
- Hiring.cafe Jobs Scraper
- eFinancialCareers Jobs Scraper
- JustJoin.it Jobs Scraper
- Workopolis Job Scraper
FAQ
Do I need a Wuzzuf account or API key? No. Wuzzuf Jobs Scraper works against publicly available Wuzzuf search results — no login or API key for Wuzzuf itself is required.
Can I search without a keyword?
Yes. Leave keyword empty (with or without other filters) to browse all currently listed jobs.
Why do location, category, careerLevel, and jobType use free text instead of dropdowns?
They're matched as whole-word, case-insensitive filters against each job's actual data, so you can type natural values like "Cairo", "IT", or "Remote" without needing to know Wuzzuf's internal category codes.
Can I use a specific Wuzzuf search URL instead of the filters?
Yes — copy any search URL from wuzzuf.net (including its own filters) into the startUrl field and it will be used as the starting point.
Can I schedule this to run automatically? Yes. Use Apify's Scheduler to run this Actor daily, weekly, or at any interval, and pair it with Apify integrations (Zapier, Make, Slack, Google Sheets, and more) to route new results wherever you need them.
What formats can I export results in? JSON, CSV, Excel, HTML, or XML — from the Apify Console, via the API, or through an integration.
I found a bug or the site layout changed. What do I do? Please open an issue on the Actor's Issues tab in Apify Console. We actively maintain this Actor and respond to reports.