CINXE.COM

Conseils de carrière, d’embauche et pour les employeurs | Robert Half

<!DOCTYPE HTML> <html lang="fr-CA"> <head> <meta charset="UTF-8"/> <script defer="defer" type="text/javascript" src="/.rum/@adobe/helix-rum-js@%5E2/dist/rum-standalone.js"></script> <link rel="icon" type="image/x-icon" href="/content/dam/roberthalf/favicon.png"/> <meta name="template" content="full-width-page-content"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="robots" content="index, follow"/> <link rel="canonical" href="https://www.roberthalf.com/ca/fr/perspectives"/> <script> var salaryGuideGatingProperties = '{ enabled: false, redirectLocation: "null", key: "null" }'; if (salaryGuideGatingProperties.redirectLocation && !salaryGuideGatingProperties.redirectLocation.endsWith(".html")) { salaryGuideGatingProperties.redirectLocation += ".html"; } window.salaryGuideGatingProperties = salaryGuideGatingProperties; window.passesSalaryGuideGating = function() { if ( salaryGuideGatingProperties.enabled != undefined && salaryGuideGatingProperties.enabled.toString().toLowerCase() === "true" && window.localStorage.getItem("salaryGuideGatingKey") != salaryGuideGatingProperties.key && window.location.pathname != salaryGuideGatingProperties.redirectLocation ) { return false; } return true; } </script> <link media="print" rel="stylesheet" href="/etc.clientlibs/roberthalf/clientlibs/clientlib-base.lc-aadab028fda76fa101c57a36121a8a16-lc.min.css" type="text/css"> <script> let css = document.querySelector('link[media="print"]'); if(css) { css.media = "all"; } </script> <script> // window function to fetch UPO function getUPO() { let upoString = localStorage.getItem("unifiedProfileObject"); if (upoString === null || upoString === undefined) { return {}; } let parsedObject = decodeURIComponent(atob(upoString)); return JSON.parse(parsedObject); } // window function to update UPO async function setUPO(unifiedProfileObject) { const encodedString = btoa(encodeURIComponent(JSON.stringify(unifiedProfileObject))); localStorage.setItem("unifiedProfileObject", encodedString); await window.yieldToMain?.(); } </script> <script> window.addEventListener("rhcl-initialized", () => { window.setTimeout(handleClLoaded, 250); }); // Backup in case events do not sync up window.setTimeout(handleClLoaded, 5000); function handleClLoaded() { document.querySelector('style[data-source="rh-slot-style"]')?.remove(); } </script> <link rel="preload stylesheet" as="style" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/libraries/fontawesome6/css/all.css"/> <link rel="preload stylesheet" as="style" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/css/rhcl.css"/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/NotoSans/notosans-display-light-webfont.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/NotoSans/notosans-display-webfont.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/NotoSans/notosans-italic-webfont.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/NotoSans/notosans-light-webfont.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/NotoSans/notosans-lightitalic-webfont.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/NotoSans/notosans-medium-webfont.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/NotoSans/notosans-regular-webfont.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/NotoSans/notosans-semibold-webfont.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/fontawesome6/fa-regular-400.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/fontawesome6/fa-solid-900.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/fontawesome6/fa-light-300.woff2" as="font" crossorigin/> <link rel="preload" href="https://resources.roberthalfonline.com/rhcl/v25.3.0/assets/Fonts/fontawesome6/fa-brands-400.woff2" as="font" crossorigin/> <script type="module" src="https://resources.roberthalfonline.com/rhcl/v25.3.0/lib/rhcl.esm.js" async></script> <style data-source="rh-slot-style"> [slot], rhcl-typography, rhcl-heading, rhcl-typeahead, .rhcl-typography, .rhcl-focused-search-block, .rhcl-block-paginated-feature, rhcl-modal, rhcl-block-stacking-cards, rhcl-block-focused-search, rhcl-search-bar, rhcl-button-group, rhcl-block-paired-content, .cmp-rhcl-focused-block-wrapper .cmp-rhcl-stacking-cards-block-wrapper, .cmp-container { visibility: hidden; } [slot]{font-family: "Noto Sans Regular";} h1[slot],h2[slot],h3[slot],h4[slot],h5[slot],h6[slot],p[slot]{ font-family: "Noto Sans Display";} </style> <script type="text/javascript"> window.pageObj = {}; izCountries = 'gb,de,fr,ch,cn,jp,cl,at,ae,be,nl,nz,hk,br,sg,au,lu'.split(","); naCountries = 'us,ca'.split(","); luxCountries = 'us,ca,de,be,gb'.split(","); euCountries = 'gb,de,fr,ch,at,ae,be,nl'.split(","); aemSettings ={ "rh_account_creation": { accountCheckEndpoint: 'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/sf\u002Daccount\/search?candidate_email=', accountCreateResendEmailEndpoint: 'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/salesforce\u002Dapi\/resend\u002Demail', accountRoutingMap: { "email": '\/ca\/fr\/trouvez\u002Dvotre\u002Dsolution\/verification\u002Dcourriel\/app', "resume": '\/ca\/fr\/recherche\u002Demploi\/telecharger\u002Dcv\/app', "candidate-email": '\/ca\/fr\/recherche\u002Demploi\/telecharger\u002Dcv\/verification\u002Dcourriel\/app', "msjo": '\/ca\/fr\/trouvez\u002Dvotre\u002Dsolution\/app', "login": 'https:\/\/online.roberthalf.com\/s\/login?', "pendingAccount": '\/ca\/fr\/trouvez\u002Dvotre\u002Dsolution\/verification\u002Dcourriel\/app', "expiredVerification": '\/ca\/fr\/trouvez\u002Dvotre\u002Dsolution\/verification\u002Dcourriel\/app', "hasWebAccountClientOnly": 'https:\/\/online.roberthalf.com\/s\/login?', "hasWebAccount": 'https:\/\/online.roberthalf.com\/s\/login?', } }, "rh_candidate_apply": { aiConsentEndpoint: 'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/update\u002Dai\u002Dconsent', accountCheckEndpoint:'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/sf\u002Daccount\/search?candidate_email=', accountCreateEndpoint:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/create\u002Daccount', directAccountCreateEndpoint: '', applyEndpoint:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/job\u002Dapply', resendEmailEndpoint: '', submitResumeEndpoint:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/submit\u002Dresume', resumeParseEndpoint:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/parse\u002Dresume\/parse', xingUploadResumeEndpoint:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/xing\u002Dresume', linkedInUploadResumeEndpoint:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/job\u002Dapply\/linkedin\u002Dresume', geolocationEndpoint:'https:\/\/gen.api.roberthalfonline.com\/geocode\/getGeoByRegion?country_code=', googleGeoCodeEndpoint:'https:\/\/gen.api.roberthalfonline.com\/googlegeo\/getGeocode?address=', timezoneEndpoint:'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/timezone\/getTimezone', fetchSkills:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/fetch\u002Dskills', patchSkills:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/patch\u002Dskills', fetchResume:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/job\u002Dapply\/fetch\u002Dresume', jobTypeValuesEndpoint:'https:\/\/gen.api.roberthalfonline.com\/iz\u002Dbranch\u002Dservice\/findJobTypeList', specializationValuesEndpoint:'https:\/\/gen.api.roberthalfonline.com\/iz\u002Dbranch\u002Dservice\/findSpecializationList', nearestOfficeValuesEndpoint:'https:\/\/gen.api.roberthalfonline.com\/iz\u002Dbranch\u002Dservice\/findOfficeList', xingPluginScript:'https:\/\/www.xing\u002Dshare.com\/plugins\/login_plugin.js', xingId:'82ac2657946cd0af3fa4' }, "rh_client_payment" :{ profileId:'EB9BBCE6\u002D70F7\u002D41BB\u002DB03B\u002DA8C27BB01D8E', accessKey: '5a4ab6d640e03d4dba86c1f9da33cf0b', maintenanceMode: 'false', cybersourceEndpoint:'https:\/\/secureacceptance.cybersource.com\/embedded\/pay', invoiceEndpoint:'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/cpp', }, "rh_job_search": { getAndSetSavedJobsEndpoint:'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/get\u002Dand\u002Dset\u002Djob\/query', jobAlertsEndpoint:'https:\/\/prd\u002Ddr.ma.api.roberthalfonline.com\/job\u002Dalerts\/subscribe', jobInterestEndpoint:'https:\/\/prd\u002Ddr.jps.api.roberthalfonline.com\/presented\u002Djob\/jobinterest', jobSearchEndpoint:'https:\/\/prd\u002Ddr.jps.api.roberthalfonline.com\/search', quickApplyEndpoint:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/quick\u002Dapply', signInLink:'https:\/\/www.roberthalf.com\/login.rhlogin', jobSearchLocationTypeaheadEndpoint:'https:\/\/gen.api.roberthalfonline.com\/auto\u002Dcomplete\u002Daem\/search', feedbackDestinationEditAvailability:'avail', feedbackDestinationEditLocation:'loc', feedbackDestinationEditPayPreference:'pref', feedbackDestinationEditSkills:'skills', jobInterestFeedback:'https:\/\/prd\u002Ddr.rf.api.roberthalfonline.com\/candidate\u002Dapply\/feedback' }, "rh_multistep_job_order" :{ leadsProcessingEndpoint:'https:\/\/prd\u002Ddr.lp.api.roberthalfonline.com\/proxy\u002Dlead\u002Dprocessing\/send', jobFunctionTypeahead:'https:\/\/gen.api.roberthalfonline.com\/auto\u002Dcomplete\u002Daem\/job\u002Dfunction', skillSearch: 'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/sf\u002Dskills\/skillSearch', skillsRecommendation: 'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/sf\u002Dskills\/skillRecommendation', sfccRedirectUrl: 'https:\/\/online.roberthalf.com', accountCheckEndpoint: 'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/sf\u002Daccount\/search?candidate_email=', }, "rh_candidate_discovery": { accountCheckEndpoint:'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/sf\u002Daccount\/search?candidate_email=', candidateJobTitleTypeaheadEndpoint: 'https:\/\/gen.api.roberthalfonline.com\/auto\u002Dcomplete\u002Daem\/job\u002Dfunction', candidateLocationTypeaheadEndpoint: 'https:\/\/gen.api.roberthalfonline.com\/auto\u002Dcomplete\u002Daem\/search' }, "rh_common": { geolocationEndpoint: 'https:\/\/gen.api.roberthalfonline.com\/googlegeo\/getReverseGeocode', personDetailsEndpoint: '\/bin\/personDetails', recaptchaEndpoint: 'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/recaptcha\/verify\u002Dtoken', page_section: 'Blog', page_user_type: 'Client and Candidate', page_type: '', isLuxCountry: 'true' } }; var articleDataLayer = { blog_type:'', industry_name :'', country_code :'', language :'', entityid :'', author_name :'', thumbnail_url :'', title :'', description :'', employment_type :'', published_date :'', page_url :'', categories :'', Article_tag :'' }; pageObj.__extrasettings__ = { language: 'fr', country: 'ca' }; </script> <script type="text/javascript"> aemSettings.rh_common.recaptchaEndpoint = 'https:\/\/prd\u002Ddr.gen.api.roberthalfonline.com\/recaptcha\/verify\u002Dtoken'; </script> <title>Conseils de carrière, d’embauche et pour les employeurs | Robert Half</title> <meta property="page-type" content="Other"/> <meta property="global-content-type" content="Blog"/> <meta property="global-content-user-focus" content="Client and Candidate"/> <meta property="og:locale" content="fr_CA"/> <meta property="og:updated_time" content="2023-11-07T17:14:47+0000"/> <meta property="og:type" content="website"/> <meta property="og:site_name" content="Robert Half Canada"/> <meta property="og:image" content="https://www.roberthalf.com/content/dam/roberthalf/rh.png"/> <meta property="og:image:type" content="image/png"/> <meta property="og:image:width" content="500"/> <meta property="og:image:height" content="500"/> <meta property="og:image:alt" content="rh-logo"/> <meta property="og:url" content="https://www.roberthalf.com/ca/fr/perspectives"/> <meta property="og:title" content="Conseils de carrière, d’embauche et pour les employeurs"/> <meta property="og:description" content="Explorez nos études exclusives et les points de vue concrets des meilleurs spécialistes du secteur d’activité pour vous aider à transformer votre entreprise ou à orienter votre carrière."/> <meta name="title" content="Conseils de carrière, d’embauche et pour les employeurs | Robert Half"/> <meta name="description" content="Explorez nos études exclusives et les points de vue concrets des meilleurs spécialistes du secteur d’activité pour vous aider à transformer votre entreprise ou à orienter votre carrière."/> <meta property="og:publication_time" content="2023-06-08T09:48:44+0000"/> <script> (function() { window.SM_SPLITSIGNAL = window.SM_SPLITSIGNAL || {ready: false} window.addEventListener( 'splitsignal.initialized', function() { if (!aemSettings.isReactApp) { window.SM_SPLITSIGNAL.ready = true } } ) var script = document.createElement('script') script.id = 'a4a03573-e3f5-4f01-8963-395af304b0b2' script.src = 'https://seoab.io/react/' script.type = 'module' script.defer = true document.head.appendChild(script) })() </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebPage", "name" : "Conseils de carrière, d’embauche et pour les employeurs | Robert Half", "url": "https://www.roberthalf.com/ca/fr/perspectives", "isPartOf": { "@type": "WebSite", "name": "Robert Half", "url": "https://www.roberthalf.com/ca/fr", "publisher": { "type": "Organization", "name": "Robert Half", "legalName": "Robert Half Inc.", "url": "https://www.roberthalf.com/ca/fr", "@id": "https://www.roberthalf.com/ca/fr" } }, "mainEntity": [""], "mainEntityOfPage": "https://www.roberthalf.com/ca/fr/perspectives" } </script> <script async defer src="/etc.clientlibs/roberthalf/clientlibs/clientlib-clientId.lc-816e4fe05c72b7567d3214430c031c84-lc.min.js"></script> <script type="text/javascript"> function ready(a){if("function"!==typeof a)throw Error("Argument passed to ready should be a function");"loading"!=document.readyState?a():document.addEventListener?document.addEventListener("DOMContentLoaded",a,{once:!0}):document.attachEvent("onreadystatechange",function(){"loading"!=document.readyState&&a()})}; </script> <script async defer src="/etc.clientlibs/roberthalf/clientlibs/clientlib-base.lc-cd1db14a92651d76445b7ea2ff43a080-lc.min.js"></script> <!-- Language And Country fr-ca Country ca--> <!-- OptanonConsentNoticeStart --> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-language="fr-ca" type="text/javascript" charset="UTF-8" data-domain-script="018f54c3-a48a-7cfd-9399-07bc2d5352b5" async defer></script> <script type="text/javascript"> function OptanonWrapper() { checkConsentValues(); } </script> <!-- OptanonConsentNoticeEnd --> <!-- Check Cookie Value Start--> <script type="text/javascript"> var isPerformanceCookiesChecked = false; function checkConsentValues() { var consentRatio = getOptanonConsentRatio(); if (consentRatio != null && consentRatio.includes("2:1")) { isPerformanceCookiesChecked = true; var oneTrustEvent = new CustomEvent("rh-onetrust-accepted", { "detail": "vanilla js version of one trust event" }); var oneTrustJSEvent = new CustomEvent("rh-onetrust-accepted-js", { "detail": "vanilla js version of one trust event" }); document.dispatchEvent(oneTrustJSEvent); document.dispatchEvent(oneTrustEvent); } } window.setTimeout(checkConsentValues, 2000); function getCookie(cname) { var name = cname + '='; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return false; } function getOptanonConsentRatio() { const queryParams = new URLSearchParams(getCookie("OptanonConsent")); return queryParams.get('groups'); } </script> <!-- Check Cookie Value End--> <!-- TealiumStart --> <script type="text/javascript"> var utag_data = {"pageType":null,"pageSection":"section","pageName":"Français","countryCode":"ca","currencyCode":"USD"}; // This script is provided, don't change without consulting the analytics team (function (a, b, c, d) { a = 'https://tags.roberthalf.com/canada2/prod/utag.js'; b = document; c = 'script'; d = b.createElement(c); d.src = a; d.type = 'text/java' + c; d.async = true; a = b.getElementsByTagName(c)[0]; a.parentNode.insertBefore(d, a); })(); </script> <script async defer src="/etc.clientlibs/roberthalf/clientlibs/clientlib-tealium.lc-1343a64b313c1ba8ca2cb65523ffa1e1-lc.min.js"></script> <!-- TealiumEnd --> <!-- InvocaStart --> <script> window.setTimeout(loadInvoca, 2000); function loadInvoca() { if (isPerformanceCookiesChecked) { // This script is provided, don't change without consulting the analytics team (function (i, n, v, o, c, a) { i.InvocaTagId = o; var s = n.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = ('https:' === n.location.protocol ? 'https://' : 'http://') + v; var fs = n.getElementsByTagName('script')[0]; fs.parentNode.insertBefore(s, fs); })(window, document, 'solutions.invocacdn.com/js/invoca-latest.min.js', '479/3627146293'); } else { document.addEventListener("rh-onetrust-accepted", loadInvoca); } } </script> <!-- InvocaEnd --> <!-- UtagStart --> <script> window.setTimeout(loadUtagSync, 2000); //Adding this function to prevent flicker happening because of utag.sync.js function makeBodyVisible() { let style = document.createElement("style"); style.textContent = "body { display: block !important; opacity: 1 !important; }"; if (document.body) { document.body.appendChild(style); } else { window.ready(function () { document.body.appendChild(style); }); } } function loadUtagSync() { if (isPerformanceCookiesChecked) { (function (document, scriptUrl) { makeBodyVisible(); var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = scriptUrl; var fs = document.getElementsByTagName('script')[0]; fs.parentNode.insertBefore(s, fs); })(document, 'https://tags.roberthalf.com/canada2/prod/utag.sync.js'); } else { document.addEventListener("rh-onetrust-accepted", loadUtagSync); } } </script> <!-- UtagEnd --> <script async src="/etc.clientlibs/core/wcm/components/commons/datalayer/v2/clientlibs/core.wcm.components.commons.datalayer.v2.lc-1e0136bad0acfb78be509234578e44f9-lc.min.js"></script> <script async src="/etc.clientlibs/core/wcm/components/commons/datalayer/acdl/core.wcm.components.commons.datalayer.acdl.lc-bf921af342fd2c40139671dbf0920a1f-lc.min.js"></script> </head> <body class="page basicpage" id="page-299e1c2779" data-cmp-link-accessibility-enabled data-cmp-link-accessibility-text="s’ouvre dans un nouvel onglet" data-cmp-data-layer-enabled data-cmp-data-layer-name="adobeDataLayer"> <script> var dataLayerName = 'adobeDataLayer' || 'adobeDataLayer'; window[dataLayerName] = window[dataLayerName] || []; window[dataLayerName].push({ page: JSON.parse("{\x22page\u002D299e1c2779\x22:{\x22@type\x22:\x22roberthalf\/components\/structure\/page\/page\x22,\x22repo:modifyDate\x22:\x222023\u002D11\u002D07T17:14:47Z\x22,\x22dc:title\x22:\x22INSIGHTS\u002D01 | Discover Insights\x22,\x22dc:description\x22:\x22Explorez nos études exclusives et les points de vue concrets des meilleurs spécialistes du secteur d’activité pour vous aider à transformer votre entreprise ou à orienter votre carrière.\x22,\x22xdm:template\x22:\x22\/conf\/roberthalf\/settings\/wcm\/templates\/full\u002Dwidth\u002Dpage\u002Dcontent\x22,\x22xdm:language\x22:\x22fr\u002DCA\x22,\x22xdm:tags\x22:[],\x22repo:path\x22:\x22\/content\/roberthalf\/ca\/fr\/insights.html\x22}}"), event:'cmp:show', eventInfo: { path: 'page.page\u002D299e1c2779' } }); </script> <rhcl-base path="https://resources.roberthalfonline.com/rhcl/v25.3.0" locale="fr-CA"></rhcl-base> <div class="root container-fluid cmp-container"> <div id="container-da5f14ae6e" class="cmp-container"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="experiencefragment aem-GridColumn aem-GridColumn--default--12"> <div id="experiencefragment-ca4ead7c74" class="cmp-experiencefragment cmp-experiencefragment--header"> <div id="container-bab02a1645" class="cmp-container"> <div class="root container-fluid cmp-container"> <div class="cq-placeholder" data-emptytext="Navigation: Header"> </div> <div id="header-71f80f521b" class="cmp-container"> <div id="skipToMainContent"></div> <script> // needs to run once on any page with a nav header function identifyFirstComponent() { try { const excludedTags = ["RHCL-BLOCK-NAVIGATION", "RHCL-BLOCK-COOKIE-BAR"]; const rhclContentBlocks = Array.from(document.querySelectorAll("body *")) .filter( (elem) => elem.tagName.startsWith("RHCL-BLOCK") || elem.classList.contains("rh-homepage-hero") || elem.classList.contains("rh-first-component") ) .filter((elem) => !excludedTags.includes(elem.tagName)); const maxTries = 10; let tries = 1; const nav = document.querySelector("rhcl-block-navigation"); if (nav && nav.getAttribute("background") == "transparent") { // find first component if (rhclContentBlocks.length > 0) { rhclContentBlocks[0].setAttribute( "data-first-component-padded", "true" ); } else { tries++; if (tries <= maxTries) { setTimeout(identifyFirstComponent, 500); } } } else { const hero = document.querySelector(".rh-homepage-hero"); if (hero) { hero.removeAttribute("data-first-component-padded"); } } } catch (error) { console.log(error); } } window.ready(() => { window.dispatchEvent(new Event("scroll")); identifyFirstComponent(); }); </script> <rhcl-block-navigation branding-destination="/ca/fr" account-menu-label="Mon compte" branding-external="false" branding-title="Robert Half" sign-in-label="Se connecter" sign-in-destination="/login.rhlogin?language=fr&amp;country=ca" background="white" theme="light"> <rhcl-navigation-item slot="navigation-item" destination="/ca/fr/recherche-emploi" label="Trouver un emploi" cta-heading-label="Prenez votre carrière en main. Trouvez le poste qui vous convient – en télétravail, hybride ou en présentiel." cta-label="Trouvez votre prochain emploi" cta-destination="/ca/fr/recherche-emploi" cta-external="false" cta-variant="primary"> <!-- using dynamic media template --> <img slot="accent-image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 307px,(min-width: 768px) 230px,(min-width: 0px) 288px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-findjobs?$Squircle1-Large-1x$&amp;fmt=webp-alpha 307w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-findjobs?$Squircle1-Medium-1x$&amp;fmt=webp-alpha 230w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-findjobs?$Squircle1-Small-1x$&amp;fmt=webp-alpha 288w" src="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-findjobs?$Squircle1-Large-1x$&fmt=webp-alpha" alt aria-hidden="true"/> <rhcl-list-base slot="secondary-nav-content"> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/emplois">Parcourir les emplois</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/recherche-emploi/telecharger-cv">Trouvez le type d’emploi qui vous convient</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/recherche-emploi/collaboration">Découvrez comment nous aidons les chercheurs d’emploi</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="gradient-content" headline="Domaines d&#39;expertise" layout="column"> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/comptabilite-finance">Finance et comptabilité</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/technologies-ti">Technologies</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/marketing-creation">Marketing et création</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/soutien-administratif">Soutien administratif et à la clientèle</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/juridique">Juridique</a> </rhcl-menu-link> </rhcl-list-base> </rhcl-navigation-item> <rhcl-navigation-item slot="navigation-item" destination="/ca/fr/recrutement" label="Embaucher des talents" cta-heading-label="Nous vous aidons à recruter des talents qualifiés pour vos projets, quel que soit le niveau d’expéerience requis." cta-label="Embaucher des talents" cta-destination="/ca/fr/recrutement" cta-external="false" cta-variant="primary"> <!-- using dynamic media template --> <img slot="accent-image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 307px,(min-width: 768px) 230px,(min-width: 0px) 288px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-hiretalent?$Squircle1-Large-1x$&amp;fmt=webp-alpha 307w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-hiretalent?$Squircle1-Medium-1x$&amp;fmt=webp-alpha 230w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-hiretalent?$Squircle1-Small-1x$&amp;fmt=webp-alpha 288w" src="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-hiretalent?$Squircle1-Large-1x$&fmt=webp-alpha" alt aria-hidden="true"/> <rhcl-list-base slot="secondary-nav-content" headline="Placement de personnel"> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/recrutement/placement-temporaire">Placement temporaire</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/recrutement/placement-permanent">Placement permanent</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/recrutement/collaboration">Découvrez comment nous collaborons avec vous</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="secondary-nav-content" headline="Services de recherche retenue"> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/recrutement/recrutement-de-cadres">Recrutement de cadres</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="gradient-content" headline="Domaines d&#39;expertise" layout="column"> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/comptabilite-finance">Finance et comptabilité</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/technologies-ti">Technologies</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/marketing-creation">Marketing et création</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/soutien-administratif">Soutien administratif et à la clientèle</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/juridique">Juridique</a> </rhcl-menu-link> </rhcl-list-base> </rhcl-navigation-item> <rhcl-navigation-item slot="navigation-item" destination="/ca/fr/services-conseils" label="Découvrir nos services-conseils" cta-heading-label="Découvrez comment nos capacités en services-conseils peuvent vous aider à transformer votre entreprise." cta-label="Découvrez nos services-conseils" cta-destination="/ca/fr/services-conseils" cta-external="false" cta-variant="primary"> <!-- using dynamic media template --> <img slot="accent-image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 307px,(min-width: 768px) 230px,(min-width: 0px) 288px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-exploreconsultingsolutions?$Squircle1-Large-1x$&amp;fmt=webp-alpha 307w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-exploreconsultingsolutions?$Squircle1-Medium-1x$&amp;fmt=webp-alpha 230w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-exploreconsultingsolutions?$Squircle1-Small-1x$&amp;fmt=webp-alpha 288w" src="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-exploreconsultingsolutions?$Squircle1-Large-1x$&fmt=webp-alpha" alt aria-hidden="true"/> <rhcl-list-base slot="gradient-content" headline="Domaines d&#39;expertise" layout="column-two"> <rhcl-menu-link slot="item" description="Infonuage • Cybersécurité • Analyse de données • Confidentialité des données • Automatisation intelligente • Centre de soutien TI"> <a slot="item" href="/ca/fr/services-conseils/technologies">Technologies</a> </rhcl-menu-link> <rhcl-menu-link slot="item" description="Audit interne • Conformité réglementaire • Conformité en criminalité financière • Gestion des risques • Sarbanes-Oxley"> <a slot="item" href="/ca/fr/services-conseils/risque-conformite-audit">Risque, audit et conformité</a> </rhcl-menu-link> <rhcl-menu-link slot="item" description="Transformation financière • Optimisation des processus • Technologies financières et données • Rapports et conformité • Gestion des coûts et de performance"> <a slot="item" href="/ca/fr/services-conseils/finance">Finance et comptabilité</a> </rhcl-menu-link> <rhcl-menu-link slot="item" description="Transformation numérique • Services de marketing • Technologies de marketing • Création et conception"> <a slot="item" href="/ca/fr/services-conseils/numerique">Numérique, marketing et expérience clients</a> </rhcl-menu-link> <rhcl-menu-link slot="item" description="Confidentialité des données • Consultation juridique • Services de transaction"> <a slot="item" href="/ca/fr/services-conseils/juridique">Juridique</a> </rhcl-menu-link> <rhcl-menu-link slot="item" description="Centres d’appels • Durabilité • Éfficacité opérationnelle • Chaîne d’approvisionnement • Approvisionnement et achats"> <a slot="item" href="/ca/fr/services-conseils/administratif">Opérations</a> </rhcl-menu-link> <rhcl-menu-link slot="item" description="Transformation des RH • Expérience d’employés • Gestion de talents • Avenir du travail • Transformation organisationnelle"> <a slot="item" href="/ca/fr/services-conseils/ressources-humaines">Ressources humaines</a> </rhcl-menu-link> </rhcl-list-base> </rhcl-navigation-item> <rhcl-navigation-item slot="navigation-item" destination="/ca/fr/perspectives" label="Découvrir les perspectives" cta-heading-label="Prenez des décisions éclairées en consultant les tendances et perspectives de carrière les plus récentes." cta-label="Découvrir les perspectives" cta-destination="/ca/fr/perspectives" cta-external="false" cta-variant="primary"> <!-- using dynamic media template --> <img slot="accent-image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 307px,(min-width: 768px) 230px,(min-width: 0px) 288px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-discoverinsights?$Squircle1-Large-1x$&amp;fmt=webp-alpha 307w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-discoverinsights?$Squircle1-Medium-1x$&amp;fmt=webp-alpha 230w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-discoverinsights?$Squircle1-Small-1x$&amp;fmt=webp-alpha 288w" src="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-nav-discoverinsights?$Squircle1-Large-1x$&fmt=webp-alpha" alt aria-hidden="true"/> <rhcl-list-base slot="secondary-nav-content"> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/guide-salarial">Guide salarial 2025</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/tendances-salaire-embauche/la-demande-de-personnel-qualifie">Rapport : La demande de personnel qualifié</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/former-des-equipes-en-technologie">Former des équipes en technologie tournées vers l’avenir</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/panorama-recherche-emploi">Panorama de la recherche d&#39;emploi</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="https://presse.roberthalf.ca/">Salle de presse</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="gradient-content" headline="Sujets tendance" layout="column"> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/tendances-salaire-embauche">Tendances salariales et d’embauche</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/travail-flexible">Travail d’adaptation</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/avantage-concurrentiel">Avantage concurrentiel</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/equilibre-vie-professionnelle-personnelle">Équilibre vie professionnelle-personnelle</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/perspectives/diversite-equite-inclusion">Diversité et inclusion</a> </rhcl-menu-link> </rhcl-list-base> </rhcl-navigation-item> <rhcl-site-search slot="site-search" search-destination="/ca/fr/recherche?param=:1" max-results="3" theme="light"> <a slot="quick-link" href="/ca/fr/emplois"><rhcl-typography variant="body2">Parcourir les emplois</rhcl-typography></a> <a slot="quick-link" href="/ca/fr/trouvez-votre-solution"><rhcl-typography variant="body2">Trouvez votre prochaine embauche</rhcl-typography></a> <a slot="quick-link" href="/ca/fr/nos-bureaux"><rhcl-typography variant="body2">Nos bureaux</rhcl-typography></a> </rhcl-site-search> <rhcl-list slot="account-menu" data-header-menu-endpoint="/graphql/execute.json/roberthalf/headerMenuItems" data-folder-path="/content/dam/roberthalf/content-fragments/fr_ca/account-menu-links" data-account-menu-config="{&#34;[lux-tokens:lightning-page]&#34;:&#34;https://online.roberthalf.com/s&#34;,&#34;[lux-tokens:visualforce-page]&#34;:&#34;https://online.roberthalf.com&#34;,&#34;[lux-tokens:rhdirect-page]&#34;:&#34;https://online.roberthalf.com/mpredirect&#34;,&#34;[site:url]&#34;:&#34;https://www.roberthalf.com/&#34;}" headline=""/> </rhcl-block-navigation> </div> <script type="text/javascript"> function initializeAccountMenu() { var accountMenu = document.querySelector('rhcl-list[slot="account-menu"]'); var userId = getCookie("apex__userid"); var userPermissions = getCookie("apex__psa"); if (!userId || !userPermissions) { if (accountMenu) { accountMenu.remove(); } return; } var userFirstName = getCookie("apex__firstname"); var userLastName = getCookie("apex__lastname"); accountMenu.setAttribute("headline", userFirstName + " " + userLastName); var userPermissionsArray = userPermissions.split(","); var accountMenuLinks = []; var accountMenuLinksAPI = accountMenu.getAttribute("data-header-menu-endpoint"); var accountMenuLinkCFFolderPath = accountMenu.getAttribute("data-folder-path"); var accountMenuConfig = accountMenu.getAttribute("data-account-menu-config"); if (!accountMenuLinkCFFolderPath) { accountMenuLinkCFFolderPath = ""; } var completeAPI = accountMenuLinksAPI + ";cfFolderPath=" + accountMenuLinkCFFolderPath; fetch(completeAPI) .then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(data => { accountMenuLinks = data.data.headerMenuItemList.items; accountMenuLinks.sort(function (a, b) { return a.displayWeight - b.displayWeight }); for (var i = 0; i < accountMenuLinks.length; i++) { var accountMenuLink = accountMenuLinks[i]; if ((accountMenuLink.showToAllLoggedInUsers != null && accountMenuLink.showToAllLoggedInUsers == true) || doPermissionsMatch(accountMenuLink.permissions, userPermissionsArray)) { var menuItemElement = document.createElement("rhcl-menu-link"); var link, mobileLink; menuItemElement.setAttribute("slot", "item"); menuItemElement.setAttribute("label", accountMenuLink.linkDisplayText); menuItemElement.setAttribute("external", accountMenuLink.linkTarget); if(accountMenuLink.linkUrl){ link = modifyLink(accountMenuLink.linkUrl, accountMenuConfig); }else{ link=""; } if(accountMenuLink.mobileUrlOverride){ mobileLink = modifyLink(accountMenuLink.mobileUrlOverride, accountMenuConfig); }else{ mobileLink=""; } menuItemElement.setAttribute("destination", link); menuItemElement.setAttribute("mobile-destination", mobileLink); accountMenu.append(menuItemElement); } } }) .catch(error => { console.error('There was a problem with the fetching the account menu items:', error); }); } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function doPermissionsMatch(array1, array2) { if (!array1 || !array2) { return false; } for (let i = 0; i < array2.length; i++) { if (array1.includes(array2[i].trim())) { return true; } } return false; } function modifyLink(link, accountMenuConfig) { if (accountMenuConfig) { var accountMenuConfigJSON = JSON.parse(accountMenuConfig); for (var key in accountMenuConfigJSON) { if (accountMenuConfigJSON.hasOwnProperty(key)) { link = link.replace(key, accountMenuConfigJSON[key]); } } } return link; } initializeAccountMenu(); </script> </div> </div> </div> </div> <div class="root container-fluid cmp-container aem-GridColumn aem-GridColumn--default--12"> <div id="container-33c62e3054" class="cmp-container"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="root container-fluid cmp-container aem-GridColumn aem-GridColumn--default--12"> <style> .model-content,.model-content form{display:flex;flex-direction:column;align-items:center} .model-content form{margin-top:52px;padding:0} .model-content rhcl-typography,.model-content rhcl-heading{text-align:center !important} .form-footer{padding:0 40px} @media screen and (max-width:767px){.form-footer{padding:0} } .form-footer .form-btn{margin-bottom:32px} .subscribe-modal-image{height:72px;width:72px;object-fit:cover;margin-bottom:32px} </style> <rhcl-block-centered-content variant="accents" quaternary-cta-external="false" tertiary-cta-external="false"> <h1 slot="headline">Prenez votre avenir professionnel en main</h1> <span slot="copy">Explorez nos études exclusives et les perspectives des meilleurs spécialistes de leur industrie pour vous aider à transformer votre entreprise ou à forger votre carrière.</span> <!-- using dynamic media template --> <img slot="accent-image" loading="eager" fetchpriority="high" sizes="(min-width: 1024px) 307px,(min-width: 768px) 230px,(min-width: 0px) 288px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-361884875?$Squircle1-Large-1x$&amp;fmt=webp-alpha 307w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-361884875?$Squircle1-Medium-1x$&amp;fmt=webp-alpha 230w,https://s7d9.scene7.com/is/image/roberthalfintl/sq1-361884875?$Squircle1-Small-1x$&amp;fmt=webp-alpha 288w" src="https://s7d9.scene7.com/is/image/roberthalfintl/sq1-361884875?$Squircle1-Large-1x$&fmt=webp-alpha" alt aria-hidden="true"/> <!-- using dynamic media template --> <img slot="accent-image" loading="eager" fetchpriority="high" sizes="(min-width: 1024px) 480px,(min-width: 768px) 336px,(min-width: 0px) 317px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/sq2-352315130?$Squircle2-Large-1x$&amp;fmt=webp-alpha 480w,https://s7d9.scene7.com/is/image/roberthalfintl/sq2-352315130?$Squircle2-Medium-1x$&amp;fmt=webp-alpha 336w,https://s7d9.scene7.com/is/image/roberthalfintl/sq2-352315130?$Squircle2-Small-1x$&amp;fmt=webp-alpha 317w" src="https://s7d9.scene7.com/is/image/roberthalfintl/sq2-352315130?$Squircle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true"/> </rhcl-block-centered-content> <script type="text/javascript"> { window.ready(() => { const stackingCardsBlocks = document.querySelectorAll( "rhcl-block-stacking-cards" ); stackingCardsBlocks.forEach((stackingCardsBlock) => { // replace tokens hyperlink = stackingCardsBlock.querySelector(".scb-hyperlink"); let redirectLocation = stackingCardsBlock.dataset.hyperlinkRedirectLocation; const cta = stackingCardsBlock.dataset.hyperlinkCta; const isTel = stackingCardsBlock.dataset.hyperlinkIsTel; if (isTel == "true") { // use the phone number from the cta for phone links redirectLocation = cta; } if (hyperlink) { hyperlink.innerHTML = hyperlink.innerHTML.replaceAll( "[token:hyperlink]", "<a href='" + (isTel == "true" ? "tel:" : "") + redirectLocation + "' target='_blank' data-rhcl-listener='true'>" + cta + "</a>" ); } }); }); } window.addEventListener('load', () => { const centeredContentBlock = document.querySelector("rhcl-block-centered-content"); let checkboxCenter; if (centeredContentBlock != null) { checkboxCenter = centeredContentBlock.getAttribute("data-check"); } if (checkboxCenter === "enablePopUp") { centeredContentBlock.addEventListener("rhcl-button-clicked", (e) => showPopupCenteredBlock(e, centeredContentBlock)); } }); function showPopupCenteredBlock(e, centeredContentBlock) { let button = e.composedPath()[0]; if(button.componentParentRef === centeredContentBlock) { e.preventDefault(); const modalPopUp = document.getElementById("email-model") if (modalPopUp != null) { modalPopUp.setAttribute("show-modal", ""); } } } { window.ready(() => { const centeredContentBlocks = document.querySelectorAll( "rhcl-block-centered-content" ); const upo = window.getUPO(); centeredContentBlocks.forEach((centeredContentBlock) => { const email = upo.email; const searchParams = new URLSearchParams(window.location.search); const registrantId = searchParams.get("rid"); // replace tokens const hyperlink = centeredContentBlock.querySelector(".ccb-response-hyperlink") const redirectLocation = centeredContentBlock.dataset.hyperlinkRedirectLocation; const cta = centeredContentBlock.dataset.hyperlinkCta; hyperlink.innerHTML = hyperlink.innerHTML.replaceAll( "[token:hyperlink]", "<a href='" + redirectLocation + "' target='_blank' data-rhcl-listener='true'>" + cta + "</a>" ) hyperlink.innerHTML = hyperlink.innerHTML.replaceAll( "[token:resendNow]", "<a href='#' id='resendNowA'>" + cta +"</a>" ) // if there is no email we can't resend emails if (!email) return; if (centeredContentBlock.copy) { centeredContentBlock.copy = centeredContentBlock.copy.replaceAll( "[token:email]", email ); } if (centeredContentBlock.subheading) { centeredContentBlock.subheading = centeredContentBlock.subheading.replaceAll("[token:email]", email); } const shouldResendEmail = centeredContentBlock.dataset.resendEmail; if (shouldResendEmail) { // setup resend email logic const anchorEl = hyperlink.querySelector("#resendNowA") anchorEl.addEventListener("click", async (e) => { e.preventDefault(); const resendUrl = window.aemSettings.rh_account_creation .accountCreateResendEmailEndpoint; if (email && resendUrl && registrantId) { fetch(resendUrl, { method: "POST", body: JSON.stringify({ registrantID: registrantId, }), }); } }); } }); }); } </script> </div> <div class="cmp-rhcl-scrolling-cards-collection-block-wrapper aem-GridColumn aem-GridColumn--default--12"> <style> div.featuredcard.container{margin-left:12px !important;margin-right:12px !important} div.featuredcard.container rhcl-content-card{padding-left:12px !important;padding-right:12px !important} </style> <div id="scrollingcardscollectionblock-f692f446c9" class="cmp-container"> <rhcl-block-scrolling-cards-collection logo="false"> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Guide salarial 2025" copy="Explorez les données les plus récentes pour des centaines de postes et découvrez le salaire que vous devriez obtenir ou offrir sur les marchés locaux et nationaux." icon="users" cta-destination="/ca/fr/perspectives/guide-salarial" variant="featured-content" layout="trending-insights" cta-external="false"> <!-- using dynamic media template --> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 476px,(min-width: 0px) 335px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-2151833739-sg25?$Rectangle2-Large-1x$&amp;fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-2151833739-sg25?$Rectangle2-Medium-1x$&amp;fmt=webp-alpha 476w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-2151833739-sg25?$Rectangle2-Small-1x$&amp;fmt=webp-alpha 335w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-2151833739-sg25?$Rectangle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true" width="400" height="240"/> </rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Quels sont les emplois en demande?" copy="Consultez notre rapport La demande de personnel qualifié pour savoir quelles sont les spécialisations les plus recherchées par les employeurs." icon="users" cta-destination="/ca/fr/perspectives/tendances-salaire-embauche/la-demande-de-personnel-qualifie" variant="featured-content" layout="trending-insights" cta-external="false"> <!-- using dynamic media template --> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 476px,(min-width: 0px) 335px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00007-1233182203?$Rectangle2-Large-1x$&amp;fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00007-1233182203?$Rectangle2-Medium-1x$&amp;fmt=webp-alpha 476w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00007-1233182203?$Rectangle2-Small-1x$&amp;fmt=webp-alpha 335w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00007-1233182203?$Rectangle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true" width="400" height="240"/> </rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Améliorer l’engagement des employés " copy="Attirez et fidélisez les meilleurs talents (et améliorez vos résultats) grâce à nos conseils pour reconnaître et récompenser les employés de façon créative." icon="users" cta-destination="/ca/fr/perspectives/etudes/reconnaissance-des-employes" variant="featured-content" layout="trending-insights" cta-external="false"> <!-- using dynamic media template --> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 476px,(min-width: 0px) 335px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00008-2036243684?$Rectangle2-Large-1x$&amp;fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00008-2036243684?$Rectangle2-Medium-1x$&amp;fmt=webp-alpha 476w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00008-2036243684?$Rectangle2-Small-1x$&amp;fmt=webp-alpha 335w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00008-2036243684?$Rectangle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true" width="400" height="240"/> </rhcl-content-card> </div> <h2 slot="headline">Explorez les perspectives</h2> </rhcl-block-scrolling-cards-collection> </div> </script> </template> </div> <div class="root container-fluid cmp-container rhcl__background--secondary rhcl__background-style--curved aem-GridColumn aem-GridColumn--default--12"> <style> .rh-mta__insights-container{text-align:right} .rh-mta__sort-container{--helper-text-min-height:0} .rh-mta__headline{display:block;margin-bottom:var(--rhcl-spacing-16-x)} @media screen and (max-width:767px){#insightModal .modal-dialog{margin:0;height:100%} } @media screen and (max-height:740px){#insightModal .modal-dialog{margin:0;height:-moz-fit-content;height:fit-content} } #insightModal .modal-content{border-radius:32px;padding:32px} @media screen and (max-width:767px){#insightModal .modal-content{border-radius:0;padding:14px 24px;height:100%} } #insightModal .modal-content .modal-header{border-bottom:0} #insightModal .modal-content .modal-body .modal-row{justify-content:center} #insightModal .modal-content .modal-body .modal-row .modal-form{display:flex;flex-direction:column;justify-content:center;align-items:center} #insightModal .modal-content .modal-body .modal-row .modal-form img{margin-top:3px;margin-bottom:32px} #insightModal .modal-content .modal-body .modal-row .modal-form rhcl-heading{width:80%;text-align:center !important} @media screen and (max-width:767px){#insightModal .modal-content .modal-body .modal-row .modal-form rhcl-heading{width:100%} } #insightModal .modal-content .modal-body .modal-row .modal-form form{display:flex;flex-direction:column;align-items:center;margin-top:56px;width:100%} @media screen and (max-width:767px){#insightModal .modal-content .modal-body .modal-row .modal-form form{margin-top:40px} } #insightModal .modal-content .modal-body .modal-row .modal-form form rhcl-text-field{flex:1} #insightModal .modal-content .modal-body .modal-row .modal-form form rhcl-text-field:nth-child(3){margin-bottom:56px} @media screen and (max-width:767px){#insightModal .modal-content .modal-body .modal-row .modal-form form rhcl-text-field:nth-child(3){margin-bottom:40px} } #insightModal .modal-content .modal-body .modal-row .modal-form form rhcl-button{text-align:center !important;margin-bottom:42px} @media screen and (max-width:767px){#insightModal .modal-content .modal-body .modal-row .modal-form form rhcl-button{margin-bottom:24px} } #insightModal .modal-content .modal-body .modal-row .modal-form form .copy-text{text-align:center} </style> <div class="rhcl-content-container"> <rhcl-heading class="rh-mta__headline" modifier="centered" tag="h2" theme="" variant="display1">Raffinez vos critères</rhcl-heading> <div class="xfpage page basicpage"> <!--<sly data-sly-resource="contexthub"/>--> <div id="container-38de9ad34e" class="cmp-container"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="root container-fluid cmp-container aem-GridColumn aem-GridColumn--default--12"> <style> .model-content,.model-content form{display:flex;flex-direction:column;align-items:center} .model-content form{margin-top:52px;padding:0} .model-content rhcl-typography,.model-content rhcl-heading{text-align:center !important} .form-footer{padding:0 40px} @media screen and (max-width:767px){.form-footer{padding:0} } .form-footer .form-btn{margin-bottom:32px;flex-direction:column;align-items:center;display:flex;gap:24px} .subscribe-modal-image{height:72px;width:72px;object-fit:cover;margin-bottom:32px} </style> <rhcl-modal id="thankyou-modal" behavior="close" branding-title="Merci de votre abonnement &lt;>. Vos pespectives sont en route." branding-external="false" variant="popup"> <div class="model-content"> <img class="thanku-modal-image" src="/content/dam/roberthalf/rh.png" alt="Roberthalf"/> <rhcl-heading data-attribute-heading="Merci de votre abonnement &lt;>. Vos pespectives sont en route." modifier="" tag="h2" theme="" variant="display2">Merci de votre abonnement &lt;&gt;. Vos pespectives sont en route.</rhcl-heading> <rhcl-typography data-attribute-disclaimer="Un courriel de confirmation a été envoyé à &lt;&gt;" modifier="bold" tag="p" theme="" variant="body2">&lt;rhcl-typography slot=&#34;copy&#34; variant=&#34;legal&#34;&gt;Un courriel de confirmation a été envoyé à&amp;nbsp;&amp;lt;&amp;gt;&lt;/rhcl-typography&gt;</rhcl-typography> </div> </rhcl-modal> <style> .model-content{display:flex;flex-direction:column;align-items:center} @media screen and (max-width:767px){.model-content{padding:0 10px} } .model-content rhcl-typography,.model-content rhcl-heading{text-align:center !important} .model-content rhcl-heading{margin-bottom:24px} .thanku-modal-image{height:72px;width:72px;object-fit:cover;margin-bottom:32px} </style> <rhcl-modal behavior="close" branding-destination="https://www.roberthalf.com/jobs" branding-external="false" id="email-model" variant="popup"> <div class="model-content"> <img class="subscribe-modal-image" src="/content/dam/roberthalf/rh.png" alt="Roberthalf"/> <rhcl-heading modifier="" tag="h2" theme="" variant="display2">Recevez du contenu personnalisé par courriel</rhcl-heading> <div id="backdrop" class="d-none"> <div class="loader-div"> <rhcl-loading-spinner label="Veuillez patienter"></rhcl-loading-spinner> </div> </div> <script src="https://www.google.com/recaptcha/enterprise.js?render=explicit" async defer> </script> </div> <div class="xfpage page basicpage"> <!--<sly data-sly-resource="contexthub"/>--> <div id="container-504d187dfd" class="cmp-container"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="root container-fluid cmp-container aem-GridColumn aem-GridColumn--default--12"> <script src="https://www.google.com/recaptcha/enterprise.js?render=6LejimkkAAAAAFXPuyq9-cY_Tn0LOdrBWZfprr5D"></script> <style> .form-container{padding:40px 24px} .form-container .form-header{text-align:center;margin-bottom:40px;display:flex;justify-content:center;flex-direction:column;align-items:center} .form-container .form-header .header-text{margin-bottom:26px} .form-container .form-field-set .field-set-header{margin-bottom:24px} .form-container .form-field-set .field-element-row{margin-bottom:8px} .form-container .form-footer{gap:24px;margin-top:28px;justify-content:center} .form-container .form-footer .form-submit-btn{display:flex;justify-content:center;flex-direction:column;align-items:center;gap:24px;#showRedirectStatus{display:none} } .form-container .form-footer .form-submit-btn rhcl-button{width:100%} .form-container .form-footer .form-foot-note{text-align:left} .form-container .form-footer .form-foot-note .rhcl-typography{display:flex;flex-direction:column;gap:16px;padding:0;margin:0 !important;rhcl-typography{text-align:center} } .form-container .form-footer .form-foot-note .rhcl-typography--variant-legal{font-size:12px;letter-spacing:normal;line-height:1.5;font-family:"Noto Sans Regular",OpenSansRegular,"Open Sans Regular","Noto Sans",sans-serif !important} .form-container .form-footer .form-foot-note .rhcl-typography--variant-legal a:hover:after{width:100%;opacity:1} .cmp-experiencefragment .form-container{padding:0} .mobile-app-form .form-foot-note .rhcl-typography p{padding:0;white-space:pre-wrap;margin:0 !important} .mobile-app-form .form-foot-note .rhcl-typography--variant-legal p{font-size:12px;letter-spacing:normal;line-height:1.5;font-family:"Noto Sans Regular",OpenSansRegular,"Open Sans Regular","Noto Sans",sans-serif !important} .mobile-app-form .form-foot-note .rhcl-typography--variant-legal a:hover:after{width:100%;opacity:1} .mobile-app-form .form-div{padding:48px 0 21px 0} #backdrop{position:absolute;top:0;left:0;width:100%;height:100%;z-index:20;background-color:rgba(0,0,0,0.05)} .loader-div{display:flex;justify-content:center;align-items:center;height:100%} @media screen and (min-width:768px){.form-container{padding:48px 40px} .form-container .form-footer .form-submit-btn rhcl-button{width:unset} .form-container .form-footer .form-foot-note{text-align:center} .cmp-experiencefragment .form-container{padding:0} } .cmp-experiencefragment--salary-guide .form-footer{margin-top:0} </style> <script type="text/javascript"> function parseQuery(queryString) { var query = {}; var pairs = ( queryString[0] === "?" ? queryString.substr(1) : queryString ).split("&"); for (var i = 0; i < pairs.length; i++) { var pair = pairs[i].split("="); query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ""); } return query; } function phonePrepopFormatter(phone) { const country = window["pageObj"]?.["__extrasettings__"]?.["country"]; if (phone !== null && phone !== undefined) { try { // Remove any non-digit characters let formattedPhone = phone?.replaceAll(/\D/g, ""); if (country === "us" || country === "ca") { // For NA, remove leading 1's and 0's while (/^[01]/.test(formattedPhone.charAt(0))) { formattedPhone = formattedPhone?.substring(1); } } return formattedPhone; } catch (error) { console.error("Failed to format phone:", error); return phone; } } else { return phone; } } function queryParamPrefill() { const handleElementPrefill = (elements, prefillData) => { Object.keys(elements).forEach((name) => { elements[name].forEach((element) => { //handle element auto fill if (element) { switch (element.nodeName) { case "RHCL-DROPDOWN": { const prefillDropdown = (element) => { if (element && element.children && element.children.length) { Array.from(element.children).forEach((child) => { child.selected = prefillData[name] == child.value; }); element.value = prefillData[name]; return true; } }; // try to fill dropdown if (!prefillDropdown(element)) { // if it's not available yet wait for children to be added function onAttributesChanged(_, observer) { // check if child nodes are available const childNodes = Array.from(element.children); for (const child of childNodes) { if (child.value !== undefined) { const prefilled = prefillDropdown(element); if (prefilled) { observer.disconnect(); // disconnect after prefilling } return; } } } // setup attribute mutation observer to fire event with const observer = new MutationObserver(onAttributesChanged); observer.observe(element, { attributes: true }); } break; } case "RHCL-CHECKBOX": { const prefillCheckbox = () => { if (element.interactionRef) { // interactionRef is available, set checked state element.interactionRef.checked = prefillData[name].toLowerCase() == "true"; return true; } }; // if checkbox wasn't available wait for mutation to make it so if (!prefillCheckbox()) { function onMutation(_, observer) { // try to fill checkbox on mutation if (prefillCheckbox()) { // disconnect after prefilling observer.disconnect(); } } // setup attribute mutation observer to fire event with interactionRef const observer = new MutationObserver(onMutation); observer.observe(element, { childList: true, subtree: true, attributes: true, }); } break; } default: element.value = prefillData[name]; if (element.name == "phoneNumber") { let formattedPhone = phonePrepopFormatter(element.value); element.value = formattedPhone; } } } }); }); }; const search = window.location.search; if (search.length && search[0] === "?") { const params = parseQuery(search); //handle form data query param if (params.fd) { const prefillData = parseQuery(atob(params.fd)); const elements = {}; Object.keys(prefillData).forEach((name) => { elements[name] = document.getElementsByName(name); }); const fd = params.fd; if (fd !== null) { const decodedParams = atob(fd); const baseUrl = window.location.origin; let formValue = baseUrl + window.location.pathname + search.replace(/(fd=)[^&$]*/g, decodedParams); document.querySelector("#formUrl").value = formValue; handleElementPrefill(elements, prefillData); } } else { //if no form data query, use all other params and prefill accordingly const elements = {}; Object.keys(params).forEach((name) => { elements[name] = document.getElementsByName(name); }); handleElementPrefill(elements, params); } } } const setRhInternalTracking = () => { // if medium = "Email" tracking = Email Campaign // if medium = "ppc" tracking = Ad Campaign // else tracking = Not found // fd encoded query param has precedence over other query params const trackingTypeElements = document.getElementsByName( "rhInternalTrackingType" ); const trackingValueElements = document.getElementsByName( "rhInternalTrackingValue" ); if (trackingTypeElements.length && window.location.search.length) { const queryParams = parseQuery(window.location.search); const fdParams = queryParams.fd && parseQuery(atob(queryParams.fd)); const medium = (fdParams && fdParams.utm_medium) || queryParams.utm_medium; const campaignValue = (fdParams && fdParams.utm_campaign) || queryParams.utm_campaign || ""; if (medium) { if (medium.toLowerCase() === "email") { trackingTypeElements.forEach((el) => (el.value = "Email Campaign")); } else if (medium.toLowerCase() === "ppc") { trackingTypeElements.forEach((el) => (el.value = "Ad Campaign")); } else { trackingTypeElements.forEach((el) => (el.value = "Not found")); } } if (campaignValue) { trackingValueElements.forEach((el) => (el.value = campaignValue)); } } }; /***************************Hidden Field Logic*********************************************/ window.ready(function () { document.querySelectorAll("#backdrop").forEach((ele) => { ele.style.display = "none"; }); if (document.querySelectorAll(".hiddenfield").length > 0) { //get country name from url function getCountryName() { var pagePath = new URL(window.location); pagePath = pagePath.pathname.replace("/content/roberthalf", ""); var country = pagePath.split("/")[1]; country = country != undefined ? country.toUpperCase() : ""; var countryArray = [...document.querySelectorAll("#country")]; countryArray.forEach(function (ele) { ele.value = country; }); } //get language name from url function getLanguageName() { var pagePath = new URL(window.location); pagePath = pagePath.pathname.replace("/content/roberthalf", ""); var language = pagePath.split("/")[2]; var country = pagePath.split("/")[1]; var languageArray = [...document.querySelectorAll("#language")]; languageArray.forEach(function (ele) { ele.value = language + "_" + country; }); } window.addEventListener("rh-client-id-set", function () { getGoogleAnalyticsId(); getTealiumId(); }); //get lob function getLob() { var lob = getURLParameter("lob"); lob = lob != undefined ? lob : ""; var lobArray = [...document.querySelectorAll("#lob")]; lobArray.forEach(function (ele) { ele.value = lob; }); } function getFormUrl() { var formUrlArray = [ ...document.querySelectorAll("#formUrl"), ...document.querySelectorAll("#requestUrl"), ...document.querySelectorAll("#formUrlEncoded"), ]; formUrlArray.forEach(function (ele) { ele.value = new URL(window.location).href; }); } //current date and time in format YYYY-MM-DD HH:MM:SS function currentDateTime() { var d = new Date(); d = d.getFullYear() + "-" + (d.getMonth() + 1 < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1) + "-" + (d.getDate() < 10 ? "0" + d.getDate() : d.getDate()) + " " + (d.getHours() < 10 ? "0" + d.getHours() : d.getHours()) + ":" + (d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes()) + ":" + (d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds()); return d; } function getMiddleInitial() { var middleInitial = currentDateTime(); var middleInitialArray = [...document.querySelectorAll("#middleInitial")]; middleInitialArray.forEach(function (ele) { ele.value = middleInitial; }); } //get ip address function getIpAddress() { fetch("https://jsonip.com/") .then((response) => response.json()) .then((data) => { var ipAddressArray = [ ...document.querySelectorAll("#ipAddress"), ...document.querySelectorAll("#remoteAddrIp"), ]; ipAddressArray.forEach(function (ele) { ele.value = data.ip; }); }) .catch((error) => { console.error("Error fetching IP address:", error); }); } function getGoogleAnalyticsId() { var googleAnalyticsArray = [ ...document.querySelectorAll("#googleAnalyticsId"), ]; googleAnalyticsArray.forEach(function (ele) { ele.value = window.clientId; }); } function getTimeStamp() { var dt = new Date(); var h = dt.getHours(), m = (dt.getMinutes() < 10 ? "0" : "") + dt.getMinutes(); var strDate = dt.getFullYear() + "-" + (dt.getMonth() + 1) + "-" + dt.getDate(); var currentTime = h > 12 ? h - 12 + ":" + m + " PM" : h + ":" + m + " AM"; var currDate = "'" + strDate + "'"; var currentTimeStamp = Date.parse(currDate + currentTime); return currentTimeStamp; } function getSourceId() { var rhdSourceId = getURLParameter("rhdSourceId"); if (rhdSourceId != undefined) { var currentTimeStamp = getTimeStamp(); var rhdSourceIdArray = [...document.querySelectorAll("#rhdSourceId")]; rhdSourceIdArray.forEach(function (ele) { ele.value = rhdSourceId + "-" + currentTimeStamp; }); } else { var formContainer = document.querySelector(".form-container"); var id = formContainer ? formContainer.id : ""; var rhdSourceIdArray = [...document.querySelectorAll("#rhdSourceId")]; rhdSourceIdArray.forEach(function (ele) { ele.value = id + "-" + currentTimeStamp; }); } } function getUtmSource() { var utmsource = getURLParameter("utm_source"); utmsource = utmsource != undefined ? utmsource : ""; var utmSourceArray = [...document.querySelectorAll("#utmSource")]; utmSourceArray.forEach(function (ele) { ele.value = utmsource; }); } function getUtmCampaign() { var campaign = getURLParameter("utm_campaign"); campaign = campaign != undefined ? campaign : ""; var utmCampaignArray = [...document.querySelectorAll("#utmCampaign")]; utmCampaignArray.forEach(function (ele) { ele.value = campaign; }); } function getSfJoNumber() { var sfJoNumber = getURLParameter("sfJoNumber"); sfJoNumber = sfJoNumber != undefined ? sfJoNumber : ""; var sfJoNumberArray = [...document.querySelectorAll("#sfJoNumber")]; sfJoNumberArray.forEach(function (ele) { ele.value = sfJoNumber; }); } function getTealiumId() { var tealiumIdArray = [...document.querySelectorAll("#tealiumId")]; tealiumIdArray.forEach(function (ele) { ele.value = window?.tealiumId; }); } function getGclid() { var searchParams = parseQuery(window.location.search); var gclidVal = searchParams?.gclid ? searchParams.gclid : "not defined"; var gclidArray = [...document.querySelectorAll("#gclid")]; gclidArray.forEach(function (ele) { ele.value = gclidVal; }); } function getSfContactId() { var sfContactId = getURLParameter("sfContactId"); sfContactId = sfContactId != undefined ? sfContactId : ""; var sfContactIdArray = [...document.querySelectorAll("#sfContactId")]; sfContactIdArray.forEach(function (ele) { ele.value = sfContactId; }); } function getURLParameter(sParam) { var sPageURL = new URL(window.location); sPageURL = sPageURL.search.substring(1); var sURLVariables = sPageURL.split("&"); for (var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split("="); if (sParameterName[0] == sParam) { return sParameterName[1]; } } } function updatePageHeading() { var replaceFields = [ { replace: "{positionTitle}", queryParam: "positionTitle" }, { replace: "{city}", queryParam: "city" }, { replace: "{country}", queryParam: "country" }, { replace: "{location}", queryParam: "location" }, { replace: "{jobtitle}", queryParam: "jobtitle" }, ]; const queryParams = parseQuery(window.location.search); replaceFields.forEach((replacement) => { const value = queryParams[replacement.queryParam] || null; const hfbHeadlineElement = document.querySelector( "rhcl-block-hero-form" ); const hfbHeadline = hfbHeadlineElement ? encodeURIComponent(hfbHeadlineElement.getAttribute("headline")) : ""; if (value !== null && hfbHeadline.indexOf(replacement.replace) > -1) { hfbHeadline.replace(replacement.replace, value); document .querySelector("rhcl-block-hero-form") .setAttribute("headline", sentence.replaceAll("%20", " ")); } }); } getCountryName(); getLanguageName(); getLob(); getFormUrl(); getMiddleInitial(); getIpAddress(); getGoogleAnalyticsId(); getSourceId(); getUtmSource(); getUtmCampaign(); getSfJoNumber(); getTealiumId(); getGclid(); getSfContactId(); } if (document.querySelectorAll("rhcl-block-hero-form").length > 0) { updatePageHeading(); } // use fd prefill after to give precedence to fd querystrings setRhInternalTracking(); }); window.addEventListener("rhcl-initialized", () => { queryParamPrefill(); }); queryParamPrefill(); (function() { var test = document.querySelectorAll("#recaptcha").length; var recaptchaFlag = 0; const firstRhclButton = document.querySelector("rhcl-button"); const recaptchaFailMessage = firstRhclButton && firstRhclButton?.getAttribute("data-recaptcha-message"); const recaptchaEndpoint = aemSettings?.rh_common?.recaptchaEndpoint; const bypassToken = document.getElementById("bypassToken"); let bypassPerimeter = ""; if (bypassToken != null) { bypassPerimeter = bypassToken.getAttribute("value"); } function scrollToTopOfForm() { const formContainer = document.querySelector(".form-container"); if (formContainer) { const topEl = formContainer .closest("rhcl-block-hero-form") ?.shadowRoot?.querySelector(".rhcl-block-hero-form__form"); const topOfForm = topEl?.getBoundingClientRect()?.top; const defaultHeaderHeight = 78; const headerHeight = parseInt( getComputedStyle(formContainer).getPropertyValue( "--rhcl-main-navigation-height" ), 10 ) || defaultHeaderHeight; if (top !== undefined) { setTimeout(() => { window.scrollTo({ top: topOfForm + window.scrollY - headerHeight, behavior: "smooth", }); }, 500); } } } function getURLParameters() { const urlSearchParams = new URLSearchParams(window.location.search); const params = Object.fromEntries(urlSearchParams.entries()); return params; } function getByPassStatus(params) { var arrayLength = params.length; for (var i = 0; i < arrayLength; i++) { if (params[i] === bypassPerimeter) { return 0; } } return 1; } function setKeyValueInUPO(key, unifiedProfileObject, value) { //set a particular key value in UPO unifiedProfileObject[key] = value; return unifiedProfileObject; } function saveGatingPropertyInUPO() { if (localStorage.getItem("unifiedProfileObject") != null) { var unifiedProfileObject = window.getUPO(); const gatingProperties = document.querySelector(".gating-properties"); if (gatingProperties != null) { var gatingProperty = gatingProperties.getAttribute("gatingproperty") != undefined ? gatingProperties.getAttribute("gatingproperty") : "sgGatingFormSubmitted"; unifiedProfileObject = setKeyValueInUPO( gatingProperty, unifiedProfileObject, window.salaryGuideGatingProperties.key ); window.setUPO(unifiedProfileObject); } } window.localStorage.setItem( "salaryGuideGatingKey", window.salaryGuideGatingProperties.key ); } var candidateWorkHistory = { recaptchaEnabled: "", invisibleRecaptchaToken: "", subscriberKey: "", }; let jobAlertRequestObject = { candidateEmailAddress: "", locale: "", keywords: "", keywordsNoSpaces: "", subscriptionSource: "rhWebsite", countryCode: "", searchResultsUrl: "", subscriptionSourceUrl: "", postedWithin: "", jobType: "", empType: "", cityId: "", cityTxt: "", jobAlertsSubscriptionId: "", lobName: "", location: "", locationNoSpaces: "", googleAnalyticsClientId: "", emailFrequency: "W", jobOrderRecommendationsCount: "5", insrtDttmHist: "", subscriptionType: "Manual", status: "A", }; var leadApiRequestObject = { recaptchaEnabled: "", invisibleRecaptchaToken: "", servicePreference: "", startDate: "", languageLocale: "", rhAnalyticsAddInfo: "", routingEmail: "", candidateReference1: "", candidateFunctionalRole1: "", candidateReference2: "", candidateFunctionalRole2: "", candidateReference3: "", candidateFunctionalRole3: "", candidateReference4: "", candidateFunctionalRole4: "", candidateReference5: "", candidateFunctionalRole5: "", additionalAttribute1: "", additionalAttribute2: "", additionalAttribute3: "", additionalAttribute4: "", additionalAttribute5: "", skillsRequested: "", experienceDurationMin: "", experienceDurationMax: "", experiencePeriod: "", educationLevel: "", payRateMin: "", payRateMax: "", payPeriod: "", payRateCurrency: "", additionalInfo: "", actionRequestedOfLp: "SUBMIT", rhInternalTrackingType: "", }; var newsApiObject = { recaptchaEnabled: "", invisibleRecaptchaToken: "", }; var businessUnit = { us: "na", ca: "na", au: "iz_apac_sam", br: "iz_apac_sam", cl: "iz_apac_sam", cn: "iz_apac_sam", hk: "iz_apac_sam", jp: "iz_apac_sam", nz: "iz_apac_sam", sg: "iz_apac_sam", be: "iz_eu", ch: "iz_eu", de: "iz_eu", fr: "iz_eu", nl: "iz_eu", uk: "iz_eu", }; const removeTags = (str) => { if (str === null || str === "") { return false; } else { str = str.toString(); } // Regular expression to identify HTML tags in the input string. Replacing the identified HTML tag with a null string. str = str.replace(/(<([^>]+)>)/gi, ""); // Regular expression to identify enter in the input string. Replacing the identified enter with a null string. return (str = str.replace(/\r?\n|\r/g, "")); }; function ajaxCall(input, thisInstance, form) { let formActionUrl = document.querySelector(".form-btn") ? document.querySelector(".form-btn").closest("form").getAttribute("action") : document .querySelector(".form-submit-btn") .closest("form") .getAttribute("action"); let requestData = createRequestPayload(input, thisInstance); let tryCount = 0; const retryLimit = 3; const makeFetchRequest = () => { fetch(formActionUrl, { method: "POST", headers: { "Content-Type": "application/json" }, body: requestData, }) .then((response) => { const jqXHR = { status: response.status, readyState: 4, // api call is complete (equivalent to XMLHttpRequest.DONE) responseText: null, responseJSON: null, }; if (!response.ok) { return response.text().then((text) => { jqXHR.responseText = text; try { jqXHR.responseJSON = JSON.parse(text); } catch (e) { throw jqXHR; } throw jqXHR; }); } return response.text().then((text) => { jqXHR.responseText = text; try { jqXHR.responseJSON = JSON.parse(text); } catch (e) { console.error("Error processing response JSON:", e.message); throw jqXHR; } return jqXHR; }); }) .then((jqXHR) => { const responseJSON = JSON.parse(jqXHR.responseText); let requestMessageKey = responseJSON.request_message_key || responseJSON.request_message_Key; if (typeof requestMessageKey === "string") { requestMessageKey = requestMessageKey.trim(); } if ( jqXHR.readyState == "4" && (jqXHR.status == "202" || jqXHR.status == "200") ) { if (responseJSON.hasOwnProperty("recaptcha_response")) { if ( responseJSON.hasOwnProperty("request_message_key") || responseJSON.hasOwnProperty("request_message_Key") ) { if ( requestMessageKey === "20_validationFailed_invisibleRecaptchaToken" || requestMessageKey === "20_validationFailed_invisibleRecaptchaScore" ) { form.nextElementSibling.style.display = "none"; showInteractiveReCaptcha(); } if ( requestMessageKey === "20_validationFailed_interactiveRecaptchaToken" || requestMessageKey === "20_validationFailed_interativeRecaptchaToken" ) { form.nextElementSibling.style.display = "none"; document .querySelector(".form-container rhcl-alert:first") .setAttribute("copy", responseJSON.request_message); document.querySelector( ".form-container rhcl-alert:first" ).style.display = "block"; setTimeout(() => { const formContainer = document.querySelector(".form-container"); window.scrollTo({ top: formContainer.getBoundingClientRect() + formContainer.ownerDocument.defaultView.scrollY, behavior: "smooth", }); }, 500); } } } // To do success scenario if (!responseJSON.hasOwnProperty("recaptcha_response")) { form.nextElementSibling.style.display = "none"; recaptchaFlag = 0; var recaptchaContainer = document.getElementById( "grecaptcha-interactive" ); if (recaptchaContainer) { recaptchaContainer.remove(); } if ( leadApiRequestObject.hasOwnProperty("interactiveRecaptchaToken") ) { delete leadApiRequestObject.interactiveRecaptchaToken; } if ( candidateWorkHistory.hasOwnProperty("interactiveRecaptchaToken") ) { delete candidateWorkHistory.interactiveRecaptchaToken; } if (newsApiObject.hasOwnProperty("interactiveRecaptchaToken")) { delete newsApiObject.interactiveRecaptchaToken; } } if ( responseJSON.hasOwnProperty("recaptcha_response") && (requestMessageKey === "20_validationFailed_interactiveRecaptchaToken" || requestMessageKey === "20_validationFailed_interativeRecaptchaToken") ) { form.nextElementSibling.style.display = "none"; recaptchaFlag = 0; var recaptchaContainer = document.getElementById( "grecaptcha-interactive" ); if (recaptchaContainer) { recaptchaContainer.remove(); } if ( leadApiRequestObject.hasOwnProperty("interactiveRecaptchaToken") ) { delete leadApiRequestObject.interactiveRecaptchaToken; } if ( candidateWorkHistory.hasOwnProperty("interactiveRecaptchaToken") ) { delete candidateWorkHistory.interactiveRecaptchaToken; } if (newsApiObject.hasOwnProperty("interactiveRecaptchaToken")) { delete newsApiObject.interactiveRecaptchaToken; } } if ( !requestMessageKey === "20_validationFailed_interactiveRecaptchaToken" && !requestMessageKey === "20_validationFailed_interativeRecaptchaToken" ) { document .querySelectorAll(".form-container rhcl-alert") .forEach(function (el) { el.style.display = "none"; }); } var formTypeVal = document.querySelector( ".rhformhiddenfield input[name=formType]" ); var projectTypeVal = document.querySelector( ".rhformhiddenfield input[name=projectType]" ); var analyticObj; //Single step job order form if (formTypeVal && formTypeVal.value == "job-order") { var industry = document.querySelector( "form rhcl-text-field[name=industry]" )?.value; analyticObj = { tealium_event: "job_order_submit", datalayer_version: 2, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), form_email: window.getUPO().email ? window.getUPO().email : window.getUPO().candidateEmail, form_type: formTypeVal.value, indicator_remote: document .querySelector("rhcl-checkbox") ?.hasAttribute("selected") ? true : false, industry: industry ? industry : "", job_id: document.querySelector("#sfJoNumber") ? document.querySelector("#sfJoNumber").getAttribute("value") : "", job_type: window.getUPO().employmentType, job_title: window.getUPO().positionTitle, lob: document.querySelector("#lob") ? document.querySelector("#lob").getAttribute("value") : "", location: window.getUPO().postalCode, }; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); } //Executive Search form if (formTypeVal && formTypeVal.value == "executive-search") { analyticObj = { tealium_event: "job_order_submit", datalayer_version: 2, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), event_version: "executive search", form_email: window.getUPO().email ? window.getUPO().email : window.getUPO().candidateEmail, form_type: formTypeVal.value, job_title: window.getUPO().positionTitle, location: window.getUPO().postalCode, }; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); } //Newsletter subscription form if (formTypeVal && formTypeVal.value == "newsletter-subscription") { analyticObj = { tealium_event: "newsletter_subscription_submit", datalayer_version: 2, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), form_email: window.getUPO().email ? window.getUPO().email : window.getUPO().candidateEmail, form_type: formTypeVal.value, }; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); } //Salary guide form if (formTypeVal && formTypeVal.value == "salary-guide") { let userType = ""; let checkBoxVal = document.querySelector("form rhcl-radio-group") ? document.querySelector("form rhcl-radio-group").value : ""; if (checkBoxVal == "yes") { userType = "client"; } else if (checkBoxVal == "no") { userType = "candidate"; } analyticObj = { tealium_event: "salary_guide_submit", datalayer_version: 2, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), form_email: window.getUPO().email ? window.getUPO().email : window.getUPO().candidateEmail, form_type: formTypeVal.value, user_type: userType, }; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); } //webmaster feedback form if (formTypeVal && formTypeVal.value == "webmaster-feedback") { analyticObj = { tealium_event: "feedback_submit", datalayer_version: 2, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), form_type: formTypeVal.value, }; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); console.log(analyticObj, "event"); } //client visit form if (formTypeVal && formTypeVal.value == "client-visit") { analyticObj = { tealium_event: "client_visit_submit", datalayer_version: 2, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), event_version: projectTypeVal.value, form_type: formTypeVal.value, form_name: formTypeVal.name, form_email: window.getUPO().email ? window.getUPO().email : window.getUPO().candidateEmail, page_name: "", page_section: "", user_focus: "", user_state: window.getUPO().isLoggedIn ? "auth" : "unauth", }; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); } //gated form if (formTypeVal && formTypeVal.value == "gated") { let visitorTypeValue = document.querySelector( "form rhcl-radio-group[name='visitorType']" )?.value || ""; if ( visitorTypeValue === "" && document.getElementsByName("visitorType").length ) { visitorTypeValue = document.getElementsByName("visitorType")[0]?.value; } analyticObj = { tealium_event: "gated_submit", datalayer_version: 2, event_attr_01: visitorTypeValue, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), event_version: projectTypeVal.value, form_type: formTypeVal.value, form_name: formTypeVal.name, form_email: window.getUPO().email ? window.getUPO().email : window.getUPO().candidateEmail, page_name: "", page_section: "", user_focus: "", user_state: window.getUPO().isLoggedIn ? "auth" : "unauth", }; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); console.log(analyticObj, "event"); } //job order forms if ( formTypeVal && (formTypeVal.value == "job-order-no-rhd" || formTypeVal.value == "job-order-one-click") ) { analyticObj = { tealium_event: "job_order_submit", datalayer_version: 2, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), form_type: formTypeVal.value, }; var hasEmail = Array.from( document.querySelectorAll("form rhcl-text-field") ).filter((ele) => { return ele.type == "email"; }); if (hasEmail.length) analyticObj["form_email"] = hasEmail[0].value; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); } if ( formTypeVal && (formTypeVal.value == "candidate-referral" || formTypeVal.value == "email-us" || formTypeVal.value == "job-order-no-rhd" || formTypeVal.value == "job-order-one-click" || formTypeVal.value == "mobile-app-download" || formTypeVal.value == "candidate-work-history" || formTypeVal.value == "contact-us-aws" || formTypeVal.value == "contact-us") ) { analyticObj = { tealium_event: "form_submit", datalayer_version: 2, event_action: "rhcl-button-clicked", event_text: document .querySelector("form rhcl-button") .getAttribute("component-tracking-label"), form_type: formTypeVal.value, }; var hasEmail = Array.from( document.querySelectorAll("form rhcl-text-field") ).filter((ele) => { return ele.type == "email"; }); if (hasEmail.length) analyticObj["form_email"] = hasEmail[0].value; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } rh_datalayer_add(analyticObj, "event"); } } if ( responseJSON.request_status == "error" || responseJSON.request_status == "ERROR" ) { form.nextElementSibling.style.display = "none"; document .querySelector(".form-container rhcl-alert") .setAttribute("copy", responseJSON.request_message); { const alertEl = document.querySelector( ".form-container rhcl-alert" ); if (alertEl) { alertEl.style.display = "block"; } } { scrollToTopOfForm(); } return; } if ( typeof responseJSON.request_message_Key !== "string" && responseJSON.request_message_Key !== "20_success" ) { if (responseJSON.hasOwnProperty("request_message_Key")) { form.nextElementSibling.style.display = "none"; if (responseJSON.request_message_Key.length > 0) { if ( responseJSON.request_message_Key.includes( "20_validationFailed_postalCode" ) ) { var postalCodeCopy = document .querySelector( '.form-container rhcl-alert[data-status="postalCodeError"]' ) .getAttribute("copy"); if (postalCodeCopy.includes("{postalCode}")) { var errorMessage = postalCodeCopy.replace( "{postalCode}", leadApiRequestObject.postalCode ); document .querySelector( '.form-container rhcl-alert[data-status="postalCodeError"]' ) .setAttribute("copy", errorMessage); { const alertEl = document.querySelector( '.form-container rhcl-alert[data-status="postalCodeError"]' ); if (alertEl) { alertEl.style.display = "block"; } } } } if ( responseJSON.request_message_Key.includes( "20_validationFailed_positionTitle" ) ) { if (positionTitleCopy.includes("{positionTitle}")) { var errorMessage = positionTitleCopy.replace( "{positionTitle}", leadApiRequestObject.positionTitle ); document .querySelector( '.form-container rhcl-alert[data-status="error"]' ) .setAttribute("copy", errorMessage); { const alertEl = document.querySelector( '.form-container rhcl-alert[data-status="error"]' ); if (alertEl) { alert.style.display = "block"; } } } } { scrollToTopOfForm(); } } } } if (document.querySelector(".salary-guide") !== null) { form.nextElementSibling.style.display = "none"; saveGatingPropertyInUPO(); } if ( document.querySelector("#showRedirectStatus") !== null && !responseJSON.hasOwnProperty("recaptcha_response") && requestMessageKey.includes("20_success") ) { form.nextElementSibling.style.display = "none"; var thankyouPage = thisInstance .getAttribute("destination") .replace("/content/roberthalf", "") .replace(".html", ""); const redirectionUrl = window.localStorage.getItem("redirectionUrl"); if ( thankyouPage != undefined && thankyouPage != "" && thankyouPage != null ) { if (redirectionUrl) { if (thankyouPage.includes("html")) { thankyouPage = thankyouPage.split(".")[0]; thankyouPage += redirectionUrl + ".html"; } else { thankyouPage += redirectionUrl; } localStorage.removeItem("redirectionUrl"); } window.location.replace(thankyouPage); } } if ( document.querySelector("#showPopupStatus") !== null && !responseJSON.hasOwnProperty("recaptcha_response") && requestMessageKey.includes("20_success") ) { form.nextElementSibling.style.display = "none"; { const alertEl = document.querySelector( ".form-container rhcl-alert" ); if (alertEl) { alertEl.style.display = "none"; } } var defaultMasg = responseJSON.hasOwnProperty("request_message") ? responseJSON.request_message : "The action was processed successfully."; var errorCopy = document.querySelector("#showPopupStatus") && document.querySelector("#showPopupStatus").getAttribute("data-copy") ? document .querySelector("#showPopupStatus") .getAttribute("data-copy") : defaultMasg; errorCopy = removeTags(errorCopy); { const formContainer = document.querySelector(".form-container"); if (formContainer) { formContainer.style.display = "none"; } } { const formContentEls = document.querySelectorAll( '[slot="form-content"]' ); formContentEls.forEach((el) => { el.style.display = "flex"; el.style.justifyContent = "center"; el.style.flexWrap = "wrap"; }); } document .querySelectorAll('[slot="form-content"]') .forEach(function (element) { element.insertAdjacentHTML( "afterbegin", `<rhcl-typography tag='p' variant='body1'>${errorCopy}</rhcl-typography>` ); }); { scrollToTopOfForm(); } } if (document.querySelector("#email-model") !== null) { form.nextElementSibling.style.display = "none"; document.querySelector("#email-model").removeAttribute("show-modal"); if (document.querySelector("#thankyou-modal") !== null) { document .querySelector("#thankyou-modal") .setAttribute("show-modal", ""); let thankuname, thankuemail; if (localStorage.getItem("unifiedProfileObject") != null) { thankuname = window.getUPO().firstName; thankuemail = window.getUPO().emailAddress ? window.getUPO().emailAddress : window.getUPO().email; } let thankyouHeading = document.querySelector( "#thankyou-modal rhcl-heading" ); let thankyouEmail = document.querySelector( "#thankyou-modal rhcl-typography" ); if (thankyouHeading != null) { let thankyouname = document .querySelector("#thankyou-modal rhcl-heading") .getAttribute("data-attribute-heading"); thankyouname = thankyouname.replace("<>", thankuname); document.querySelector( "#thankyou-modal rhcl-heading" ).textContent = thankyouname; } if (thankyouEmail != null) { let thankyouemail = document .querySelector("#thankyou-modal rhcl-typography") .getAttribute("data-attribute-disclaimer"); thankyouemail = thankyouemail.replace("<>", thankuemail); document.querySelector( "#thankyou-modal rhcl-typography" ).textContent = thankyouemail; } } } }) .catch((jqXHR) => { if ([502, 503, 504].includes(jqXHR.status)) { form.nextElementSibling.style.display = "none"; tryCount++; if (tryCount < retryLimit) { makeFetchRequest(); return; } } if ([500, 502, 503, 504].includes(jqXHR.status)) { form.nextElementSibling.style.display = "none"; const alertEl = document.querySelector( ".form-container rhcl-alert[data-status='" + currentStatus + "']" ); if (alertEl) { alertEl.style.display = "block"; } scrollToTopOfForm(); } if ( jqXHR.status === 400 && (jqXHR.responseJSON.request_status === "error" || jqXHR.status === "ERROR") ) { form.nextElementSibling.style.display = "none"; document .querySelector(".form-container rhcl-alert:first") .setAttribute("copy", responseJSON.request_message); document.querySelector( ".form-container rhcl-alert:first" ).style.display = "block"; scrollToTopOfForm(); } }); }; makeFetchRequest(); } window.ready(function () { document .querySelectorAll(".form-submit-btn rhcl-button") .forEach(function (el) { el.addEventListener("click", function (e) { e.preventDefault(); recaptchaStatus(); getLeadId(); setTimeout(getSubmissionDate, 2000); let thisInstance = this; let form = this.closest("form"); if (!form.closest(".salary-guide")) { localStorage.removeItem("redirectionUrl"); } var inputElements = form.querySelectorAll("[rhcl-input]"); var dateElements = form.querySelectorAll("rhcl-datepicker"); let validateFieldArray = [...inputElements, ...dateElements]; validateForm(validateFieldArray, thisInstance, form); if (document.querySelectorAll(".salary-guide").length > 0) { updateHiddenFields(); } }); }); document.querySelectorAll(".form-btn rhcl-button").forEach(function (el) { el.addEventListener("click", function (e) { e.preventDefault(); const thisInstance = this; var form = document.querySelector(".form-btn") ? document.querySelector(".form-btn").closest("form") : null; var inputElements = form ? form.querySelectorAll("[rhcl-input]") : []; let validateFieldArray = Array.from(inputElements); validateForm(validateFieldArray, thisInstance, form); recaptchaStatus(); }); }); }); function getPostalCodeInForm() { return document.querySelector("rhcl-text-field[name='postalCode']"); } function isCountryUS() { var country = document.getElementById("country"); return country && country.hasAttribute("value") && country.value == "US"; } function isPostalCodeInvalidForUS(value) { return ( value.match(/^(82[0-9]{3}|83[0-3][0-9]{2}|8341[0-4])$/) || value.match( /^(995[0-9]{2}|996[0-9]{2}|997[0-9]{2}|998[0-9]{2}|999[0-4][0-9]|99950)$/ ) || value.match( /^(24[7-9][0-9]{2}|25[0-9]{3}|26[0-7][0-9]{2}|268[0-7][0-9]|2688[0-6])$/ ) ); } function getPostalCodeErrorValidity() { var postalCodeField = getPostalCodeInForm(); var value = postalCodeField.value; if (!postalCode || !isCountryUS()) { return false; } const isInvalid = isPostalCodeInvalidForUS(value); var initialMessage = postalCodeField.getAttribute("custom-error-message"); if (isInvalid) { initialMessage = `Robert Half cannot support staffing needs in ${value} at this time.`; postalCodeField.setAttribute("custom-invalid", ""); postalCodeField.setAttribute("custom-error-message", initialMessage); } else { postalCodeField.removeAttribute("custom-invalid"); postalCodeField.removeAttribute("custom-error-message"); } return isInvalid; } var postalCode = getPostalCodeInForm(); if (postalCode) { postalCode.addEventListener("rhcl-text-field-blur", function (e) { if (isCountryUS()) { let isValid = true; const promises = []; postalCode.removeAttribute("custom-invalid"); postalCode.customInvalid = null; promises.push(postalCode.validate()); Promise.allSettled(promises).then((results) => { results.forEach((result) => { if (result.status === "fulfilled") { if (!result.value) { isValid = false; } } }); if (isValid) { getPostalCodeErrorValidity(); } }); } }); if ( getURLParameter("postalCode") != "" || getURLParameter("postalCode") != null || getURLParameter("postalCode") != undefined ) { var postalCodecount = 0; document .querySelector(".form-container rhcl-text-field[name='postalCode']") .addEventListener("rhcl-text-field-changed", function (e) { var patternId = document.querySelector("#rhFormTextField"); var pattern = ""; var patternMessage = ""; if (patternId) { pattern = patternId.hasAttribute("data-pattern") ? patternId.getAttribute("data-pattern") : ""; patternMessage = patternId.hasAttribute("data-errorMessage") ? patternId.getAttribute("data-errorMessage") : ""; } let isValid = true; const promises = []; document .querySelector("rhcl-text-field[name='postalCode']") .removeAttribute("custom-invalid"); document.querySelector( "rhcl-text-field[name='postalCode']" ).customInvalid = null; promises.push( document .querySelector("rhcl-text-field[name='postalCode']") .validate() ); Promise.allSettled(promises).then((results) => { results.forEach((result) => { if (result.status === "fulfilled") { if (!result.value) { isValid = false; } } }); if (isValid) { postalCodecount += 1; if (postalCodecount < 2 && this.value) { const value = this.value; if (pattern && value.match(pattern) == null) { this.setAttribute("custom-invalid", ""); } else { this.removeAttribute("custom-invalid"); } this.setAttribute("custom-error-message", patternMessage); } } }); }); } } function getEmailField() { return document.querySelector('[id^="rhcl-text-field"][type="email"]'); } if ( document.querySelector("rhcl-datepicker[name='startDate']") && document.querySelector("rhcl-datepicker[name='endDate']") ) { document .querySelector("rhcl-datepicker[name='endDate']") .addEventListener("rhcl-calendar-change", (e) => { let isValid = true; const promises = []; document .querySelector("rhcl-datepicker[name='endDate']") .removeAttribute("custom-invalid"); document.querySelector("rhcl-datepicker[name='endDate']").customInvalid = null; document .querySelector("rhcl-datepicker[name='endDate']") .labelRef.removeAttribute("custom-invalid"); promises.push( document.querySelector("rhcl-datepicker[name='endDate']").validate() ); Promise.allSettled(promises).then((results) => { results.forEach((result) => { if (result.status === "fulfilled") { if (!result.value) { isValid = false; } } }); if (isValid) { const formName = document.querySelector( "input[name='formName']" ).value; if (formName && formName.includes("candidate_work_history")) { const startDate = document.querySelector( "rhcl-datepicker[name='startDate']" ); const endDate = document.querySelector( "rhcl-datepicker[name='endDate']" ); const errorMsg = endDate.hasAttribute("data-custom-error-message") ? endDate.getAttribute("data-custom-error-message") : ""; var initialMessage = endDate.getAttribute("custom-error-message"); endDate.removeAttribute("custom-invalid"); endDate.labelRef.removeAttribute("custom-invalid"); var flag = 0; if (new Date(startDate.value) >= new Date(endDate.value)) { flag = 1; if (errorMsg) { initialMessage = errorMsg; } else { initialMessage = "Start Date can not be greater than End Date"; } } if (flag == 1) { endDate.setAttribute("custom-invalid", ""); endDate.labelRef.setAttribute("custom-invalid", ""); } else { endDate.removeAttribute("custom-invalid"); endDate.labelRef.removeAttribute("custom-invalid"); } endDate.setAttribute("custom-error-message", initialMessage); } } }); }); document .querySelector("rhcl-datepicker[name='startDate']") .addEventListener("rhcl-calendar-change", (e) => { let isValid = true; const promises = []; if (document.querySelector("rhcl-datepicker[name='endDate']").value) { document .querySelector("rhcl-datepicker[name='endDate']") .removeAttribute("custom-invalid"); document.querySelector( "rhcl-datepicker[name='endDate']" ).customInvalid = null; document .querySelector("rhcl-datepicker[name='endDate']") .labelRef.removeAttribute("custom-invalid"); promises.push( document.querySelector("rhcl-datepicker[name='endDate']").validate() ); Promise.allSettled(promises).then((results) => { results.forEach((result) => { if (result.status === "fulfilled") { if (!result.value) { isValid = false; } } }); if (isValid) { var startDate = document.querySelector( "rhcl-datepicker[name='startDate']" ); var endDate = document.querySelector( "rhcl-datepicker[name='endDate']" ); const errorMsg = endDate.hasAttribute("data-custom-error-message") ? endDate.getAttribute("data-custom-error-message") : ""; var initialMessage = endDate.getAttribute("custom-error-message"); endDate.removeAttribute("custome-invalid"); endDate.labelRef.setAttribute("custom-invalid", ""); var flag = 0; if ( endDate.value && new Date(startDate.value) > new Date(endDate.value) ) { flag = 1; if (errorMsg) { initialMessage = errorMsg; } else { initialMessage = "Start Date can not be greater than End Date"; } } if (flag == 1) { endDate.setAttribute("custom-invalid", ""); endDate.labelRef.setAttribute("custom-invalid", ""); } else { endDate.removeAttribute("custom-invalid"); endDate.labelRef.removeAttribute("custom-invalid"); } endDate.setAttribute("custom-error-message", initialMessage); } }); } }); } if (document.querySelector("rhcl-checkbox[name='currentEmployer']")) { document .querySelector("rhcl-checkbox[name='currentEmployer']") .addEventListener("rhcl-checkbox-changed", () => { const formName = document.querySelector("input[name='formName']").value; if (formName && formName.includes("candidate_work_history")) { const currEmp = document.querySelector( "rhcl-checkbox[name='currentEmployer']" ).selected; const endDate = document.querySelector( "rhcl-datepicker[name='endDate']" ); if (currEmp && endDate) { endDate.setAttribute("disabled", ""); endDate.setAttribute("date", ""); endDate.style.pointerEvents = "none"; endDate.style.opacity = 0.6; endDate.hasAttribute("custom-invalid") ? endDate.removeAttribute("custom-invalid") : ""; } else { endDate.removeAttribute("disabled"); endDate.style.pointerEvents = "unset"; endDate.style.opacity = 1; } } }); } function updateHiddenFields() { var pagePath = new URL(window.location); pagePath = pagePath.pathname.replace("/content/roberthalf", ""); var country = pagePath.split("/")[1]; var language = pagePath.split("/")[2]; if ( businessUnit.hasOwnProperty(country) && country != undefined && language != undefined ) { var formName = "form_" + businessUnit[country] + "_" + country + "_" + language + "_salary_guide_gating"; if (document.querySelector("input[name='formName']") != null) { document.querySelector("input[name='formName']").value = formName; } if (document.querySelector("input[name='language']") != null) { document.querySelector("input[name='language']").value = language.toUpperCase(); } if (document.querySelector("input[name='countryCode']") != null) { document.querySelector("input[name='countryCode']").value = country.toUpperCase(); } if (document.querySelector("input[name='salaryGuideYear']") != null) { document.querySelector("input[name='salaryGuideYear']").value = new Date().getFullYear(); } } } function createRequestPayload(input, thisInstance) { let unifiedProfileObject; var hiddenInput = thisInstance .closest("form") .querySelectorAll("input[type=hidden]"); var dates = document.querySelectorAll("form rhcl-datepicker"); if (document.querySelector(".salary-guide") != null) { if ( leadApiRequestObject.hasOwnProperty("recaptchaEnabled") || leadApiRequestObject.hasOwnProperty("invisibleRecaptchaToken") ) { var token = leadApiRequestObject.invisibleRecaptchaToken; var status = leadApiRequestObject.recaptchaEnabled; leadApiRequestObject = { invisibleRecaptchaToken: token, recaptchaEnabled: status, }; } } if (localStorage.getItem("unifiedProfileObject") != null) { unifiedProfileObject = window.getUPO(); } const inputArray = [...input, ...hiddenInput, ...dates]; if ( document .querySelector("form[data-attribute-jobalert]") ?.getAttribute("data-attribute-jobalert") === "true" ) { let inputValues = { searchTerms: "", emailAddress: "", location: "", country: "", language: "", }; for (const element in inputArray) { inputValues = retrieveJobAlertsInputFields( inputArray[element], inputValues ); } updateJobAlertDetails(inputValues); return JSON.stringify(jobAlertRequestObject); } else { for (const element in inputArray) { if ( inputArray[element].tagName.toLocaleLowerCase() != "rhcl-checkbox" && inputArray[element].tagName.toLocaleLowerCase() != "rhcl-radio" && inputArray[element].tagName.toLocaleLowerCase() != "rhcl-datepicker" ) { if (inputArray[element].value != undefined) { var noStringsInput = inputArray[element].value.replace(/["']/g, ""); leadApiRequestObject[inputArray[element].name] = noStringsInput; if ( document.querySelector("[data-attribute-iz]") != null && inputArray[element].tagName.toLocaleLowerCase() === "rhcl-radio-group" ) { if (inputArray[element].value.toLocaleLowerCase() === "client") { newsApiObject["newsClient"] = "True"; newsApiObject["newsCandidate"] = "False"; } else if ( inputArray[element].value.toLocaleLowerCase() === "candidate" ) { newsApiObject["newsClient"] = "False"; newsApiObject["newsCandidate"] = "True"; } } else { newsApiObject[inputArray[element].name] = inputArray[element].value; candidateWorkHistory[inputArray[element].name] = inputArray[element].value; } if (unifiedProfileObject != null) { if (inputArray[element].name in unifiedProfileObject) { if (inputArray[element].name === "email") { unifiedProfileObject["emailAddress"] = inputArray[element].value; } else if (inputArray[element].name === "emailAddress") { unifiedProfileObject["email"] = inputArray[element].value; } unifiedProfileObject[inputArray[element].name] = inputArray[element].value; if ( unifiedProfileObject.peopleNumber != "" && document.querySelector("form[data-attribute-ssjo]") != null ) { leadApiRequestObject["peopleNumber"] = unifiedProfileObject.peopleNumber; } if (unifiedProfileObject.contactSfID != "") { newsApiObject["sfContactID"] = unifiedProfileObject.contactSfID; } } if (unifiedProfileObject.contactSfID != "") { candidateWorkHistory["subscriberKey"] = unifiedProfileObject.contactSfID; } } if ( !leadApiRequestObject.rhInternalTrackingType || leadApiRequestObject.rhInternalTrackingType === "Not found" ) { // if the tracking type isn't already set by an ad campaign url leadApiRequestObject["rhInternalTrackingType"] = unifiedProfileObject.isLoggedIn ? "LUX" : "RH Website Visitor"; } } } if ( inputArray[element].tagName.toLocaleLowerCase() == "rhcl-datepicker" ) { if (inputArray[element].value === "") { candidateWorkHistory[inputArray[element].name] = ""; } else { candidateWorkHistory[inputArray[element].name] = changeDateFormat( inputArray[element].value ); } } } var radioValue = document.querySelectorAll("form rhcl-radio:checked"); if (radioValue != null) { radioValue.forEach(function (element) { leadApiRequestObject[element.name] = element.value; newsApiObject[element.name] = element.value; candidateWorkHistory[element.name] = element.value; if (unifiedProfileObject != null) { if (element.name in unifiedProfileObject) { unifiedProfileObject[element.name] = element.value; } } }); } if ( document.querySelectorAll("[data-attribute-iz]").length > 0 && "radioButton" in newsApiObject ) { delete newsApiObject.radioButton; } if ( document.querySelectorAll("[data-attribute-iz]").length > 0 && "radioButtons" in newsApiObject ) { delete newsApiObject.radioButtons; } if ("formType" in newsApiObject) { delete newsApiObject.formType; } var checkboxValue = document.querySelectorAll("form rhcl-checkbox"); if (checkboxValue.length > 0) { checkboxValue.forEach(function (element) { if (element.selected == true) { if (element.name != null) { leadApiRequestObject[element.name] = element.value || "true"; newsApiObject[element.name] = element.value || "true"; candidateWorkHistory[element.name] = element.value || "true"; if (unifiedProfileObject != null) { if (element.name in unifiedProfileObject) { unifiedProfileObject[element.name] = element.value || "true"; } } } } else { if (leadApiRequestObject.hasOwnProperty(element.name)) { delete leadApiRequestObject[element.name]; } leadApiRequestObject[element.name] = "false"; newsApiObject[element.name] = element.value || "false"; candidateWorkHistory[element.name] = element.value || "false"; } }); } if (unifiedProfileObject != null) { window.setUPO(unifiedProfileObject); } if (document.querySelectorAll(".form-btn").length > 0) { return JSON.stringify(newsApiObject); } if ( document.querySelectorAll("input[name='formName']").length > 0 && document.querySelectorAll("input[name='formName']").value === "form_na_candidate_work_history" ) { return JSON.stringify(candidateWorkHistory); } return JSON.stringify(leadApiRequestObject); } function changeDateFormat(inputDate) { if (inputDate) { var splitDate = inputDate.split("-"); if (splitDate.count == 0) { return null; } var year = splitDate[0]; var month = splitDate[1]; var day = splitDate[2]; return month + "-" + day + "-" + year; } else { return ""; } } function retrieveJobAlertsInputFields(inputElement, inputValues) { if (inputElement.name == null) { return inputValues; } if (inputElement.name.toLocaleLowerCase() === "searchterms") { inputValues.searchTerms = inputElement.value; } if (inputElement.name.toLocaleLowerCase() === "email") { inputValues.emailAddress = inputElement.value; } if (inputElement.name.toLocaleLowerCase() === "location") { inputValues.location = inputElement.value; } return inputValues; } function updateJobAlertDetails(inputValues) { let pagePath = new URL(window.location); pagePath = pagePath.pathname.replace("/content/roberthalf", ""); if (pagePath) { inputValues.country = pagePath.split("/")[1]; inputValues.language = pagePath.split("/")[2]; } jobAlertRequestObject.candidateEmailAddress = inputValues.emailAddress; jobAlertRequestObject.keywords = inputValues.searchTerms; jobAlertRequestObject.keywordsNoSpaces = inputValues.searchTerms.replace( /\s+/g, "" ); jobAlertRequestObject.location = inputValues.location; jobAlertRequestObject.locationNoSpaces = inputValues.location.replace( /\s+/g, "" ); jobAlertRequestObject.locale = inputValues.language.toLowerCase() + "_" + inputValues.country.toUpperCase(); jobAlertRequestObject.countryCode = inputValues.country.toLowerCase(); jobAlertRequestObject.insrtDttmHist = new Date().toISOString(); jobAlertRequestObject.subscriptionSourceUrl = window.location.href; jobAlertRequestObject.searchResultsUrl = window.location.origin + "/" + inputValues.country.toLowerCase() + "/" + inputValues.language.toLowerCase() + "/jobs/" + inputValues.location.replace(/ /g, "-") + "/" + encodeURIComponent(inputValues.searchTerms); const randomString = Math.random().toString(36).slice(2, 12); const timestamp = Date.now().toString().slice(-10); jobAlertRequestObject.jobAlertsSubscriptionId = `${randomString}_${timestamp}`; } } window.verifyCallback = function verifyCallback(response) { recaptchaFlag = 1; leadApiRequestObject["interactiveRecaptchaToken"] = response; candidateWorkHistory["interactiveRecaptchaToken"] = response; newsApiObject["interactiveRecaptchaToken"] = response; if (leadApiRequestObject.hasOwnProperty("invisibleRecaptchaToken")) { delete leadApiRequestObject.invisibleRecaptchaToken; } if (candidateWorkHistory.hasOwnProperty("invisibleRecaptchaToken")) { delete candidateWorkHistory.invisibleRecaptchaToken; } if (newsApiObject.hasOwnProperty("invisibleRecaptchaToken")) { delete newsApiObject.invisibleRecaptchaToken; } }; function showInteractiveReCaptcha() { recaptchaFlag = 1; var key = document.querySelectorAll(".form-btn").length > 0 ? document .querySelector(".form-btn rhcl-button") .getAttribute("interactive-key") : document .querySelector(".form-submit-btn rhcl-button") .getAttribute("interactive-key"); // Create the interactive reCAPTCHA HTML var recaptchaContainer = document.createElement("span"); recaptchaContainer.id = "grecaptcha-interactive"; recaptchaContainer.className = "g-recaptcha"; recaptchaContainer.setAttribute("data-sitekey", key); recaptchaContainer.setAttribute("data-callback", "verifyCallback"); recaptchaContainer.setAttribute("theme", "light"); var formGeneral = document.querySelector(".form-submit-btn"); var formNews = document.querySelector(".form-btn"); if (formGeneral != null) { document .querySelector(".form-submit-btn") .insertBefore( recaptchaContainer, document.querySelector(".form-submit-btn").firstChild ); } if (formNews != null) { document .querySelector(".form-btn") .insertBefore( recaptchaContainer, document.querySelector(".form-btn").firstChild ); } // Render the interactive reCAPTCHA grecaptcha.render(recaptchaContainer, { sitekey: key, }); //ajax call in which we will get the score //passes } function validateRecaptcha(input, thisInstance, form) { var key = document.querySelectorAll(".form-btn").length > 0 ? document .querySelector(".form-btn rhcl-button") .getAttribute("invisible-key") : document .querySelector(".form-submit-btn rhcl-button") .getAttribute("invisible-key"); grecaptcha.enterprise.ready(function () { grecaptcha.enterprise .execute(key, { action: "click", }) .then(function (token) { leadApiRequestObject["invisibleRecaptchaToken"] = token; candidateWorkHistory["invisibleRecaptchaToken"] = token; newsApiObject["invisibleRecaptchaToken"] = token; ajaxCall(input, thisInstance, form); }); }); } async function validateForm(input, thisInstance, form) { let isValid = true; const fieldsToValidate = input; const promises = []; var flag = 1; fieldsToValidate.forEach((elem) => { if ( typeof elem.validate === "function" && !elem.getAttribute("form-submission-hidden") ) { promises.push(elem.validate()); } }); // wait for all promises to be finished await Promise.allSettled(promises).then(async (results) => { results.forEach((result) => { if (result.status === "fulfilled") { if (!result.value) { isValid = false; } } }); const parameters = getURLParameters(); var params = Object.keys(parameters); flag = getByPassStatus(params); var postalCode = getPostalCodeInForm(); if (isValid && postalCode && isCountryUS()) { const isPostalCodeInvalid = getPostalCodeErrorValidity(); if (isPostalCodeInvalid) { isValid = false; } } // getEmailField and email valid functions are written in emailValidation.html file. var emailField = getEmailField(); if ( isValid && emailField && window.shouldCheckEmailValidation && typeof window.shouldCheckEmailValidation === "function" && shouldCheckEmailValidation(emailField.value) ) { var isEmailCustomValid = checkEmailValidityForCustomDomains( emailField.value ); if (!isEmailCustomValid) { isValid = false; } setEmailCustomErrorMessage(); if (isValid) { // check email for candidate restricted emails if (window.ssjoCandidateEmailCheck) { document.querySelector("#backdrop").style.display = "block"; await window.ssjoCandidateEmailCheck(); document.querySelector("#backdrop").style.display = "none"; } if (emailField.customInvalid) { isValid = false; } } } if (isValid) { form.nextElementSibling.style.display = "block"; if (test && flag) { if (recaptchaFlag === 0) { validateRecaptcha(input, thisInstance, form); } else ajaxCall(input, thisInstance, form); } if (!test && !flag) { ajaxCall(input, thisInstance, form); } if (test && !flag) { ajaxCall(input, thisInstance, form); } if (!test && flag) { ajaxCall(input, thisInstance, form); } } }); } function recaptchaStatus() { var flag = 1; const parameters = getURLParameters(); var params = Object.keys(parameters); flag = getByPassStatus(params); if (test) { leadApiRequestObject["recaptchaEnabled"] = "true"; newsApiObject["recaptchaEnabled"] = "true"; candidateWorkHistory["recaptchaEnabled"] = "true"; } else { leadApiRequestObject["recaptchaEnabled"] = "false"; newsApiObject["recaptchaEnabled"] = "false"; candidateWorkHistory["recaptchaEnabled"] = "false"; } if (!flag) { leadApiRequestObject["recaptchaEnabled"] = "false"; leadApiRequestObject[bypassPerimeter] = parameters[bypassPerimeter]; newsApiObject["recaptchaEnabled"] = "false"; newsApiObject[bypassPerimeter] = parameters[bypassPerimeter]; candidateWorkHistory["recaptchaEnabled"] = "false"; candidateWorkHistory[bypassPerimeter] = parameters[bypassPerimeter]; } } function getLeadId() { if (document.querySelector("#leadId") != null) { var leadId = crypto.randomUUID(); var leadIdArray = [...document.querySelectorAll("#leadId")]; leadIdArray.forEach(function (ele) { ele.value = "rhwebsite_" + leadId; }); } } /*************************** Salary Guide Gating Logic*********************************************/ window.ready(function () { if (document.querySelector(".salary-guide") != null) { var currentUrl = new URL(window.location); if (currentUrl.pathname.includes(".html")) { var urlString = currentUrl.pathname.split("."); currentUrl = urlString[0]; } else { currentUrl = currentUrl.pathname; } if ( currentUrl.endsWith("salary-guide") || currentUrl.endsWith("guide-salarial") || currentUrl.endsWith("gehaltsuebersicht") || currentUrl.endsWith("salarisgids") || currentUrl.endsWith("guide-des-salaires") || currentUrl.endsWith("guia-salarial") ) { if (localStorage.getItem("unifiedProfileObject") != null) { var upo = window.getUPO(); var cookie = getCookie("wcmmode"); const gatingPropertyEl = document.querySelector(".gating-properties"); if (gatingPropertyEl != null && cookie != "edit") { var gatingproperty = gatingPropertyEl.getAttribute("gatingproperty") !== undefined ? gatingPropertyEl.getAttribute("gatingproperty") : "sgGatingFormSubmitted"; if (upo.hasOwnProperty(gatingproperty)) { var redirecturl = gatingPropertyEl.getAttribute("gatedredirect") != undefined ? gatingPropertyEl.getAttribute("gatedredirect") : ""; if (redirecturl != "") { window.location.replace(redirecturl); } } } } } } }); function checkQueryString(field) { var url = window.location.href; if (url.indexOf("?" + field + "=") != -1) { return true; } else if (url.indexOf("&" + field + "=") != -1) { return true; } return false; } function getURLParameter(sParam) { var sPageURL = new URL(window.location); sPageURL = sPageURL.search.substring(1); var sURLVariables = sPageURL.split("&"); for (var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split("="); if (sParameterName[0] == sParam) { return sParameterName[1]; } } } //current date and time in format YYYY-MM-DD HH:MM:SS function currentDateTime() { var d = new Date(); d = d.getFullYear() + "-" + (d.getMonth() + 1 < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1) + "-" + (d.getDate() < 10 ? "0" + d.getDate() : d.getDate()) + " " + (d.getHours() < 10 ? "0" + d.getHours() : d.getHours()) + ":" + (d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes()) + ":" + (d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds()); return d; } function getSubmissionDate() { if (document.querySelector("#submissionDateTime") != null) { document.querySelector("#submissionDateTime").value = currentDateTime(); } if (document.querySelector("#submissionDate") != null) { document.querySelector("#submissionDate").value = currentDateTime(); } } window.ready(function () { /***************************on focus analytics*********************************************/ var refreshCount = 0; document.querySelector(".form-container [rhcl-input][required]") && document .querySelector(".form-container [rhcl-input][required]") .addEventListener("focus", () => { refreshCount += 1; var formTypeVal = document.querySelector( ".rhformhiddenfield input[name=formType]" ); var analyticObj = { tealium_event: "focus_click", datalayer_version: 2, event_action: "focus", event_text: document .querySelector(".form-container [rhcl-input][required]") .getAttribute("name"), form_type: formTypeVal.value ? formTypeVal.value : "", }; if (window.getUPO().isLoggedIn) { analyticObj["user_id_sfc"] = window.getUPO().contactSfID ? window.getUPO().contactSfID : ""; } if (refreshCount < 2) { rh_datalayer_add(analyticObj, "event"); } }); }); }()) </script> <!-- Conditional form routing data --> <form action="https://prd-dr.ma.api.roberthalfonline.com/form-submission/submit" class="form-container"> <span type="hidden" id="bypassToken" name="bypassToken" value="bypassToken"></span> <rhcl-alert hidden data-status="500" copy="Our system temporarily timed out. Please try again in a few minutes or contact us if the issue persists." headline="Error!"></rhcl-alert> <rhcl-alert hidden data-status="502" copy="Our system temporarily timed out. Please try again in a few minutes or contact us if the issue persists." headline="Error!"></rhcl-alert> <rhcl-alert hidden data-status="503" copy="Our system temporarily timed out. Please try again in a few minutes or contact us if the issue persists." headline="Error!"></rhcl-alert> <rhcl-alert hidden data-status="504" copy="Our system temporarily timed out. Please try again in a few minutes or contact us if the issue persists." headline="Error!"></rhcl-alert> <rhcl-alert hidden data-status="error" copy="Sorry, we don’t staff the role of {positionTitle} at this time." headline="Error!"></rhcl-alert> <rhcl-alert hidden data-status="postalCodeError" copy="Robert Half cannot support staffing needs in {postalCode} at this time." headline="Error!"></rhcl-alert> <div class="root container-fluid cmp-container"> <div class="form-field-set row"> <div class="field-set-header"> <rhcl-heading modifier="" tag="h2" theme="" variant="display5"></rhcl-heading> </div> <div class="field-element-row col-md-12"> <div class="row"> <div class="col-md-12 field-element-col"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="rhformtext text aem-GridColumn aem-GridColumn--default--12"> <rhcl-text-field id="rhcl-text-field--344982330" label="Prénom" type="text" required min-length="2" min-length-message="Le champ &#34;Prénom&#34; doit faire minimum 2 caractères." pattern="[a-zA-Z]+(?:(?:\. |[\-&#39; ])[a-zA-Z]+)*" format-message="Le champs &#34;Prénom&#34; doit être dans un format valide." size="small" theme="concrete" name="firstName"> </rhcl-text-field> <script> var element = document.getElementById("rhcl-text-field--344982330"); element.addEventListener("rhcl-text-field-changed", function(){this.value=this.value.trim();}); </script> <script> window.ready(() => { window.addEventListener("rhcl-text-field-blur", e => { const textField = e.target textField.customInvalid = null; textField.customErrorMessage = null; }) }) </script></div> <div class="rhformtext text aem-GridColumn aem-GridColumn--default--12"> <rhcl-text-field id="rhcl-text-field-54881571" label="Nom de famille" type="text" required min-length="2" min-length-message="Le champ &#34;Nom de famille&#34; doit faire minimum 2 caractères." pattern="[a-zA-Z]+(?:(?:\. |[\-&#39; ])[a-zA-Z]+)*" format-message="Le champs &#34;Nom de famille&#34; doit être dans un format valide." size="small" theme="concrete" name="lastName"> </rhcl-text-field> <script> var element = document.getElementById("rhcl-text-field-54881571"); element.addEventListener("rhcl-text-field-changed", function(){this.value=this.value.trim();}); </script> <script> window.ready(() => { window.addEventListener("rhcl-text-field-blur", e => { const textField = e.target textField.customInvalid = null; textField.customErrorMessage = null; }) }) </script></div> <div class="rhformtext text aem-GridColumn aem-GridColumn--default--12"> <rhcl-text-field id="rhcl-text-field-685775165" label="Courriel" type="email" required pattern="(?!.*\.\.)[\-\w.]+@[\w\-.]+\.[A-Za-z]{2,6}(?:,[\-\w.]+@[\w\-.]+\.[A-Za-z]{2,4}){0,4}" error-message="Le champ &#34;Courriel&#34; est obligatoire." format-message="Le champ &#34;Courriel&#34; doit avoir un format valide." size="small" theme="concrete" name="emailAddress"> </rhcl-text-field> <script> var element = document.getElementById("rhcl-text-field-685775165"); element.addEventListener("rhcl-text-field-changed", function(){this.value=this.value.trim();}); </script> <script> window.ready(() => { window.addEventListener("rhcl-text-field-blur", e => { const textField = e.target textField.customInvalid = null; textField.customErrorMessage = null; }) }) </script></div> <div class="root container-fluid cmp-container aem-GridColumn aem-GridColumn--default--12"> <rhcl-radio-group headline="Quel est le sujet qui vous intéresse?" name="radioButtons" required error-message="Ce champ est obligatoire." size="small" theme="concrete" value="" variant="circle"> <rhcl-radio slot="radio" label="Conseils de carrière et de recherche d&#39;emploi" value="career"></rhcl-radio> <rhcl-radio slot="radio" label="Tendances de gestion et d&#39;embauche" value="management"></rhcl-radio> </rhcl-radio-group> </div> <div class="rhformhiddenfield hidden aem-GridColumn aem-GridColumn--default--12"> <input type="hidden" id="form-hidden-1923074090" name="countryCode" value="CA"/> </div> <div class="rhformhiddenfield hidden aem-GridColumn aem-GridColumn--default--12"> <input type="hidden" id="form-hidden-1302753123" name="formType" value="newsletter-subscription"/> </div> <div class="rhformhiddenfield hidden aem-GridColumn aem-GridColumn--default--12"> <input type="hidden" id="form-hidden-142336792" name="language" value="FR"/> </div> <div class="rhformhiddenfield hidden aem-GridColumn aem-GridColumn--default--12"> <input type="hidden" id="form-hidden-45788038" name="formName" value="form_na_ca_fr_newsletter"/> </div> </div> </div> <div class="col-md-12 field-element-col"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> </div> </div> <div class="col-md-12 field-element-col"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> </div> </div> </div> </div> </div> </div> <div class="form-footer row"> <div class="form-submit-btn"> <rhcl-button data-recaptcha-message="Failed reCaptcha Validation" id="recaptcha" external="true" full-width="false" full-width-mobile="true" label="Soumettre" size="medium" size-md="" size-sm="medium" theme="light" variant="primary" invisible-key="6LejimkkAAAAAFXPuyq9-cY_Tn0LOdrBWZfprr5D" interactive-key="6LcOU2gkAAAAAADWX4mm0-uWGn4RX-kaZT7UxUQJ"></rhcl-button> </div> <div class="form-foot-note col-md-12 px-0"> <span class="rhcl-typography rhcl-typography--variant-legal"> <rhcl-typography slot="copy" variant="legal">Robert Half Canada Inc.</rhcl-typography> <rhcl-typography slot="copy" variant="legal">181 Rue Bay, bureau 820 Toronto, ON M5J 2T3</rhcl-typography> <rhcl-typography slot="copy" variant="legal"><a href="http://www.roberthalf.com/ca/fr" title="Follow link">https://www.roberthalf.com/ca/fr</a></rhcl-typography> <rhcl-typography slot="copy" variant="legal">Ce site est protégé par reCAPTCHA. Les règles de confidentialité et les conditions d’utilisation de Google s’appliquent.</rhcl-typography> <rhcl-typography slot="copy" variant="legal">&nbsp;</rhcl-typography> </span> </div> </div> <div id="showPopupStatus" data-copy="&lt;p>Merci de vous être abonné.&lt;/p> "></div> </form> <div id="backdrop" class="d-none"> <div class="loader-div"> <rhcl-loading-spinner label="Veuillez patienter"></rhcl-loading-spinner> </div> </div> <script src="https://www.google.com/recaptcha/enterprise.js?render=explicit" async defer> </script> <script> { if (!window.common?.getElementByJumpLinkId) { window.common = { ...window.common, /** * this function is to handle getting the element from the jump link id * */ getElementByJumpLinkId: (id) => { let el = document.getElementById(id) if (!el) return const allowedNodeNames = [ 'RHCL-TEXT-FIELD', 'RHCL-TEXTAREA', 'RHCL-DATEPICKER', 'RHCL-TYPEAHEAD', 'RHCL-CHECKBOX', 'RHCL-CHECKBOX-GROUP', 'RHCL-RADIO-GROUP', 'RHCL-DROPDOWN', 'RHCL-SWITCH' ] while (!!el.nextElementSibling && !allowedNodeNames.includes(el.nodeName)) { el = el.nextElementSibling; } if (!allowedNodeNames.includes(el.nodeName)) { // there was no sibling to the element with that id that is a valid input console.error('Could not find a valid input element with this id:', id) // return undefined instead of last found node return } return el } } } const initialEndpoint = 'https:\/\/prd\u002Ddr.ma.api.roberthalfonline.com\/form\u002Dsubmission\/submit' const basicFormEndpoint = 'https:\/\/prd\u002Ddr.ma.api.roberthalfonline.com\/form\u002Dsubmission\/submit' const ssjoEndpoint = 'https:\/\/prd\u002Ddr.lp.api.roberthalfonline.com\/proxy\u002Dlead\u002Dprocessing\/send' const jobAlertsEndpoint = 'https:\/\/prd\u002Ddr.ma.api.roberthalfonline.com\/job\u002Dalerts\/subscribe' const formContainer = document.querySelector('form.form-container'); // get the form routing destinations const destinations = document.querySelectorAll('input[data-form-routing="true"]') let newEndpoint = null; const destinationControls = [] // get array of all destinations controls and required values Array.from(destinations).forEach(destination => { const relatedId = destination.dataset.formRoutingId; const requiredValue = destination.dataset.formRoutingValue; const ssjoEndpointType = destination.dataset.formRoutingSsjoEndpoint; if (!relatedId) return; // skip elements where the dataset has no details // check required value on related id const controlElement = window.common.getElementByJumpLinkId(relatedId); destinationControls.push({controlElement, requiredValue, ssjoEndpointType}) }) // listen on any change of the control elements const mutationobserver = new MutationObserver(mutations => { mutations.forEach(mutation => { updateFormEndpoint() }) }) destinationControls.forEach(({ controlElement }) => { mutationobserver.observe( controlElement, { attributes: true, attributeFilter: ['value', 'selected']} ) }) // update the form action to use the correct endpoint const updateFormEndpoint = () => { newEndpoint = initialEndpoint; destinationControls.some(({ controlElement, requiredValue, ssjoEndpointType }) => { if (controlElement.value === requiredValue) { if (ssjoEndpointType === 'leads') { newEndpoint = ssjoEndpoint; formContainer.dataset.attributeJobalert = 'false'; } else if (ssjoEndpointType === 'nonLeads') { newEndpoint = basicFormEndpoint; formContainer.dataset.attributeJobalert = 'false'; } else if (ssjoEndpointType === 'jobAlerts') { newEndpoint = jobAlertsEndpoint; formContainer.dataset.attributeJobalert = 'true'; } return true; } return false; }); formContainer.action = newEndpoint; formContainer.dataset.attributeSsjo = newEndpoint === ssjoEndpoint; formContainer.dataset.attributeJobalert = newEndpoint === jobAlertsEndpoint; }; // initial form endpoint setup updateFormEndpoint(); } </script> </div> </div> </div> </div> </rhcl-modal> </div> </div> </div> </div> <div class="row"> <div class="col-6 col-md-4 offset-md-3 rh-mta__results-container" data-base-results-text=":count résultats"> <rhcl-typography variant="body1" modifier="bold">226 résultats</rhcl-typography> </div> <div class="col-6 col-md-5 rh-mta__insights-container"> <rhcl-button data-bs-toggle="modal" data-bs-target="#insightModal" id="insights" icon="arrow-right" icon-position="right" label="Recevez des informations dans votre boîte de réception" size="small" variant="text"> </rhcl-button> </div> <div class="row"> <div class="col-6 col-md-3 offset-md-9 rh-mta__sort-container" style="display: none"> <rhcl-dropdown class="rh-mta__sort-dropdown" name="sortBy" required label="Trier par" size="small" theme="white"> <rhcl-dropdown-item slot="item" value="relevance" selected>Pertinence</rhcl-dropdown-item> <rhcl-dropdown-item slot="item" value="recent">Le plus récent</rhcl-dropdown-item> </rhcl-dropdown> </div> </div> </div> <div class="row"> <div class="col-md-3"> <rhcl-filter-v2 variant="vertical" headline="Filtrer le contenu par"> <rhcl-filter-item-v2 headline="Domaines d’intérêt" slot="item" name="Domaines d’intérêt"> <rhcl-checkbox-group slot="field" name="Domaines d’intérêt" required label="Domaines d’intérêt" theme="concrete"> <rhcl-checkbox slot="checkbox" label="Aide à l&#39;embauche" value="robert-half:areas-of-interest/hiring-help"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Conseils de gestion" value="robert-half:areas-of-interest/management-tips"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Décrocher un emploi" value="robert-half:areas-of-interest/landing-a-job"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Développement de carrière" value="robert-half:areas-of-interest/career-development"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Recherche et aperçus" value="robert-half:areas-of-interest/research-and-insights"></rhcl-checkbox> </rhcl-filter-item-v2> <rhcl-filter-item-v2 headline="Type de contenu" slot="item" name="Type de contenu" collapsed> <rhcl-checkbox-group slot="field" name="Type de contenu" required label="Type de contenu" theme="concrete"> <rhcl-checkbox slot="checkbox" label="Article" value="robert-half:content-type/article"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Rapport" value="robert-half:content-type/report"></rhcl-checkbox> </rhcl-filter-item-v2> <rhcl-filter-item-v2 headline="Spécialisations" slot="item" name="Spécialisations" collapsed> <rhcl-checkbox-group slot="field" name="Spécialisations" required label="Spécialisations" theme="concrete"> <rhcl-checkbox slot="checkbox" label="Administratif" value="robert-half:specialization/administrative-and-customer-support"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Comptabilité et finance" value="robert-half:specialization/finance-and-accounting"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Création et marketing" value="robert-half:specialization/marketing-and-creative"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Juridique" value="robert-half:specialization/legal"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Project solutions" value="robert-half:specialization/project-solutions"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Ressources humaines" value="robert-half:specialization/human-resources"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Services financiers" value="robert-half:specialization/financial-services"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Technologie" value="robert-half:specialization/technology"></rhcl-checkbox> </rhcl-filter-item-v2> <rhcl-filter-item-v2 headline="Sujets d’actualité" slot="item" name="Sujets d’actualité" collapsed> <rhcl-checkbox-group slot="field" name="Sujets d’actualité" required label="Sujets d’actualité" theme="concrete"> <rhcl-checkbox slot="checkbox" label="Au sein de Robert Half" value="robert-half:trending-topics/inside-robert-half"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Avantage concurrentiel" value="robert-half:trending-topics/competitive-advantage"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Diversité, équité et inclusion" value="robert-half:trending-topics/diversity-equity-and-inclusion"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label=" Salaires et tendances d’embauche" value="robert-half:trending-topics/salary-and-hiring-trends"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Transformation du personnel" value="robert-half:trending-topics/workforce-transformation"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Travail d’adaptation (télétravail, hybride)" value="robert-half:trending-topics/adaptive-working"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Équilibre vie professionnelle-personnelle" value="robert-half:trending-topics/work-life-integration"></rhcl-checkbox> </rhcl-filter-item-v2> <rhcl-filter-item-v2 headline="Étiquettes" slot="item" name="Étiquettes" collapsed> <rhcl-checkbox-group slot="field" name="Étiquettes" required label="Étiquettes" theme="concrete"> <rhcl-checkbox slot="checkbox" label="Bien-être au travail" value="robert-half:rh-tags/healthcare-and-wellness"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Cadres supérieurs" value="robert-half:rh-tags/c-suite"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Comment mener un entretien" value="robert-half:rh-tags/how-to-interview-candidates"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Compétences professionnelles" value="robert-half:rh-tags/workplace-skills"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Conseils carrière" value="robert-half:rh-tags/career-tips"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Conseils d&#39;entretiens d&#39;embauche" value="robert-half:rh-tags/job-interview-tips"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Culture d&#39;entreprise" value="robert-half:rh-tags/corporate-culture"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="CV" value="robert-half:rh-tags/resumania"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Diplômes et certifications" value="robert-half:rh-tags/certifications-and-accreditations"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Environnement, social et gouvernance" value="robert-half:rh-tags/environmental-social-and-governance"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Evaluer les candidats" value="robert-half:rh-tags/evaluating-job-candidates"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Fidélisation du personnel" value="robert-half:rh-tags/retention"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="L&#39;avenir du travail" value="robert-half:rh-tags/the-future-of-work"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Leadership et gestion" value="robert-half:rh-tags/management-and-leadership"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Leadership éclairé" value="robert-half:rh-tags/thought-leadership"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Lettres de motivation" value="robert-half:rh-tags/cover-letters"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Marché de l&#39;emploi" value="robert-half:rh-tags/job-market"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Mentorat" value="robert-half:rh-tags/mentoring"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Négociation d&#39;offres" value="robert-half:rh-tags/negotiating-offers"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Petite entreprise" value="robert-half:rh-tags/small-business"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Recrutement interne" value="robert-half:rh-tags/internal-hiring"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Rédiger des descriptions de poste" value="robert-half:rh-tags/writing-job-descriptions"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Rédiger son CV" value="robert-half:rh-tags/writing-a-resume"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Rémunérations et avantages" value="robert-half:rh-tags/compensation-and-benefits"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Réseautage" value="robert-half:rh-tags/networking"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Salaires et postes" value="robert-half:rh-tags/salaries-and-roles"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="service à la clientèle" value="robert-half:rh-tags/customer-service"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Services-conseils" value="robert-half:rh-tags/consulting"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Travail contractuel ou temporaire" value="robert-half:rh-tags/contract-and-temporary-work"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Travailler avec une agence de placement" value="robert-half:rh-tags/working-with-a-staffing-agency"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Télétravail" value="robert-half:rh-tags/remote-working"></rhcl-checkbox> <rhcl-checkbox slot="checkbox" label="Études en milieu de travail" value="robert-half:rh-tags/workplace-research"></rhcl-checkbox> </rhcl-filter-item-v2> </rhcl-filter-v2> </div> <div class="col-md-9" id="mondrianwithfilter"> <rhcl-block-mondrian-tiled-articles variant="embedded" presorted data-endpoint-base="/content/roberthalf/ca/fr/insights/jcr:content/root/container/mondriantiles.model.json?pageNo=:pageNum" endpoint="/content/roberthalf/ca/fr/insights/jcr:content/root/container/mondriantiles.model.json?pageNo=:pageNum"> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/soutenir-les-communautes-grace-aux-dons-des-fetes-chez-robert-half" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/soutenir-les-communautes-grace-aux-dons-des-fetes-chez-robert-half" slot="headline">Soutenir les communautés grâce aux dons des fêtes chez Robert Half</a> <rhcl-typography variant="body2" slot="description">Robert Half Canada s&#39;est associé à des organismes à but non lucratif dans le cadre de son programme annuel de dons des fêtes. Apprenez-en plus sur l&#39;impact que nous avons dans nos communautés.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-holiday-giving?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-holiday-giving?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-holiday-giving?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-holiday-giving?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/levaluation-salariale-la-cle-de-la-reussite-de-votre-entreprise" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/levaluation-salariale-la-cle-de-la-reussite-de-votre-entreprise" slot="headline">Comment déterminer le salaire d&#39;un employé au Canada – Guide pour les employeurs</a> <rhcl-typography variant="body2" slot="description">Découvrez comment déterminer le salaire d&#39;un employé au Canada grâce à notre guide pour employeurs. Explorez les stratégies essentielles d’étude comparative des salaires avec le guide de Robert Half pour offrir une rémunération compétitive et attirer les meilleurs talents.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-how-to-set-salaries?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-how-to-set-salaries?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-how-to-set-salaries?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-how-to-set-salaries?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/developpement-de-carriere/quand-et-comment-negocier-son-salaire" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/developpement-de-carriere/quand-et-comment-negocier-son-salaire" slot="headline">Quand et comment négocier son salaire pour un nouveau poste au Canada</a> <rhcl-typography variant="body2" slot="description">Vous vous demandez comment négocier son salaire pour un nouveau poste? Découvrez des stratégies essentielles pour aborder avec assurance la rémunération, les avantages et le bon moment dans une offre d&#39;emploi, ainsi que des conseils sur les attentes salariales au Canada.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-negotiating-salary-for-new-job?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-negotiating-salary-for-new-job?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-negotiating-salary-for-new-job?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-negotiating-salary-for-new-job?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/preparez-votre-equipe-et-votre-carriere-pour-la-nouvelle-annee" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/preparez-votre-equipe-et-votre-carriere-pour-la-nouvelle-annee" slot="headline">Conseils 2024 pour l’évaluation de performance de fin d’année pour les employés et les gestionnaires au Canada</a> <rhcl-typography variant="body2" slot="description">Robert Half Canada offre des conseils pour l’évaluation de performance de fin d’année à l’intention des employés et des gestionnaires, pour les aider à optimiser cette période clé — que ce soit pour discuter des performances, des objectifs de poste et de salaire, ou pour planifier l’année à venir avec confiance et ambition.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-end-of-year-performance?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-end-of-year-performance?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-end-of-year-performance?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-end-of-year-performance?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/tendances-du-milieu-du-travail-en-2024-et-previsions-pour-2025" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/tendances-du-milieu-du-travail-en-2024-et-previsions-pour-2025" slot="headline">Tendances du milieu de travail en 2024 et prévisions pour 2025 pour les professionnels canadiens</a> <rhcl-typography variant="body2" slot="description">Découvrez les principales tendances du milieu de travail qui façonnent les entreprises canadiennes en 2024 et les évolutions clés attendues en 2025. Des informations essentielles pour rester à la pointe dans un marché du travail dynamique.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-trends%20from%202024%20to%202025?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-trends%20from%202024%20to%202025?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-trends%20from%202024%20to%202025?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-trends%20from%202024%20to%202025?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/tendances-salariales-en-services-juridiques-en-2025" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/tendances-salariales-en-services-juridiques-en-2025" slot="headline">Tendances salariales dans le secteur juridique : à quoi s&#39;attendre en 2025</a> <rhcl-typography variant="body2" slot="description">Gardez une longueur d&#39;avance sur le marché de l&#39;emploi juridique au Canada grâce aux perspectives du Guide salarial 2025 de Robert Half. Découvrez les tendances salariales, les défis de la planification de la relève et l’évolution du travail hybride pour attirer et retenir les meilleurs talents dans un environnement concurrentiel.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20Legal?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20Legal?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20Legal?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20Legal?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/tendances-salariales-en-technologies-et-ti-en-2025" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/tendances-salariales-en-technologies-et-ti-en-2025" slot="headline">Tendances salariales en technologie et TI au Canada : à quoi s&#39;attendre en 2025</a> <rhcl-typography variant="body2" slot="description">Préparez-vous pour 2025 grâce aux perspectives du Guide salarial canadien de Robert Half. Découvrez les tendances salariales en technologie, les compétences recherchées et les stratégies d’embauche pour faire face aux pénuries de talents et recruter les meilleurs profils en IA, apprentissage automatique et cybersécurité.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20Tech?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20Tech?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20Tech?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20Tech?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/tendances-salariales-en-marketing-et-creation-en-2025" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/tendances-salariales-en-marketing-et-creation-en-2025" slot="headline">Tendances salariales en marketing et création : à quoi s&#39;attendre en 2025</a> <rhcl-typography variant="body2" slot="description">Explorez le paysage de l’embauche en marketing et création en 2025 grâce aux perspectives du Guide salarial canadien de Robert Half. Découvrez les principales tendances salariales, les compétences en demande, et l&#39;impact de l&#39;IA et des talents contractuels.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20MC?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20MC?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20MC?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20MC?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/tendances-salariales-en-soutien-admin-et-client-en-2025" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/tendances-salariales-en-soutien-admin-et-client-en-2025" slot="headline">Tendances salariales 2025 pour le secteur du soutien administratif et à la clientèle</a> <rhcl-typography variant="body2" slot="description">Découvrez les dernières tendances dans le secteur du soutien administratif et du service à la clientèle au Canada grâce aux données de l’édition 2025 du Guide salarial de Robert Half. Découvrez les compétences en demande, les tendances du travail hybride et les stratégies de transparence salariale pour attirer les meilleurs talents.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20ACS?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20ACS?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20ACS?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20ACS?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> <rhcl-mondrian-card slot="card" variant="standard" destination="/ca/fr/perspectives/etudes/tendances-salariales-en-finance-et-comptabilite-en-2025" eyebrow="Article" total-posts="0 publications"> <a href="/ca/fr/perspectives/etudes/tendances-salariales-en-finance-et-comptabilite-en-2025" slot="headline">Salaires et tendances en finance et comptabilité : à quoi s&#39;attendre en 2025</a> <rhcl-typography variant="body2" slot="description">Explorez les dernières tendances de recrutement en finance et comptabilité grâce aux perspectives du Guide salarial canadien 2025 de Robert Half. Découvrez les compétences en demande, le travail hybride et l’impact de l’IA sur les rôles financiers pour attirer et retenir les meilleurs talents.</rhcl-typography> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 619px,(min-width: 0px) 392px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20FA?$Large-Tile-1x$&fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20FA?$Medium-Tile-1x$&fmt=webp-alpha 619w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20FA?$Small-Tile-1x$&fmt=webp-alpha 392w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-SG25%20PG%20blog%20-%20FA?$Large-Tile-1x$&fmt=webp-alpha" alt="" aria-hidden="true"/> </rhcl-mondrian-card> </rhcl-block-mondrian-tiled-articles> </div> </div> </div> <script> window.filterTimeoutMta = 0; window.filterClearTimeoutMta = 0; window.ready(() => { window.addEventListener("rhcl-filters-v2-applied", (e) => { window.clearTimeout(filterTimeoutMta); let filters = e.detail; let allTags = []; filters.forEach((filter) => { let fields = filter.value; let fieldName = Object.keys(fields).pop(); let tags = fields[fieldName]; if (tags) { tags = tags.replace(",", "_"); allTags.push(tags); } }); let qs = allTags.join("_"); let mta = document.querySelector( "rhcl-block-mondrian-tiled-articles[variant='embedded']" ); mta.endpoint = mta.getAttribute("data-endpoint-base") + "&tags=" + qs; filterTimeoutMta = window.setTimeout(() => { console.log(e); mta.getResults(); document.querySelector(".rh-mta__sort-container").style.display = "block"; }, 250); }); document .querySelector('rhcl-dropdown[name="sortBy"]') ?.addEventListener("rhcl-dropdown-changed", (e) => { let mta = document.querySelector( "rhcl-block-mondrian-tiled-articles[variant='embedded']" ); let endpoint = mta.getAttribute("data-endpoint-base"); if (mta.endpoint) { endpoint = mta.endpoint; } let sort = e.detail; if (endpoint.includes("sort=")) { endpoint = endpoint.replace(/&sort=[a-z]+/g, "&sort=" + sort); } else { endpoint = endpoint + "&sort=" + sort; } mta.endpoint = endpoint; window.setTimeout(() => { mta.getResults(); }, 250); }); document .querySelector("rhcl-button#insights") ?.addEventListener("rhcl-button-clicked", () => { document.querySelector("#email-model").setAttribute("show-modal", "true"); }); window.addEventListener("rhcl-mta-tiles-loaded", (e) => { let resultCount = e.detail; document.querySelector( ".rh-mta__results-container rhcl-typography" ).textContent = document .querySelector(".rh-mta__results-container") .getAttribute("data-base-results-text") .replace(":count", resultCount); if (resultCount === 0) { let mta = document.querySelector("rhcl-block-mondrian-tiled-articles"); window.setTimeout(() => { mta.loaded = true; }, 500); } }); window.addEventListener("rhcl-filters-v2-cleared", (e) => { window.clearTimeout(filterClearTimeoutMta); let mta = document.querySelector( "rhcl-block-mondrian-tiled-articles[variant='embedded']" ); mta.endpoint = mta.getAttribute("data-endpoint-base"); filterClearTimeoutMta = window.setTimeout(() => { mta.getResults(); document.querySelector(".rh-mta__sort-container").style.display = "none"; }, 250); }); }); </script></div> <div class="cmp-rhcl-scrolling-cards-collection-block-wrapper rhcl__background--primary rhcl__background-style--curved aem-GridColumn aem-GridColumn--default--12"> <style> div.featuredcard.container{margin-left:12px !important;margin-right:12px !important} div.featuredcard.container rhcl-content-card{padding-left:12px !important;padding-right:12px !important} </style> <div id="scrollingcardscollectionblock-e39b9b6aa2" class="cmp-container"> <rhcl-block-scrolling-cards-collection logo="false" background="primary" background-style="curved"> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Transformation du personnel" icon="users" cta-destination="/ca/fr/perspectives/tranformation-main-doeuvre" variant="featured-content" layout="topic-hub" theme="stone" cta-external="false" num-posts="13"></rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Équilibre vie professionnelle-personnelle" icon="users" cta-destination="/ca/fr/perspectives/equilibre-vie-professionnelle-personnelle" variant="featured-content" layout="topic-hub" theme="deep-ocean" cta-external="false" num-posts="7"></rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Salaires et tendances d’embauche" icon="users" cta-destination="/ca/fr/perspectives/tendances-salaire-embauche" variant="featured-content" layout="topic-hub" theme="blue-slate" cta-external="false" num-posts="35"></rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Au sein de Robert Half" icon="users" cta-destination="/ca/fr/perspectives/robert-half" variant="featured-content" layout="topic-hub" theme="deep-ocean" cta-external="false" num-posts="7"></rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Avantage concurrentiel" icon="users" cta-destination="/ca/fr/perspectives/avantage-concurrentiel" variant="featured-content" layout="topic-hub" theme="copper" cta-external="false" num-posts="34"></rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Diversité, équity et inclusion" icon="users" cta-destination="/ca/fr/perspectives/diversite-equite-inclusion" variant="featured-content" layout="topic-hub" theme="deep-ocean" cta-external="false" num-posts="7"></rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Travail d’adaptation" icon="users" cta-destination="/ca/fr/perspectives/travail-flexible" variant="featured-content" layout="topic-hub" theme="copper" cta-external="false" num-posts="6"></rhcl-content-card> </div> <h2 slot="headline">Plus à découvrir</h2> </rhcl-block-scrolling-cards-collection> </div> </script> </template> </div> <div class="cmp-rhcl-scrolling-cards-collection-block-wrapper aem-GridColumn aem-GridColumn--default--12"> <style> div.featuredcard.container{margin-left:12px !important;margin-right:12px !important} div.featuredcard.container rhcl-content-card{padding-left:12px !important;padding-right:12px !important} </style> <div id="scrollingcardscollectionblock-a2824989b3" class="cmp-container"> <rhcl-block-scrolling-cards-collection logo="false"> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Développement de carrière" copy="Salaires, compétences et marché du travail : obtenez des renseignements à jour sur les tendances et les perspectives d’emploi dans votre secteur d’activité." icon="users" cta-destination="/ca/fr/perspectives/developpement-de-carriere" variant="featured-content" layout="trending-insights" cta-external="false"> <!-- using dynamic media template --> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 476px,(min-width: 0px) 335px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00012-1133218592?$Rectangle2-Large-1x$&amp;fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00012-1133218592?$Rectangle2-Medium-1x$&amp;fmt=webp-alpha 476w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00012-1133218592?$Rectangle2-Small-1x$&amp;fmt=webp-alpha 335w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00012-1133218592?$Rectangle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true" width="400" height="240"/> </rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Conseils de gestion" copy="Augmentez la productivité de votre entreprise grâce aux derniers conseils et astuces en matière de gestion et de fidélisation des employés." icon="users" cta-destination="/ca/fr/perspectives/conseils-gestion" variant="featured-content" layout="trending-insights" cta-external="false"> <!-- using dynamic media template --> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 476px,(min-width: 0px) 335px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35005-1842862516?$Rectangle2-Large-1x$&amp;fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35005-1842862516?$Rectangle2-Medium-1x$&amp;fmt=webp-alpha 476w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35005-1842862516?$Rectangle2-Small-1x$&amp;fmt=webp-alpha 335w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35005-1842862516?$Rectangle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true" width="400" height="240"/> </rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Aide à l’embauche" copy="Attirez et fidélisez des employés qualifiés en offrant une culture d’entreprise, une rémunération et des avantages sociaux concurrentiels." icon="users" cta-destination="/ca/fr/perspectives/aide-recrutement" variant="featured-content" layout="trending-insights" cta-external="false"> <!-- using dynamic media template --> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 476px,(min-width: 0px) 335px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35006-1043390353?$Rectangle2-Large-1x$&amp;fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35006-1043390353?$Rectangle2-Medium-1x$&amp;fmt=webp-alpha 476w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35006-1043390353?$Rectangle2-Small-1x$&amp;fmt=webp-alpha 335w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35006-1043390353?$Rectangle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true" width="400" height="240"/> </rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Décrocher un emploi" copy="Apprenez à rédiger un CV professionnel, à préparer une entrevue et à faire bonne impression auprès de gestionnaires d’embauche." icon="users" cta-destination="/ca/fr/perspectives/trouver-un-emploi" variant="featured-content" layout="trending-insights" cta-external="false"> <!-- using dynamic media template --> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 476px,(min-width: 0px) 335px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00003?$Rectangle2-Large-1x$&amp;fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00003?$Rectangle2-Medium-1x$&amp;fmt=webp-alpha 476w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00003?$Rectangle2-Small-1x$&amp;fmt=webp-alpha 335w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-00003?$Rectangle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true" width="400" height="240"/> </rhcl-content-card> </div> <div class="featuredcard container responsivegrid" data-aem-wrapper="true" slot="card"> <rhcl-content-card slot="card" headline="Études et perspectives" copy="Obtenez des études et des ressources exclusives que vous pouvez utiliser pour embaucher le meilleur candidat, perfectionner vos compétences en gestion et faire progresser votre carrière." icon="users" cta-destination="/ca/fr/perspectives/etudes" variant="featured-content" layout="trending-insights" cta-external="false"> <!-- using dynamic media template --> <img slot="image" loading="lazy" fetchpriority="low" sizes="(min-width: 1024px) 570px,(min-width: 768px) 476px,(min-width: 0px) 335px" srcset="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35007-1870485526?$Rectangle2-Large-1x$&amp;fmt=webp-alpha 570w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35007-1870485526?$Rectangle2-Medium-1x$&amp;fmt=webp-alpha 476w,https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35007-1870485526?$Rectangle2-Small-1x$&amp;fmt=webp-alpha 335w" src="https://s7d9.scene7.com/is/image/roberthalfintl/rt2-35007-1870485526?$Rectangle2-Large-1x$&fmt=webp-alpha" alt aria-hidden="true" width="400" height="240"/> </rhcl-content-card> </div> <h2 slot="headline">Explorer les domaines d’intérêt</h2> </rhcl-block-scrolling-cards-collection> </div> </script> </template> </div> <div class="root container-fluid cmp-container rhcl__background--primary rhcl__background-style--flat-solid rhcl__theme--light aem-GridColumn aem-GridColumn--default--12"> <style> .model-content,.model-content form{display:flex;flex-direction:column;align-items:center} .model-content form{margin-top:52px;padding:0} .model-content rhcl-typography,.model-content rhcl-heading{text-align:center !important} .form-footer{padding:0 40px} @media screen and (max-width:767px){.form-footer{padding:0} } .form-footer .form-btn{margin-bottom:32px} .subscribe-modal-image{height:72px;width:72px;object-fit:cover;margin-bottom:32px} </style> <rhcl-block-centered-content variant="wide" quaternary-cta-external="false" tertiary-cta-external="false" theme="light" background="primary" background-style="flat-solid"> <h2 slot="headline">Recevez des informations dans votre boîte de réception</h2> <a slot="primary-cta" href="/ca/fr/perspectives/inscription-infolettre-de-robert-half" target="_self">Abbonez-vous aux mises à jour</a> </rhcl-block-centered-content> <script type="text/javascript"> { window.ready(() => { const stackingCardsBlocks = document.querySelectorAll( "rhcl-block-stacking-cards" ); stackingCardsBlocks.forEach((stackingCardsBlock) => { // replace tokens hyperlink = stackingCardsBlock.querySelector(".scb-hyperlink"); let redirectLocation = stackingCardsBlock.dataset.hyperlinkRedirectLocation; const cta = stackingCardsBlock.dataset.hyperlinkCta; const isTel = stackingCardsBlock.dataset.hyperlinkIsTel; if (isTel == "true") { // use the phone number from the cta for phone links redirectLocation = cta; } if (hyperlink) { hyperlink.innerHTML = hyperlink.innerHTML.replaceAll( "[token:hyperlink]", "<a href='" + (isTel == "true" ? "tel:" : "") + redirectLocation + "' target='_blank' data-rhcl-listener='true'>" + cta + "</a>" ); } }); }); } window.addEventListener('load', () => { const centeredContentBlock = document.querySelector("rhcl-block-centered-content"); let checkboxCenter; if (centeredContentBlock != null) { checkboxCenter = centeredContentBlock.getAttribute("data-check"); } if (checkboxCenter === "enablePopUp") { centeredContentBlock.addEventListener("rhcl-button-clicked", (e) => showPopupCenteredBlock(e, centeredContentBlock)); } }); function showPopupCenteredBlock(e, centeredContentBlock) { let button = e.composedPath()[0]; if(button.componentParentRef === centeredContentBlock) { e.preventDefault(); const modalPopUp = document.getElementById("email-model") if (modalPopUp != null) { modalPopUp.setAttribute("show-modal", ""); } } } { window.ready(() => { const centeredContentBlocks = document.querySelectorAll( "rhcl-block-centered-content" ); const upo = window.getUPO(); centeredContentBlocks.forEach((centeredContentBlock) => { const email = upo.email; const searchParams = new URLSearchParams(window.location.search); const registrantId = searchParams.get("rid"); // replace tokens const hyperlink = centeredContentBlock.querySelector(".ccb-response-hyperlink") const redirectLocation = centeredContentBlock.dataset.hyperlinkRedirectLocation; const cta = centeredContentBlock.dataset.hyperlinkCta; hyperlink.innerHTML = hyperlink.innerHTML.replaceAll( "[token:hyperlink]", "<a href='" + redirectLocation + "' target='_blank' data-rhcl-listener='true'>" + cta + "</a>" ) hyperlink.innerHTML = hyperlink.innerHTML.replaceAll( "[token:resendNow]", "<a href='#' id='resendNowA'>" + cta +"</a>" ) // if there is no email we can't resend emails if (!email) return; if (centeredContentBlock.copy) { centeredContentBlock.copy = centeredContentBlock.copy.replaceAll( "[token:email]", email ); } if (centeredContentBlock.subheading) { centeredContentBlock.subheading = centeredContentBlock.subheading.replaceAll("[token:email]", email); } const shouldResendEmail = centeredContentBlock.dataset.resendEmail; if (shouldResendEmail) { // setup resend email logic const anchorEl = hyperlink.querySelector("#resendNowA") anchorEl.addEventListener("click", async (e) => { e.preventDefault(); const resendUrl = window.aemSettings.rh_account_creation .accountCreateResendEmailEndpoint; if (email && resendUrl && registrantId) { fetch(resendUrl, { method: "POST", body: JSON.stringify({ registrantID: registrantId, }), }); } }); } }); }); } </script> </div> </div> </div> </div> <div class="experiencefragment aem-GridColumn aem-GridColumn--default--12"> <div id="experiencefragment-8082353bc2" class="cmp-experiencefragment cmp-experiencefragment--footer"> <div id="container-5ed3b86a3c" class="cmp-container"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="footer aem-GridColumn aem-GridColumn--default--12"> <div id="linklist_4_modal_5"> <div class="xfpage page basicpage"> <!--<sly data-sly-resource="contexthub"/>--> <div id="container-e923863831" class="cmp-container"> <div class="aem-Grid aem-Grid--12 aem-Grid--default--12 "> <div class="root container-fluid cmp-container aem-GridColumn aem-GridColumn--default--12"> <script type="text/javascript"> window.ready(function (e) { if (document.querySelector('rhcl-modal rhcl-button')) { document.querySelector('rhcl-modal rhcl-button').addEventListener('rhcl-button-clicked', () => { document.querySelector('rhcl-modal').setAttribute('show-modal',false); }) } }) </script> <rhcl-modal behavior="close" variant="popup"> <rhcl-typography><p style=" text-align: center; ">Vous quittez le site de Robert Half Canada et serez redirigé vers le site de Robert Half É.-U. Tout le contenu du Centre des investisseurs sera uniquement disponible en anglais. </p><p style=" text-align: center; "><a href="https://www.roberthalf.com/about-us/investor-center">Continue</a> </p></rhcl-typography> </rhcl-modal> </div> </div> </div> </div> </div> <rhcl-footer logo-destination="/ca/fr" variant="default"> <rhcl-list-base slot="menu" headline="Services" headline-tag="h2"> <rhcl-menu-link slot="item" data-modal-identifier="linklist_1_modal_1"> <a slot="item" href="/ca/fr/emplois">Parcourir les emplois</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_1_modal_2"> <a slot="item" href="/ca/fr/recrutement/placement-temporaire">Placement temporaire</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_1_modal_3"> <a slot="item" href="/ca/fr/recrutement/placement-permanent">Placement permanent</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_1_modal_4"> <a slot="item" href="/ca/fr/services-conseils">Services-conseils</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="menu" headline="Domaines d’expertise" headline-tag="h2"> <rhcl-menu-link slot="item" data-modal-identifier="linklist_2_modal_1"> <a slot="item" href="/ca/fr/comptabilite-finance">Finance et comptabilité</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_2_modal_2"> <a slot="item" href="/ca/fr/technologies-ti">Technologies</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_2_modal_3"> <a slot="item" href="/ca/fr/marketing-creation">Marketing et création</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_2_modal_4"> <a slot="item" href="/ca/fr/soutien-administratif">Soutien administratif et à la clientèle</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_2_modal_5"> <a slot="item" href="/ca/fr/juridique">Juridique</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="menu" headline="Ressources et outils" headline-tag="h2"> <rhcl-menu-link slot="item" data-modal-identifier="linklist_3_modal_1"> <a slot="item" href="/ca/fr/perspectives">Découvrir les perspectives</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_3_modal_2"> <a slot="item" href="/ca/fr/details-emploi-tous">Répertoire d’emplois</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_3_modal_3"> <a slot="item" href="/ca/fr/perspectives/guide-salarial">Guide salarial</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_3_modal_4"> <a slot="item" href="/ca/fr/connexion">Rapports de temps</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_3_modal_5"> <a slot="item" href="/ca/fr/contact">Contactez-nous</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="menu" headline="À propos" headline-tag="h2"> <rhcl-menu-link slot="item" data-modal-identifier="linklist_4_modal_1"> <a slot="item" href="/ca/fr/a-propos/a-propos-de-robert-half">À propos de Robert Half</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_4_modal_2"> <a slot="item" href="/ca/fr/a-propos/direction">Direction</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_4_modal_3"> <a slot="item" href="/ca/fr/joignez-robert-half">Carrières chez nous</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_4_modal_4"> <a slot="item" href="/ca/fr/nos-bureaux">Nos bureaux</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-popup data-modal-identifier="linklist_4_modal_5"> <a slot="item">Centre des investisseurs</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_4_modal_6"> <a slot="item" href="https://presse.roberthalf.ca/">Presse</a> </rhcl-menu-link> <rhcl-menu-link slot="item" data-modal-identifier="linklist_4_modal_7"> <a slot="item" href="/ca/fr/a-propos/notre-entreprise/marques">Nos marques</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="social-menu"> <rhcl-menu-link slot="item" icon="linkedin" description="LinkedIn"> <a slot="item" href="https://www.linkedin.com/company/robert-half-international"></a> </rhcl-menu-link> <rhcl-menu-link slot="item" icon="twitter" description="Twitter"> <a slot="item" href="https://twitter.com/RobertHalf_CAFR"></a> </rhcl-menu-link> <rhcl-menu-link slot="item" icon="youtube" description="Youtube"> <a slot="item" href="https://www.youtube.com/@RobertHalfCanadaFR"></a> </rhcl-menu-link> </rhcl-list-base> <rhcl-list-base slot="legal-menu"> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/alerte-fraude">Alerte à la fraude</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/confidentialite">Politique de confidentialité</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/ca/fr/conditions">Conditions d’utilisation</a> </rhcl-menu-link> <rhcl-menu-link slot="item"> <a slot="item" href="/content/dam/roberthalf/documents/ca/fr/non-indexed/legal/RH%20Canada%20-%20Forced%20and%20Child%20Labour%20Act%20(S-211)%20Annual%20Report%20FY2023_FRCA.pdf">Rapport sur l&#39;esclavage moderne</a> </rhcl-menu-link> </rhcl-list-base> <rhcl-typography slot="copyright">Robert Half Canada Inc. Tous droits réservés. Numéro de permis du Québec AP-2000503 </rhcl-typography> <rhcl-country-selector slot="locale-selector" name="locale"> <a data-locale="en-AU" href="https://www.roberthalf.com/au/en/insights" slot="link"> Australia - English </a> <a data-locale="en-BE" href="https://www.roberthalf.com/be/en/insights" slot="link"> Belgium - English </a> <a data-locale="nl-BE" href="https://www.roberthalf.com/be/nl/inzichten" slot="link"> Belgium - Nederlands </a> <a data-locale="fr-BE" href="https://www.roberthalf.com/be/fr/tendances" slot="link"> Belgium - Français </a> <a data-locale="pt-BR" href="https://www.roberthalf.com/br/pt/insights" slot="link"> Brazil - Português </a> <a data-locale="en-CA" href="https://www.roberthalf.com/ca/en/insights" slot="link"> Canada - English </a> <a data-locale="fr-CA" href="https://www.roberthalf.com/ca/fr/perspectives" slot="link"> Canada - Français </a> <a data-locale="es-CL" href="https://www.roberthalf.com/cl/es/insights" slot="link"> Chile - Español </a> <a data-locale="en-CN" href="https://www.roberthalf.cn/cn/en/insights" slot="link"> China - English </a> <a data-locale="zh-CN" href="https://www.roberthalf.cn/cn/zh/insights" slot="link"> China - 中文 </a> <a data-locale="fr-FR" href="https://www.roberthalf.com/fr/fr/tendances" slot="link"> France - Français </a> <a data-locale="de-DE" href="https://www.roberthalf.com/de/de/insights" slot="link"> Germany - Deutsch </a> <a data-locale="en-HK" href="https://www.roberthalf.com/hk/en/insights" slot="link"> Hong Kong, China - English </a> <a data-locale="en-IE" href="https://www.roberthalf.com/ie/en/insights" slot="link"> Ireland - English </a> <a data-locale="en-JP" href="https://www.roberthalf.com/jp/en/insights" slot="link"> Japan - English </a> <a data-locale="ja-JP" href="https://www.roberthalf.com/jp/ja/insights" slot="link"> Japan - 日本語 </a> <a data-locale="en-LU" href="https://www.roberthalf.com/lu/en/insights" slot="link"> Luxembourg - English </a> <a data-locale="fr-LU" href="https://www.roberthalf.com/lu/fr" slot="link"> Luxembourg - Français </a> <a data-locale="en-NL" href="https://www.roberthalf.com/nl/en/insights" slot="link"> Netherlands - English </a> <a data-locale="nl-NL" href="https://www.roberthalf.com/nl/nl/inzichten" slot="link"> Netherlands - Nederlands </a> <a data-locale="en-NZ" href="https://www.roberthalf.com/nz/en/insights" slot="link"> New Zealand - English </a> <a data-locale="en-SG" href="https://www.roberthalf.com/sg/en/insights" slot="link"> Singapore - English </a> <a data-locale="de-CH" href="https://www.roberthalf.com/ch/de/insights" slot="link"> Switzerland - Deutsch </a> <a data-locale="en-CH" href="https://www.roberthalf.com/ch/en/insights" slot="link"> Switzerland - English </a> <a data-locale="fr-CH" href="https://www.roberthalf.com/ch/fr/tendances" slot="link"> Switzerland - Français </a> <a data-locale="en-AE" href="https://www.roberthalf.com/ae/en/insights" slot="link"> United Arab Emirates - English </a> <a data-locale="en-GB" href="https://www.roberthalf.com/gb/en/insights" slot="link"> United Kingdom - English </a> <a data-locale="en-US" href="https://www.roberthalf.com/us/en/insights" slot="link"> United States - English </a> </rhcl-country-selector> </rhcl-footer> <rhcl-back-to-top-button></rhcl-back-to-top-button> <script type="text/javascript"> window.addEventListener("rhcl-menu-link-clicked", (e) => { e.preventDefault(); let link = e.composedPath()[0]; if(link.hasAttribute('data-modal-popup')) { let modalId = link.getAttribute('data-modal-identifier'); let modal = document.querySelector(`div#${modalId} rhcl-modal`); modal.setAttribute('show-modal', true); } }); document.addEventListener('rhcl-locale-selector-item-clicked', function (e) { if(e && e.detail){ window.location.href = e.detail; } }); </script> </div> </div> </div> </div> </div> </div> </div> </div> <link rel="preload" href="https://rh.my.salesforce-sites.com/liveagent/EinsteinBotEmbedCSS" as="style" onload="this.onload=null;this.rel='stylesheet'"/> <noscript><link rel="stylesheet" href="https://rh.my.salesforce-sites.com/liveagent/EinsteinBotEmbedCSS"/></noscript> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10