Let's build Flouria together

Read our story

Read our story

Read our story

Flouria is a fast-growing start-up with a clear mission: to put healthcare back into the hands of women.


This mission comes from personal experience. As founders, we ourselves got stuck in the healthcare system with issues like infertility, miscarriages, and premature menopause (POI). We were left with unanswered questions, long waiting lists, and the feeling of not being heard.


That’s why we built Flouria. A platform that gives women access to personalised care at every life phase. A place where women can consult with specialised doctors without waiting lists, and get the care they deserve.


Our small and growing team includes experienced founders, developers, doctors, and other professionals all working toward one goal, better care for women.

We’re always looking for talented people who want to join us in building this mission.


Want to help us shape the future of women’s health?

No open positions at this time.
Life at Flouria
Life at Flouria

What’s the best thing about working at Flouria?

What’s the best thing about working at Flouria?

Beautiful office in the heart of Amsterdam

Our office is located at WeWork in the city centre, with comfy workspaces and great barista coffee.

Work closely with the founders

You’ll be working directly with the founders and have a visible impact on how Flouria grows.

Fast-paced environment with lots of responsibility

In our small team, you get ownership and the space to help shape your role and make an immediate impact.

Cuddles with our office dog Zoë

Because there’s nothing better for your mental and physical health than a daily dose of fluffy Labradoodle.

Real impact on women’s health

You’ll be working in a fast-growing sector where change is badly needed, and where your work truly makes a difference.

(function() { const ATTR_KEY = "flouria_attribution_v1"; const SESSION_KEY = "flouria_session_v1"; const APP_DOMAIN = "app.flouria.health"; // First-touch UTMs — stored in localStorage, never overwritten const utmParams = [ "utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content", "utm_id" ]; // Click IDs — session-only, stored in sessionStorage, always overwritten with latest const clickIdParams = [ "fbclid", // Meta (Facebook / Instagram) "fbadid", // Meta Ad creative ID "gclid", // Google Ads "ttclid", // TikTok "li_fat_id" // LinkedIn ]; const firstTouchFields = ["first_touch_at", "landing_page", "referrer"]; function getStoredAttribution() { try { return JSON.parse(localStorage.getItem(ATTR_KEY) || "{}"); } catch (e) { return {}; } } function storeAttribution(data) { localStorage.setItem(ATTR_KEY, JSON.stringify(data)); } function getSessionClickIds() { try { return JSON.parse(sessionStorage.getItem(SESSION_KEY) || "{}"); } catch (e) { return {}; } } function storeSessionClickIds(data) { sessionStorage.setItem(SESSION_KEY, JSON.stringify(data)); } function captureAttribution() { const existing = getStoredAttribution(); const existingSession = getSessionClickIds(); const urlParams = new URLSearchParams(window.location.search); // --- Persistent first-touch (localStorage) --- const attribution = { first_touch_at: existing.first_touch_at || new Date().toISOString(), landing_page: existing.landing_page || window.location.pathname, referrer: existing.referrer || document.referrer || null }; utmParams.forEach(param => { const value = urlParams.get(param); if (value) { attribution[param] = existing[param] || value; } else if (existing[param]) { attribution[param] = existing[param]; } }); storeAttribution(attribution); // --- Session-only click IDs (sessionStorage) --- const sessionData = { ...existingSession }; clickIdParams.forEach(param => { const value = urlParams.get(param); if (value) { sessionData[param] = value; // always overwrite with the latest click } }); storeSessionClickIds(sessionData); } function decorateUrl(url) { try { const stored = getStoredAttribution(); const session = getSessionClickIds(); const u = new URL(url); utmParams.forEach(param => { if (stored[param] && !u.searchParams.has(param)) { u.searchParams.set(param, stored[param]); } }); firstTouchFields.forEach(param => { if (stored[param] && !u.searchParams.has(param)) { u.searchParams.set(param, stored[param]); } }); clickIdParams.forEach(param => { if (session[param] && !u.searchParams.has(param)) { u.searchParams.set(param, session[param]); } }); return u.toString(); } catch (e) { return url; } } function decorateLinks() { const links = document.querySelectorAll(`a[href*="${APP_DOMAIN}"]`); links.forEach(link => { if (link.dataset.attributionDecorated) return; const original = link.getAttribute("href"); const decorated = decorateUrl(original); if (decorated !== original) { link.setAttribute("href", decorated); } link.dataset.attributionDecorated = "true"; }); } captureAttribution(); decorateLinks(); const observer = new MutationObserver(() => decorateLinks()); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ["href"] }); let currentPath = window.location.pathname; setInterval(() => { if (window.location.pathname !== currentPath) { currentPath = window.location.pathname; decorateLinks(); } }, 500); window.decorateAppUrl = function(url) { return decorateUrl(url); }; })();