Wuzzuf Jobs Scraper avatar

Wuzzuf Jobs Scraper

Pricing

from $0.89 / 1,000 job scrapeds

Go to Apify Store
Wuzzuf Jobs Scraper

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

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

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?

FieldDescription
titleJob title
companyCompany name (null if the employer is anonymous)
company_logoCompany logo URL
locationJob location, e.g. "Maadi, Cairo, Egypt"
salarySalary text, or "Confidential" / "Not disclosed" if hidden
job_typeJob type, e.g. "Full Time", "Full Time, Remote"
job_categoryJob category/role tags
career_levelCareer level, e.g. "Experienced"
date_postedPosting date as shown on Wuzzuf
skillsExtracted skills and keywords
description_htmlFull job description (HTML)
description_textFull job description (plain text)
urlPublic Wuzzuf job URL
scraped_atISO timestamp of when the item was collected

Input parameters

ParameterTypeRequiredDefaultDescription
keywordstringNo""Keyword to search for (e.g. "engineer")
startUrlstringNoA Wuzzuf search URL (if provided, it's used as the starting point instead of keyword)
locationstringNo""Filter by location text (e.g. "Cairo")
categorystringNo""Filter by category text (e.g. "IT")
careerLevelstringNo""Filter by career level text (e.g. "Experienced")
jobTypestringNo""Filter by job type text (e.g. "Full Time", "Remote")
maxJobAgestringNo"all"Only include jobs within a time window: "7 days", "30 days", "90 days", "all"
results_wantedintegerNo20Maximum number of job items to collect
max_pagesintegerNo10Maximum pages to process
proxyConfigurationobjectNoProxy 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

  1. Open Wuzzuf Jobs Scraper on the Apify Store and click Try for free.
  2. Enter a keyword (e.g. "engineer"), or paste a Wuzzuf search URL into startUrl.
  3. Optionally set location, category, careerLevel, jobType, and maxJobAge to narrow the results.
  4. Set results_wanted and max_pages to control how much data you collect.
  5. 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 ApifyClient
client = 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.

EventPrice per eventPrice 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.

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

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.