Morocco Public Jobs & Concours Scraper
Pricing
from $5.00 / 1,000 public concours results
Morocco Public Jobs & Concours Scraper
Scrape Emploi-Public Morocco concours with jobs, deadlines, grades, vacancies, specialties, administrations, application methods, and official PDFs.
Pricing
from $5.00 / 1,000 public concours 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
Scrape structured public-sector recruitment competitions from Emploi-Public.ma, Morocco's official public employment portal. Collect administrations, grades, vacancies, specialties, deadlines, exam dates, application methods, concours codes, and official document links.
Features
- Extracts current Moroccan public-sector concours and recruitment announcements
- Enriches each result from its official detail page
- Captures application deadlines, exam dates, publication dates, and vacancy counts
- Collects grades, pay scales, specialties, recruitment types, and concours codes
- Identifies announcements, written-exam invitations, oral invitations, results, cancellations, and postponements
- Includes links to opening decrees, invitations, results, and other official documents
- Supports keyword, stage, administration type, region, and custom URL inputs
- Handles pagination, duplicate concours IDs, retries, rate limits, and optional proxies
- Produces a structured dataset view and a
STATSrun summary
Use Cases
- Public job monitoring: track newly published Moroccan government competitions
- Candidate alerts: identify approaching application deadlines and exam dates
- Recruitment analytics: compare public-sector demand by administration, grade, or specialty
- Document collection: gather official concours notices and result-document URLs
- Labor-market research: analyze public vacancies and hiring activity over time
- Automation: schedule recurring runs and send new concours to email, Slack, Sheets, or a database
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | empty | Optional list, filtered-search, or individual concours URLs |
keyword | string | empty | Search keyword used when startUrls is empty |
procedure | string | all | Announcement stage filter |
administrationType | string | all | State, local-authority, or public-establishment filter |
region | string | 0 | Moroccan region identifier; 0 means all regions |
maxItems | integer | 100 | Maximum unique concours records |
maxPages | integer | 20 | Maximum search-result pages |
includeDetails | boolean | true | Visit detail pages for complete fields |
includeDocuments | boolean | true | Include official document URLs |
maxConcurrency | integer | 8 | Parallel source requests |
maxRequestsPerMinute | integer | 240 | Request-rate ceiling |
proxyConfiguration | object | direct | Optional Apify Proxy settings |
{"keyword": "ingénieur","procedure": "avis","administrationType": "service_etat","region": "5","maxItems": 100,"maxPages": 20,"includeDetails": true,"includeDocuments": true}
To reproduce a search configured in the source website, paste its filtered results URL into startUrls.
Output
Each dataset item represents one concours announcement or publication stage:
{"concoursId": "7babf89f-94cb-4f16-8e62-84adf1859961","title": "Avis de concours de recrutement de Administrateur 2ème grade - Echelle 11","positionTitle": "Administrateur 2ème grade - echelle 11","status": "announcement","administration": "Ministère de la Jeunesse, de la Culture et de la Communication","vacancies": 1,"applicationDeadline": "2026-08-28","applicationDeadlineTime": "16:30","examDate": "2026-09-13","publicationDate": "2026-08-13","specialties": ["Audit et Contrôle de Gestion"],"grade": "Administrateur 2ème grade - echelle 11","scale": 11,"recruitmentType": "Recrutement régulier","depositType": "sur emploi-public","concoursCode": "C43263/26","onlineApplicationAvailable": true,"documents": [{"label": "Arrêté d'ouverture du concours","url": "https://www.emploi-public.ma/fr/concours/download/arrete/..."}],"detailUrl": "https://www.emploi-public.ma/fr/concours/details/...","source": "EMPLOI_PUBLIC_MA","scrapedAt": "2026-08-22T16:00:00.000Z"}
Missing source fields are returned as null or empty arrays rather than guessed. The STATS record reports detected results, pages processed, records saved, duplicates, failures, and run duration.
How to Use
- Open the Actor in Apify Console.
- Leave the filters empty to collect the latest public concours, or select a keyword, stage, administration type, and region.
- Keep detail and document enrichment enabled for complete records.
- Start with 10 to 100 items before increasing the limits.
- Run the Actor and inspect the Output table.
- Export the dataset as JSON, CSV, Excel, or access it through the API.
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("scraper_guru/emploi-public-morocco-scraper").call(run_input={"procedure": "avis","maxItems": 100,"includeDetails": True,"includeDocuments": True,})for concours in client.dataset(run["defaultDatasetId"]).iterate_items():print(concours["title"], concours["applicationDeadline"])
Pricing
The intended pricing is $0.005 per saved concours result, or $5 per 1,000 results, plus the small Actor-start charge displayed by Apify. Failed requests and duplicate concours do not produce result charges.
Data Notes
- The Actor collects public information visible on Emploi-Public.ma; it does not submit applications or bypass candidate authentication.
onlineApplicationAvailableindicates that the source advertises online submission. Authentication may still be required on the official portal.- Document URLs point to official source downloads. The Actor does not parse the contents of PDF files.
- Dates are normalized to
YYYY-MM-DD, while the original deadline text remains available inapplicationDeadlineRaw.
FAQ
Is this limited to active announcements?
No. Use procedure to collect announcements, written-exam invitations, oral invitations, or results.
Can I collect one specific concours?
Yes. Add its /fr/concours/details/... URL to startUrls.
Can I monitor only one ministry or profession?
Use a keyword or paste a filtered Emploi-Public search URL into startUrls.
Are official PDFs downloaded into the dataset?
No. The dataset contains direct official document URLs, keeping each result lightweight.
Why can some dates or specialties be empty?
The portal does not publish every field for every announcement stage. Unpublished values remain null.
Can this Actor be scheduled?
Yes. Create an Apify Task with your filters and run it daily or weekly to monitor new publications.
This Actor is not affiliated with the Moroccan government. Use the data lawfully and respect the source website's terms and capacity.