<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.vooruitzenden.nl</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/vacatures</loc>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/werknemers</loc>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/werkgevers</loc>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/overons</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/contact</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/faq</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/blog</loc>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/uitzendenb2c</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/uitzendenb2b</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/flexpoolmanagement</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/wervenenselectie</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/formsb2c</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.vooruitzenden.nl/formsb2b</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset><style>
    @media (max-width: 768px) {
        #cookie-banner {
            bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
        }
    }

    #cookie-banner {
        visibility: hidden;
        opacity: 0;
        transform: translateY(8px);
        transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
    }

    #cookie-banner[data-visible="true"] {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
        transition-delay: 0s;
    }

    #cookie-banner [data-cookie-switch] {
        accent-color: #1E5EFF;
        width: 18px;
        height: 18px;
        margin-top: 2px;
    }

    #cookie-banner [data-cookie-switch]:disabled {
        opacity: .65;
        cursor: not-allowed;
    }
</style>

<div id="cookie-banner" role="complementary" aria-label="Cookievoorkeuren" aria-live="polite"
    style="position:fixed; right:12px; bottom:12px; z-index:2147483647; width:min(320px, calc(100vw - 24px)); max-width:320px; font-family:Figtree, sans-serif; pointer-events:none;">
    <div
        style="border:1px solid rgba(203,213,225,.95); border-radius:18px; background:rgba(255,255,255,.94); color:#0f172a; padding:14px; box-shadow:0 18px 45px rgba(15,23,42,.16); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); pointer-events:auto;">
        <p
            style="margin:0; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#64748b;">
            Cookievoorkeuren
        </p>

        <p style="margin:8px 0 0; font-size:14px; line-height:1.5; color:#334155;">
            Kies per onderdeel wat we mogen meten of personaliseren.
            Zo houden we alleen bij wat jij toestaat.

            Microsoft Clarity, Leadinfo en Albacross volgen hierbij dezelfde keuze als analytics. Zet je analytics uit, dan worden deze ook niet geladen. Onze privacyverklaring heeft meer details.
            <a href="https://www.vooruitzenden.nl/images/docs/Privacy_Statement_2026_Vooruitzenden.pdf"
                style="color:#1E5EFF; font-weight:600; text-decoration:underline; text-underline-offset:3px;">
                Meer info →
            </a>
        </p>

        <button type="button" data-cookie-action="toggle-preferences" aria-expanded="false"
            style="appearance:none; border:1px solid #dbeafe; background:#eff6ff; color:#1d4ed8; width:100%; padding:10px 12px; margin-top:12px; border-radius:12px; font-size:13px; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; text-align:left;">
            <span data-cookie-preferences-label>Voorkeuren beheren</span>
            <span data-cookie-preferences-icon aria-hidden="true" style="font-size:16px; line-height:1; transition:transform .2s ease;">+</span>
        </button>

        <div data-cookie-preferences hidden
            style="margin-top:12px; padding-top:2px; display:flex; flex-direction:column; gap:10px; max-height:min(52vh, 320px); overflow-y:auto; overflow-x:hidden; padding-right:4px;">
            <div
                style="border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; padding:12px 12px 10px; display:flex; flex-direction:column; gap:8px;">
                <div style="display:flex; align-items:flex-start; justify-content:space-between; gap:12px;">
                    <div>
                        <p style="margin:0; font-size:14px; font-weight:700; color:#0f172a;">Noodzakelijk</p>
                        <p style="margin:4px 0 0; font-size:12px; line-height:1.5; color:#475569;">
                            Nodig om de website veilig en bruikbaar te houden.
                        </p>
                    </div>

                    <input type="checkbox" checked disabled aria-label="Noodzakelijke cookies zijn altijd actief"
                        data-cookie-switch="necessary">
                </div>

                <div style="font-size:12px; line-height:1.5; color:#334155;">
                    <strong style="color:#0f172a;">Wel:</strong> sessiebeheer, beveiliging, onthouden van je cookiekeuze.
                    <br>
                    <strong style="color:#0f172a;">Niet:</strong> bezoekanalyse, advertentiemeting of personalisatie.
                </div>
            </div>

            <div
                style="border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; padding:12px 12px 10px; display:flex; flex-direction:column; gap:8px;">
                <div style="display:flex; align-items:flex-start; justify-content:space-between; gap:12px;">
                    <div>
                        <p style="margin:0; font-size:14px; font-weight:700; color:#0f172a;">Analytics</p>
                        <p style="margin:4px 0 0; font-size:12px; line-height:1.5; color:#475569;">
                            Helpt ons begrijpen welke pagina's en formulieren goed werken. Dit legt ook je conversies, formulierinteracties en Clarity-metingen vast.
                        </p>
                    </div>

                    <input type="checkbox" aria-label="Analytics storage" data-cookie-switch="analytics_storage">
                </div>

                <div style="font-size:12px; line-height:1.5; color:#334155;">
                    <strong style="color:#0f172a;">Wel:</strong> pageviews, klikgedrag, formulierinteracties, heatmaps en algemene prestatiemetingen.
                    <br>
                    <strong style="color:#0f172a;">Niet:</strong> advertentieopslag, advertentieprofielen of gepersonaliseerde campagnes.
                </div>
            </div>

            <div
                style="border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; padding:12px 12px 10px; display:flex; flex-direction:column; gap:8px;">
                <div style="display:flex; align-items:flex-start; justify-content:space-between; gap:12px;">
                    <div>
                        <p style="margin:0; font-size:14px; font-weight:700; color:#0f172a;">Leadinfo</p>
                        <p style="margin:4px 0 0; font-size:12px; line-height:1.5; color:#475569;">
                            Herkent zakelijke bezoekers op basis van IP-adres. Zo zien we welke bedrijven interesse hebben.
                        </p>
                    </div>

                    <input type="checkbox" aria-label="Leadinfo B2B leadherkenning" data-cookie-switch="leadinfo">
                </div>

                <div style="font-size:12px; line-height:1.5; color:#334155;">
                    <strong style="color:#0f172a;">Wel:</strong> bedrijfsnaam, branche en bezoekgedrag van zakelijke bezoekers.
                    <br>
                    <strong style="color:#0f172a;">Niet:</strong> persoonlijke gegevens van individuele bezoekers of advertentietracking.
                </div>
            </div>

            <div
                style="border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; padding:12px 12px 10px; display:flex; flex-direction:column; gap:8px;">
                <div style="display:flex; align-items:flex-start; justify-content:space-between; gap:12px;">
                    <div>
                        <p style="margin:0; font-size:14px; font-weight:700; color:#0f172a;">Albacross</p>
                        <p style="margin:4px 0 0; font-size:12px; line-height:1.5; color:#475569;">
                            B2B-leadgeneratie: toont welke bedrijven onze website bezoeken en hoe zij deze gebruiken.
                        </p>
                    </div>

                    <input type="checkbox" aria-label="Albacross B2B leadgeneratie" data-cookie-switch="albacross">
                </div>

                <div style="font-size:12px; line-height:1.5; color:#334155;">
                    <strong style="color:#0f172a;">Wel:</strong> bedrijfsbezoeken, account-based marketing inzichten.
                    <br>
                    <strong style="color:#0f172a;">Niet:</strong> persoonlijke tracking van consumenten of advertentiedoeleinden.
                </div>
            </div>

            <div
                style="border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; padding:12px 12px 10px; display:flex; flex-direction:column; gap:8px;">
                <div style="display:flex; align-items:flex-start; justify-content:space-between; gap:12px;">
                    <div>
                        <p style="margin:0; font-size:14px; font-weight:700; color:#0f172a;">Advertentie Data & Remarketing</p>
                        <p style="margin:4px 0 0; font-size:12px; line-height:1.5; color:#475569;">
                            Staat opslag toe die nodig is voor advertentiemeting en remarketing.
                        </p>
                    </div>

                    <input type="checkbox" aria-label="Advertentie Data & Remarketing" data-cookie-switch="ad_storage">
                </div>

                <div style="font-size:12px; line-height:1.5; color:#334155;">
                    <strong style="color:#0f172a;">Wel:</strong> advertentiecookies, conversiemeting en remarketing-tags.
                    <br>
                    <strong style="color:#0f172a;">Niet:</strong> analyse van sitegebruik zonder advertentiedoel of gepersonaliseerde profieldata.
                </div>
            </div>

            <div
                style="border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; padding:12px 12px 10px; display:flex; flex-direction:column; gap:8px;">
                <div style="display:flex; align-items:flex-start; justify-content:space-between; gap:12px;">
                    <div>
                        <p style="margin:0; font-size:14px; font-weight:700; color:#0f172a;">Gebruikersmetingen van Advertenties</p>
                        <p style="margin:4px 0 0; font-size:12px; line-height:1.5; color:#475569;">
                            Bepaalt of gebruikersdata mag worden gebruikt voor advertentiemeting.
                        </p>
                    </div>

                    <input type="checkbox" aria-label="Gebruikersmetingen van Advertenties" data-cookie-switch="ad_user_data">
                </div>

                <div style="font-size:12px; line-height:1.5; color:#334155;">
                    <strong style="color:#0f172a;">Wel:</strong> gehashte contact- of conversiedata voor Google Ads-metingen, met daarnaast beperkte anonieme locatiedemographics.
                    <br>
                    <strong style="color:#0f172a;">Niet:</strong> anonieme paginastatistieken of pure functionele siteopslag.
                </div>
            </div>

            <div
                style="border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; padding:12px 12px 10px; display:flex; flex-direction:column; gap:8px;">
                <div style="display:flex; align-items:flex-start; justify-content:space-between; gap:12px;">
                    <div>
                        <p style="margin:0; font-size:14px; font-weight:700; color:#0f172a;">Advertentievoorkeuren</p>
                        <p style="margin:4px 0 0; font-size:12px; line-height:1.5; color:#475569;">
                            Bepaalt of advertenties op interesses en eerdere interacties mogen worden afgestemd.
                        </p>
                    </div>

                    <input type="checkbox" aria-label="Advertentievoorkeuren" data-cookie-switch="ad_personalization">
                </div>

                <div style="font-size:12px; line-height:1.5; color:#334155;">
                    <strong style="color:#0f172a;">Wel:</strong> gepersonaliseerde advertenties en doelgroepsegmenten.
                    <br>
                    <strong style="color:#0f172a;">Niet:</strong> algemene advertentiemeting of noodzakelijke websitefunctionaliteit.
                </div>
            </div>
        </div>

        <div style="margin-top:14px; display:flex; flex-direction:column; gap:8px;">
            <button type="button" data-cookie-action="save-preferences"
                style="appearance:none; border:1px solid #cbd5e1; background:#ffffff; color:#0f172a; border-radius:12px; padding:10px 14px; font-size:14px; font-weight:600; cursor:pointer; text-align:center;">
                Voorkeuren opslaan
            </button>

            <div style="display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px;">
                <button type="button" data-cookie-action="necessary"
                    style="appearance:none; border:1px solid #cbd5e1; background:#ffffff; color:#0f172a; border-radius:12px; padding:10px 12px; font-size:14px; font-weight:600; cursor:pointer; text-align:center;">
                    Alleen noodzakelijk
                </button>

                <button type="button" data-cookie-action="accept"
                    style="appearance:none; border:1px solid #cbd5e1; background:#ffffff; color:#0f172a; border-radius:12px; padding:10px 12px; font-size:14px; font-weight:600; cursor:pointer; text-align:center;">
                    Alles toestaan
                </button>
            </div>
        </div>
    </div>
