Wuzzuf.net Scraper
Pricing
from $1.19 / 1,000 results
Wuzzuf.net Scraper
Scrape job listings from Wuzzuf.net — Egypt's largest job board with 50,000+ active postings. Filter by keyword, city, job type, career level, and workplace arrangement.
Pricing
from $1.19 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
22
Total users
4
Monthly active users
9 days ago
Last modified
Categories
Share

Extract job listings from wuzzuf.net at scale, in a clean, consistent structure ready for analysis, job boards, recruiting tools and market research. No API key required.
Why this scraper?
🎯 Built for Egypt
A dedicated Egyptian scraper, not a global tool with a country dropdown. Search, locations and currency (EGP) are tuned for wuzzuf.net.
📄 Complete job data
Full job title and description, direct listing URL and publish date for every record.
💶 Salary data
Salary information parsed from the listing where the employer publishes it, in EGP. Missing salaries are returned as null, never guessed.
🏢 Company details
Hiring company name plus the profile details the source publishes, such as logo and company page.
📍 Location fields
Structured location data for every listing, ready for filtering and analysis.
🔁 Repost detection
Every record carries isRepost, originalPublishDate and a stable contentHash, so daily feeds return genuinely new jobs instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keyword | string | "developer" | Keyword(s) to search job titles and descriptions. Example: "software engineer". Leave empty to return all jobs. |
city | string | (empty) | Filter by city. Example: "Cairo". |
country | string | (empty) | Filter by country. Example: "Egypt". |
jobType | string | (empty) | Filter by employment type: Full Time, Part Time, Freelance / Project, Internship, Shift Based. |
workplaceArrangement | string | (empty) | Filter by arrangement: On-site, Remote, Hybrid. |
careerLevel | string | (empty) | Filter by level: Student, Entry Level, Experienced, Manager, Senior Management. Values are case-sensitive. |
category | string | (empty) | Filter by job category as named on the source. Example: "IT/Software Development", "Accounting/Finance". |
daysOld | integer | (empty) | Only return jobs posted within this many days. Any value works; 1, 7 and 30 are filtered at the source for speed, other values are filtered per record. |
skipReposts | boolean | false | Skip listings already seen in previous runs of this actor (cross-run deduplication, 90-day memory). |
startUrls | array | (empty) | Direct wuzzuf.net search URLs, including their q and filters[...] parameters. When provided, the filters above are ignored. |
maxResults | integer | 25 | Maximum total number of job listings to collect. |
proxyConfiguration | object | Residential | Proxy settings. Leave as-is unless you know you need something else. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given job are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
id | string | Unique listing ID from the source. |
url | string | Direct link to the listing |
title | string | Job title |
titleAr | string | Arabic job title, where the source publishes one. |
companyName | string | Hiring company name |
companyId | string | Company ID on the source. |
companyLogoUrl | string | Company logo image URL. |
companyWebsite | string | Company website, where published. |
companyIndustry | string | Company industry sector |
location | string | Combined location string: area, city, country. |
city | string | City of the role |
country | string | Country |
area | string | District or area within the city. |
jobType | string | e.g. Full Time, Part Time, Freelance / Project |
jobTypes | array | All employment types on the listing. |
workplaceArrangement | string | e.g. On-site, Remote, Hybrid |
careerLevel | string | e.g. Entry Level, Experienced, Manager |
category | string | Primary job category on the source. |
categories | array | All job categories on the listing. |
experienceYearsMin | number | Minimum years of experience required. |
experienceYearsMax | number | Maximum years of experience required. |
experienceText | string | Experience requirement as displayed |
educationLevel | string | Required education level, where published. |
vacancies | number | Number of open positions on the listing. |
searchQuery | array | Skill and topic keywords attached to the listing by the source. |
salaryText | string | Salary range as displayed, or null if not shown |
salaryMin | number | Minimum salary (null if not published by the employer). |
salaryMax | number | Maximum salary (null if not published by the employer). |
salaryCurrency | string | Currency code of the salary. |
salaryPeriod | string | Pay period the salary refers to (e.g. year, month, hour). |
applicationType | string | How applications are handled: internal (via Wuzzuf) or external redirect. |
views | number | View count reported by the source. |
hotScore | number | Popularity score reported by the source. |
isHighlighted | boolean | true when the listing is a paid highlighted placement. |
isFeatured | boolean | true when the listing is a paid featured placement. |
isTempWFH | boolean | true when the role is temporarily work-from-home. |
descriptionHtml | string | Full job description in HTML. |
descriptionText | string | Full job description in plain text. |
descriptionMarkdown | string | Full job description in Markdown. |
publishDate | string | Date posted, YYYY-MM-DD (Cairo time). |
publishDateISO | string | Full ISO 8601 timestamp of posting. |
expireDate | string | Date the listing expires, YYYY-MM-DD. |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
source | string | Always wuzzuf.net. |
scrapedAt | string | Timestamp when this record was scraped. |
isRepost | boolean | true if seen in a previous run |
originalPublishDate | string | First-seen publish date when isRepost is true. |
originalUrl | string | First-seen listing URL when isRepost is true. |
Example record
{"id": "b82b8526-baff-4cdd-9d80-55d6d8ee774e","url": "https://wuzzuf.net/jobs/p/gaikcpvpinmw-accountant-meam-tripoli-libya","title": "Accountant","titleAr": "محاسب","companyName": "Meam","companyId": "135707","companyLogoUrl": "https://images.wuzzuf-data.net/files/company_logo/16099335816906c1aed91d8.png","companyWebsite": "meam.ly","companyIndustry": "Internet/E-commerce","location": "Tripoli, Libya","city": "Tripoli","country": "Libya","area": null,"jobType": "Full Time","jobTypes": ["Full Time"],"workplaceArrangement": "Remote","careerLevel": "Entry Level","category": "Accounting/Finance","categories": ["Accounting/Finance"],"experienceYearsMin": 2,"experienceYearsMax": 4,"experienceText": "2–4 years","educationLevel": "Bachelor's Degree","vacancies": 2,"keywords": ["Accounting","Finance","Financial Management","Financial Analysis"],"salaryText": "Not disclosed","salaryMin": null,"salaryMax": null,"salaryCurrency": null,"salaryPeriod": null,"applicationType": "internal","views": 4,"hotScore": 0,"isHighlighted": null,"isFeatured": null,"isTempWFH": false,"descriptionHtml": "<section><h2>Job Description</h2><p>We are looking for a motivated Accountant to join our growing team.</p><p>This role is ideal for someone who enjoys working with numbers, building reports, analysin …","descriptionText": "Job Description We are looking for a motivated Accountant to join our growing team. This role is ideal for someone who enjoys working with numbers, building reports, analysing data, and improving busi …","descriptionMarkdown": "## Job Description\n\nWe are looking for a motivated Accountant to join our growing team.\n\nThis role is ideal for someone who enjoys working with numbers, building reports, analysing data, and improving …","publishDate": "2026-06-06","publishDateISO": "2026-06-06T03:14:14.000Z","expireDate": "2026-08-05","contentHash": "3188246feb290220","source": "wuzzuf.net","scrapedAt": "2026-06-06T04:03:31.395Z","isRepost": true,"originalPublishDate": "2026-06-06T03:14:14.000Z","originalUrl": "https://wuzzuf.net/jobs/p/gaikcpvpinmw-accountant-meam-tripoli-libya"}
Examples
Search for accountant roles in Cairo:
{"keyword": "accountant","city": "Cairo","maxResults": 100}
Remote, experienced-level roles only:
{"keyword": "developer","workplaceArrangement": "Remote","careerLevel": "Experienced","maxResults": 100}
Scrape a specific search URL, filters included:
{"startUrls": [{"url": "https://wuzzuf.net/search/jobs?q=engineer&filters[country][0]=Egypt&filters[post_date][0]=within_1_week"}],"maxResults": 200}
Daily feed (run on a schedule):
{"keyword": "accountant","daysOld": 1,"skipReposts": true,"maxResults": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only jobs posted in the last 24 hours that were not seen before.
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.9 |
| 100,000 | ~$149 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.89 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 25 results | ~10 seconds |
| 100 results | ~15 seconds |
| 1,000 results | 1–2 minutes |
| 10,000 results | 10–15 minutes |
Known limitations
- Salary is only returned when the employer publishes it — many listings carry
nullsalary fields. - Company details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: wuzzuf.net — Egypt job listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Method: reads Wuzzuf's own structured data feed directly — no browser rendering, which keeps runs fast and reliable
- Retry: automatic retry with identity rotation on network errors and blocks
Rate this actor
If this actor served you well, please take 10 seconds to rate it on the Reviews tab — ratings are the main way other users find scrapers that actually work.
Ran into a problem instead? Don't leave it in a review — open an Issue on the Issues tab. Issues reach us directly and get fixed; that's the fastest route to a solution.
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl