MyCIEL

IT & Cybersecurity Jobs in International Organisations

← Back to the dashboard

What is this?

MyCIEL is a personal, working remake of CIEL (Carrières Internationales en Ligne), the French Ministry for Europe and Foreign Affairs' portal of vacancies in international organisations — which is not updated anymore. MyCIEL scrapes the career portals of the organisations directly, every two days, stores everything in a local database, and highlights the postings that match a senior ICT / cybersecurity profile (keyword match + minimum grade per organisation, e.g. AD6+ for EU institutions, P4+ for the UN system, A3+ for NATO).

The dashboard lets you search, filter by organisation, seniority, domain and status, and export to CSV. The map view plots the duty stations of the matching vacancies.

Organisations covered

This table is generated live from the database.

OrganisationJobs trackedRelevant
Loading…

Known gaps & limitations

What counts as relevant

Two stages. Postings that are not staff vacancies are never stored: internships, studentships, traineeships, apprenticeships, fellowships and postdocs, graduate programmes, consultancies and secondments (including Seconded National Experts). Of what remains, a posting is flagged relevant when its title matches the ICT / cybersecurity keyword list and it meets the minimum grade for that organisation; General Service posts and locally-recruited positions outside France are kept but never flagged.

The dashboard opens on Relevant & open. Switch the Status filter to "All jobs" to browse everything that was stored, or to Bookmarked for the ones you starred.

Closed vacancies are detected two ways: a deadline in the past, or the posting disappearing from its organisation's listing. The second matters because many portals publish no deadline and keep the job page online (with a working "Apply now" button) after the vacancy is filled. Closed jobs are hidden unless you choose "All jobs", where they appear greyed out and marked delisted.

Bookmarks (the star column) are kept in your browser's local storage, so the site needs no accounts or server - but they stay in this browser only and are not synced between devices.

Matching keywords also produce the domain tags used by the filter (IT, cybersecurity, cloud, networking, AI/ML, architecture, software, data, devops, telecom, digital). Jobs that match no keyword carry no tag, so picking a domain never returns unrelated postings. Matching is done on the title only — and on the title minus any appended organisation name, so a "Legal Officer" at ENISA is not flagged just because its employer is a cybersecurity agency.

How it works

Python scrapers (requests/BeautifulSoup, plus HTTP/2 and a headless browser where a portal needs one) → SQLite → this static dashboard. The whole thing runs serverless: a scheduled GitHub Actions job scrapes every two days, keeps the SQLite database as a release asset so it can tell new postings from old ones, and publishes these pages to Cloudflare Pages. Datacenter IPs cost almost no coverage — of 63 sources only one (Frontex) refuses them, and its vacancies show up via EPSO anyway.