</div>

<script>
    (function() {
        var STORAGE_KEY = 'cookie-consent';
        var COOKIE_KEY = 'cookie_consent';
        var CONSENT_MAX_AGE_DAYS = 365;
        var banner = document.getElementById('cookie-banner');

        if (!banner) return;

        var preferencesPanel = banner.querySelector('[data-cookie-preferences]');

        function parseConsent(rawValue) {
            if (!rawValue) return null;

            try {
                return JSON.parse(rawValue);
            } catch (error) {
                return null;
            }
        }

        function readCookieConsent() {
            var match = document.cookie.match(new RegExp('(?:^|; )' + COOKIE_KEY + '=([^;]*)'));
            return match ? parseConsent(decodeURIComponent(match[1])) : null;
        }

        function readStoredConsent() {
            try {
                var localConsent = parseConsent(window.localStorage.getItem(STORAGE_KEY));
                return localConsent || readCookieConsent();
            } catch (error) {
                return readCookieConsent();
            }
        }

        function persistConsent(consent) {
            try {
                window.localStorage.setItem(STORAGE_KEY, JSON.stringify(consent));
            } catch (error) {}

            var expires = new Date(Date.now() + CONSENT_MAX_AGE_DAYS * 864e5).toUTCString();
            document.cookie = COOKIE_KEY + '=' + encodeURIComponent(JSON.stringify(consent)) + ';expires=' +
                expires + ';path=/;SameSite=Lax';
        }

        function dispatchConsentEvent(consent) {
            window.dispatchEvent(new CustomEvent('cookie-consent', {
                detail: consent
            }));
        }

        function resolveConsentFlag(consent, key) {
            if (!consent) return false;
            if (typeof consent[key] !== 'undefined') return !!consent[key];

            if (key === 'analytics_storage') {
                return !!consent.analytics;
            }

            if (key === 'ad_storage' || key === 'ad_user_data' || key === 'ad_personalization') {
                return !!consent.marketing;
            }

            return false;
        }

        function syncSwitches(consent) {
            ['analytics_storage', 'ad_storage', 'ad_user_data', 'ad_personalization', 'leadinfo', 'albacross'].forEach(function(key) {
                var input = banner.querySelector('[data-cookie-switch="' + key + '"]');

                if (input) {
                    input.checked = resolveConsentFlag(consent, key);
                }
            });
        }

        function setPreferencesExpanded(expanded) {
            var toggleButton = banner.querySelector('[data-cookie-action="toggle-preferences"]');
            var toggleLabel = banner.querySelector('[data-cookie-preferences-label]');
            var toggleIcon = banner.querySelector('[data-cookie-preferences-icon]');

            if (!preferencesPanel || !toggleButton) return;

            preferencesPanel.hidden = !expanded;
            preferencesPanel.style.display = expanded ? 'flex' : 'none';
            toggleButton.setAttribute('aria-expanded', expanded ? 'true' : 'false');

            if (toggleLabel) {
                toggleLabel.textContent = expanded ? 'Voorkeuren verbergen' : 'Voorkeuren beheren';
            }

            if (toggleIcon) {
                toggleIcon.textContent = expanded ? '−' : '+';
                toggleIcon.style.transform = expanded ? 'rotate(180deg)' : 'rotate(0deg)';
            }
        }

        function saveConsent(options) {
            var consent = {
                necessary: true,
                analytics_storage: !!options.analytics_storage,
                ad_storage: !!options.ad_storage,
                ad_user_data: !!options.ad_user_data,
                ad_personalization: !!options.ad_personalization,
                leadinfo: !!options.leadinfo,
                albacross: !!options.albacross,
                analytics: !!options.analytics_storage,
                marketing: !!options.ad_storage || !!options.ad_user_data || !!options.ad_personalization,
                timestamp: new Date().toISOString()
            };

            persistConsent(consent);

            dispatchConsentEvent(consent);
            banner.setAttribute('data-visible', 'false');

            return consent;
        }

        function showBannerIfNeeded() {
            var storedConsent = readStoredConsent();

            syncSwitches(storedConsent);
            setPreferencesExpanded(false);
            banner.setAttribute('data-visible', storedConsent ? 'false' : 'true');
        }

        var necessaryButton = banner.querySelector('[data-cookie-action="necessary"]');
        var togglePreferencesButton = banner.querySelector('[data-cookie-action="toggle-preferences"]');
        var savePreferencesButton = banner.querySelector('[data-cookie-action="save-preferences"]');
        var acceptButton = banner.querySelector('[data-cookie-action="accept"]');

        if (necessaryButton) {
            necessaryButton.addEventListener('click', function() {
                saveConsent({
                    analytics_storage: false,
                    ad_storage: false,
                    ad_user_data: false,
                    ad_personalization: false,
                    leadinfo: false,
                    albacross: false
                });
            });
        }

        if (togglePreferencesButton) {
            togglePreferencesButton.addEventListener('click', function() {
                var isExpanded = togglePreferencesButton.getAttribute('aria-expanded') === 'true';
                setPreferencesExpanded(!isExpanded);
            });
        }

        if (savePreferencesButton) {
            savePreferencesButton.addEventListener('click', function() {
                var consent = saveConsent({
                    analytics_storage: !!(banner.querySelector('[data-cookie-switch="analytics_storage"]') || {}).checked,
                    ad_storage: !!(banner.querySelector('[data-cookie-switch="ad_storage"]') || {}).checked,
                    ad_user_data: !!(banner.querySelector('[data-cookie-switch="ad_user_data"]') || {}).checked,
                    ad_personalization: !!(banner.querySelector('[data-cookie-switch="ad_personalization"]') || {}).checked,
                    leadinfo: !!(banner.querySelector('[data-cookie-switch="leadinfo"]') || {}).checked,
                    albacross: !!(banner.querySelector('[data-cookie-switch="albacross"]') || {}).checked
                });

                if (consent.analytics_storage || consent.leadinfo || consent.albacross || consent.ad_storage || consent.ad_user_data || consent.ad_personalization) {
                    location.reload();
                }
            });
        }

        if (acceptButton) {
            acceptButton.addEventListener('click', function() {
                saveConsent({
                    analytics_storage: true,
                    ad_storage: true,
                    ad_user_data: true,
                    ad_personalization: true,
                    leadinfo: true,
                    albacross: true
                });
                //reload the page to ensure all scripts are loaded with the new consent
                location.reload();
            });
        }

        showBannerIfNeeded();
    })();
</script>
