Rekrute Jobs Scraper
Pricing
from $5.00 / 1,000 results
Rekrute Jobs Scraper
Scrape job listings from Rekrute.com (Morocco). Perfect for HR platforms, job market analysis, and AI training data.
Pricing
from $5.00 / 1,000 results
Rating
5.0
(1)
Developer
LIAICHI MUSTAPHA
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
3
Monthly active users
17 days ago
Last modified
Categories
Features
Share
Scrape job listings from Rekrute.com, Morocco's largest recruitment platform, and get clean, structured job data: title, company, city, sector, contract type, experience level, education level, publication and expiry dates, and the full job description.
Features
- Complete job records: title, company, city, sector, contract type, experience and education level, dates and description
- Full feed or your own search: leave the input empty for every current Rekrute listing, or paste any Rekrute search URL (sector, city, contract type)
- Automatic pagination through all result pages
- Fast and light: plain HTTP requests, no browser; 1,000 jobs take a few minutes
- Robust to site changes: reads Rekrute's structured job data first, with fallbacks for its newer page layout and for listings whose data is malformed
- No proxy needed for normal runs
Use cases
- Job market analytics: track demand by sector, city, contract type and experience level across Morocco
- Talent and HR research: see which roles and education levels employers ask for
- Recruitment and lead generation: find companies that are hiring right now, by sector and city
- AI and NLP datasets: build collections of French-language job descriptions for classification or matching models
- Job board monitoring: schedule daily runs to track new listings
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | empty (full feed) | Rekrute search URLs to start from |
maxListings | integer | 100 | Maximum jobs to save; 0 for no limit |
maxConcurrency | integer | 10 | Parallel requests to Rekrute |
proxyConfiguration | object | no proxy | Optional; enable only if requests are blocked |
Example: every current IT job.
{"startUrls": [{ "url": "https://www.rekrute.com/offres.html?s=1&p=1&o=1&jobtype=1§or=100" }],"maxListings": 500}
To scrape a sector, city or contract type, filter the search on rekrute.com and paste the resulting URL into startUrls.
Output
Each dataset item is one job listing:
{"job_title": "Ingénieur en Maintenance","company_name": "Best Biscuits Maroc","location": "Had Soualem","sector_industry": "Agroalimentaire","contract_type": "CDI","experience_level": "Intermédiaire (3 à 5 ans)","education_level": "Bac +5 et plus","date_posted": "2026-10-26 18:25:58","valid_through": "2026-12-26 18:25:58","description": "Au cœur du secteur dynamique de l'agroalimentaire à Had Soualem...","job_url": "https://www.rekrute.com/offre-emploi-ingenieur-en-maintenance-recrutement-best-biscuits-maroc-had-soualem-188012.html","scraped_at": "2026-10-26T23:23:37.023Z"}
Values are kept as Rekrute publishes them, in French. Some companies post as "Confidential". Rekrute listings do not include salaries, so there is no salary field.
How to use
- Click Try for free.
- Leave Start URLs empty for the full Rekrute feed, or paste a filtered search URL.
- Set
maxListings(start with 50 to see the data). - Click Start, then open the Output tab.
- Download as JSON, CSV or Excel, or read the dataset through the API.
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("scraper_guru/rekrute-jobs-scraper").call(run_input={"maxListings": 1000})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["job_title"], "|", job["company_name"], "|", job["location"])
Pricing
This Actor uses pay-per-event pricing, so platform usage is included. You pay for each job saved to the dataset, plus a tiny start charge per run.
| Plan | Per 1,000 jobs |
|---|---|
| All plans | $5.00 |
Example: 200 jobs cost about $1.00. Apify shows the exact price before each run.
What's new (October 2026)
education_levelis filled again after Rekrute's page redesign.- Listings whose published job data is malformed are no longer skipped.
maxListingsnow counts saved jobs, so you get the number you ask for when enough listings exist.
FAQ
Do I need a Rekrute account? No. The Actor reads publicly available job listings without logging in.
Do I need a proxy? No. Direct requests work. Enable Apify Proxy only if your runs get blocked.
Can I scrape one sector or city only?
Yes. Filter the search on rekrute.com, copy the URL and paste it into startUrls.
How do I monitor new jobs every day?
Save your input as an Apify Task and add a daily schedule. Each run creates its own dataset; compare job_url values across runs to find new listings.
Why is a field empty? Rekrute does not publish every attribute for every job. Missing values stay empty instead of being guessed.
Something broke or a field looks wrong? Open the Issues tab on this Actor page.
More Morocco and MENA data
Other Actors from the same developer for Moroccan and regional data:
| Actor | What it collects |
|---|---|
| Emploi Public Morocco Scraper | Moroccan public-sector job competitions |
| ANAPEC Jobs Scraper | Job offers from ANAPEC, Morocco's national employment agency |
| Tanqeeb Jobs Scraper | Job listings across 18 Middle East and North Africa countries |
Built by Mustapha Liaichi.