Wuzzuf Jobs Scraper
Pricing
from $0.90 / 1,000 results
Wuzzuf Jobs Scraper
[๐ฐ $0.9 / 1K] Extract job postings from Wuzzuf, the leading job board for Egypt and the MENA region. Search by keyword and location, filter by career level, job type, workplace, and posting date โ each result includes title, company, location, salary, skills, full description, and apply link.
Pricing
from $0.90 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Pull live job postings from Wuzzuf โ Egypt and the wider MENA region's leading job board โ with the full job description, required skills, salary, company name and logo, and an ISO-8601 posting timestamp on every row. Search by keyword and location, narrow with five career-level and six job-type filters, or paste Wuzzuf search URLs to clone a filtered search you already built. Built for recruiters, talent-sourcing teams, and job-market analysts who need a clean, structured Wuzzuf dataset without copy-pasting postings one page at a time.
Why This Scraper?
- Full job description on every row โ no second pass โ each posting arrives with both
descriptionHtmland a cleandescriptionText, plus the employer's requiredskillsandcategories, all from the single results page. No per-job follow-up fetch, no half-empty rows. - Five career-level filters โ Student/Internship, Entry Level, Experienced, Manager/Supervisor, and Senior Management, selectable in any combination.
- Six employment-type filters โ Full Time, Part Time, Freelance/Project, Internship, Shift Based, and Volunteering.
- Three workplace arrangements with a derived
isRemoteflag โ On-site, Remote, and Hybrid, plus a true/falseisRemoteboolean computed per job so you can split remote roles instantly. - Posting-window targeting for scheduled runs โ limit to the last 24 hours, last week, or last month โ ideal for a daily or weekly run that picks up only the newest openings.
- ISO-8601 timestamps, converted to UTC โ
postedAtis normalized from Wuzzuf's local Cairo time to clean UTC, alongside a human-friendlypostedAtText("3 days ago"). - Stable
jobIdon every posting โ Wuzzuf's own job identifier, so you can deduplicate, upsert, and track the same role across repeated runs. - Company name and logo captured โ
companyNameplus acompanyLogoimage URL for building branded candidate-facing lists or employer dashboards. - Paste-and-go Wuzzuf URLs โ build any filtered search on wuzzuf.net, paste the URL into
startUrls, and the actor reproduces it exactly, pagination included.
Use Cases
Recruitment & Talent Sourcing
- Build candidate-facing job feeds filtered to specific roles, cities, and seniority
- Track which companies are actively hiring for a given skill set
- Surface remote and hybrid openings across Egypt and MENA in one list
- Monitor newly posted roles daily and reach out before competitors do
Job Market Research
- Map hiring demand by category, city, and career level
- Track full-time vs. freelance vs. internship mix over time
- Measure how quickly listings appear and refresh using
postedAt - Compare on-site, remote, and hybrid adoption across industries
Salary & Skills Benchmarking
- Collect disclosed salary ranges where employers publish them
- Extract the required
skillslist to map in-demand competencies per role - Compare skill requirements across career levels for the same job title
- Build category-level reports on what employers ask for
Lead Generation for Recruiters & Vendors
- Build lists of companies hiring in a target sector or city
- Identify employers posting high volumes of openings
- Pair
companyNameandcompanyLogofor outreach collateral - Target firms hiring for roles your service or product supports
Job-Seeker Aggregation
- Power a niche job board with structured, deduplicated Wuzzuf listings
- Send keyword-based alerts on fresh postings within the last 24 hours
- Feed openings into a personal tracking sheet with direct apply links
Getting Started
Search by Keyword
The simplest run โ one keyword, default result cap:
{"searchKeyword": "software engineer"}
Keyword + Location + Filters
Narrow to entry-level, full-time roles in Cairo posted in the last week:
{"searchKeyword": "accountant","location": "Cairo","careerLevel": ["entry_level"],"jobTypes": ["full_time"],"postedWithinDays": "within_1_week","maxResults": 200}
Remote Roles, Advanced
Remote and hybrid developer roles for experienced and manager levels:
{"searchKeyword": "developer","workplaceTypes": ["remote", "hybrid"],"careerLevel": ["experienced", "manager"],"jobTypes": ["full_time", "freelance"],"postedWithinDays": "within_1_month","maxResults": 500}
Clone a Search You Built on Wuzzuf
Apply filters on wuzzuf.net, copy the URL, and paste it:
{"startUrls": ["https://wuzzuf.net/search/jobs/?q=data%20analyst&filters[city][0]=Giza"],"maxResults": 300}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchKeyword | string | "software engineer" | Word or phrase matched across job title and description. Leave blank to collect all jobs matching the filters. |
startUrls | array | [] | One or more Wuzzuf search-result URLs to scrape directly. When provided, these take priority over keyword and location. |
location | string | "" | Filter to an exact city name as it appears on Wuzzuf (e.g. Cairo, Giza, Alexandria). Must be the full English city name. Leave blank for any location. |
Filters
| Parameter | Type | Options | Description |
|---|---|---|---|
careerLevel | array | Student/Internship, Entry Level, Experienced, Manager/Supervisor, Senior Management | Only include jobs at these seniority levels. Empty = all. |
jobTypes | array | Full Time, Part Time, Freelance/Project, Internship, Shift Based, Volunteering | Only include jobs of these employment types. Empty = all. |
workplaceTypes | array | On-site, Remote, Hybrid | Only include jobs with these workplace arrangements. Empty = all. |
postedWithinDays | string | Any time, Last 24 hours, Last week, Last month | Only include jobs posted within this time window. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Hard cap on total job rows returned. Set to 0 for no cap. The actor stops requesting new pages once the cap is hit but keeps the full last page. |
Output
Each result is one job posting. Every row carries the full description, skills, and categories โ there are no thin rows.
{"title": "Senior Software Engineer","companyName": "Example Tech","companyLogo": "https://images.wuzzuf-data.net/files/company_logo/example-logo.png","location": "Cairo, Egypt","isRemote": false,"workplaceType": "On-site","salary": "Confidential","jobType": "Full Time","careerLevel": "Experienced (Non-Manager)","categories": ["IT/Software Development", "Engineering"],"skills": ["Python", "Django", "PostgreSQL", "REST APIs"],"postedAt": "2026-06-24T07:07:34+00:00","postedAtText": "3 days ago","descriptionHtml": "<p>We are looking for a Senior Software Engineer...</p>","descriptionText": "We are looking for a Senior Software Engineer...","url": "https://wuzzuf.net/jobs/p/example-senior-software-engineer","jobId": "a1b2c3d4-...","scrapedAt": "2026-06-27T13:01:55.501901+00:00"}
Job Fields
| Field | Type | Description |
|---|---|---|
title | string | Job title as published. |
companyName | string | Hiring company name (may be hidden for confidential listings). |
companyLogo | string | URL of the company logo image, when available. |
location | string | Job location (e.g. Cairo, Egypt). |
isRemote | boolean | True when the role is remote-friendly. |
workplaceType | string | Workplace arrangement: On-site, Remote, or Hybrid. |
salary | string | Disclosed salary range, or Confidential when the employer hides it. |
jobType | string | Employment type (Full Time, Part Time, Freelance/Project, etc.). |
careerLevel | string | Seniority level required. |
categories | array | Job categories/industries the posting belongs to. |
skills | array | Skills the employer lists as required. |
postedAt | string | Posting date/time in ISO 8601 UTC. |
postedAtText | string | Friendly relative posting text ("3 days ago"). |
descriptionHtml | string | Full job description with original HTML formatting. |
descriptionText | string | Full job description as clean plain text. |
url | string | Direct link to the job posting on Wuzzuf. |
jobId | string | Wuzzuf's stable job identifier โ use for deduplication. |
scrapedAt | string | When the row was collected, in ISO 8601 UTC. |
Tips for Best Results
- Clone a filtered search instead of rebuilding it. Apply every filter you want directly on wuzzuf.net, copy the resulting URL into
startUrls, and the actor reproduces it exactly โ handy for filters more specific than the dropdowns above. - Use
postedWithinDaysfor scheduled runs. Set it toLast 24 hourson a daily schedule (orLast weekon a weekly one) so each run returns only fresh postings and you don't re-collect the same jobs. - Deduplicate on
jobId, noturl. ThejobIdis Wuzzuf's stable identifier and is the reliable key for upserts across repeated runs. - Leave everything blank to collect the full current feed. With no keyword and no filters, the actor walks the entire live listing set up to your
maxResults. - Split remote roles with
isRemote. Filter the output on theisRemoteboolean rather than parsingworkplaceTypetext โ it already accounts for remote-friendly hybrid roles. - Expect
Confidentialsalaries. Many Wuzzuf employers hide pay; rows where salary isn't published returnConfidentialrather than an empty value, so filter accordingly. - Set
maxResultsto0for a full sweep, or keep a sensible cap for faster, cheaper sampling runs.
Pricing
From $0.90 per 1,000 results โ pay only for the jobs you collect, undercutting comparable Wuzzuf scrapers. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.11 | $0.10 | $0.10 | $0.09 |
| 1,000 | $1.05 | $1.00 | $0.95 | $0.90 |
| 10,000 | $10.50 | $10.00 | $9.50 | $9.00 |
| 100,000 | $105.00 | $100.00 | $95.00 | $90.00 |
A "result" is one job posting returned to your dataset. No compute or time-based charges โ you pay per result, plus a small fixed per-run start fee.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger custom APIs on run completion
- Apify API โ Full programmatic access
Legal & Ethical Use
This actor collects publicly available job-posting data for legitimate purposes such as recruitment, market research, and analytics. You are responsible for using the data in compliance with Wuzzuf's terms of service, applicable data-protection laws (including any handling of personal data contained in postings), and the intended, lawful purposes described above. Do not use collected data to spam, harass, or otherwise harm individuals or companies.