Anapec Jobs Scraper
Pricing
from $5.00 / 1,000 job offer results
Anapec Jobs Scraper
Extract structured job listings, salaries, and company data from Anapec (Morocco's national employment agency).
Pricing
from $5.00 / 1,000 job offer results
Rating
0.0
(0)
Developer
LIAICHI MUSTAPHA
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
ANAPEC Morocco Jobs Scraper
Scrape structured job offers from ANAPEC, Morocco's national employment agency. Collect job titles, locations, vacancies, contracts, salaries, sectors, education, experience, employer details, and full candidate profiles.
Features
- Extracts current ANAPEC job offers from search-result pages
- Enriches every offer from its detail page when requested
- Collects vacancies separately from job-offer count
- Captures salary, contract, education, experience, languages, and agency fields
- Handles pagination, duplicate references, retries, rate limits, and proxies
- Provides a structured dataset view and a
STATSrun summary
Use Cases
- Moroccan job-market analysis: compare demand by city, sector, and role
- Recruitment intelligence: monitor vacancies, contracts, and qualification requirements
- Salary research: collect publicly listed monthly salary information
- Skills analysis: identify recurring education, experience, and language requirements
- Job monitoring: schedule recurring runs for new ANAPEC offers
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | ANAPEC full search | Search-result URLs to collect |
maxItems | integer | 100 | Maximum unique job offers |
includeDetails | boolean | true | Enrich each offer from its detail page |
maxConcurrency | integer | 12 | Parallel ANAPEC requests |
maxRequestsPerMinute | integer | 480 | Request-rate ceiling |
proxyConfiguration | object | Morocco Residential Proxy | Morocco-targeted proxy required from Apify Cloud |
{"startUrls": [{"url": "https://www.anapec.org/sigec-app-rv/fr/chercheurs/resultat_recherche/tout:all"}],"maxItems": 100,"includeDetails": true,"maxConcurrency": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "MA"}}
Output
Each dataset item represents one ANAPEC job offer:
{"jobId": "1152951","reference": "TI3107261152951","postedDate": "31/07/2026","jobTitle": "Employe de libre service","vacancies": 20,"company": "Marjane Market","location": "TIZNIT","agency": "TIZNIT / LOTFI","sector": "Commerce de gros","contractType": "CI","monthlySalary": "3500 DHS","education": "Technicien specialise","experience": "6 mois - 1 an","url": "https://www.anapec.org/sigec-app-rv/fr/entreprises/bloc_offre_home/1152951/resultat_recherche","source": "ANAPEC","scrapedAt": "2026-08-22T11:00:00.000Z"}
The STATS record reports detected offers, pages processed, offers reserved and saved, duplicates, failures, and duration.
How to Use
- Open the Actor in Apify Console.
- Keep the default ANAPEC search URL or add a filtered search URL.
- Start with 10 to 20 items and keep detail enrichment enabled.
- Adjust concurrency or the request-rate limit for larger runs.
- Run the Actor and inspect the Output table.
- Export results as JSON, CSV, Excel, or through the API.
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("scraper_guru/anapec-jobs-scraper").call(run_input={"maxItems": 100,"includeDetails": True,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["jobTitle"], job["location"], job["vacancies"])
Pricing
This is a pay-per-event Actor. Each successfully saved job offer costs $0.005, or $5 per 1,000 results, plus the small Actor-start charge displayed by Apify. Failed requests and duplicate offers do not create paid result events.
FAQ
Does one result equal one open position?
No. One result is one job offer. Use vacancies to see how many positions that offer represents.
Can I collect only listing-level fields?
Yes. Disable includeDetails for a faster snapshot without detail-page fields.
Why are some salary or employer fields empty?
ANAPEC does not publish every field for every offer. Missing values are returned as null instead of being guessed.
Can I scrape a filtered ANAPEC search?
Yes. Paste the filtered search-result URL into startUrls; pagination is handled automatically.
Can I schedule daily monitoring?
Yes. Create an Apify Task with your chosen URL and limits, then attach a schedule.
Is this the entire Moroccan labor market?
No. The data represents public offers visible in ANAPEC search results, not every vacancy or completed hire in Morocco.
Use the Actor lawfully, respect ANAPEC's terms, and avoid excessive request rates.