CRM & Client Experience Account Job Details | OTB Spa

OTB

Publiée le
26/05/2026
Contrat
Stage
Localisation
Milano, IT
Taille équipe

Avantages

Missions clés Planifier et exécuter des activations clients omnicanales. · Gérer le processus d'activation client à 360°. · Développer des parcours clients structurés. · Surveiller la gestion de la base de données clients. · Définir et analyser les KPI CRM.
Profil recherché Bac +8 (Doctorat) · 3-5 ans d'expérience · Leadership · Collaboration · Gestion de projet · Analyse

Le poste en détail

Jil Sander is an international luxury brand led by design, quality and functionality. Progressive and experimental, it delivers an enduring wardrobe for women and men fusing elements from different genres, in a play of contrast that produces a variety of garments and accessories that are evenly sumptuous, practical, and iconic. Technology and the hand-made, natural and high-performance materials, feminine and masculine, daywear and glamour, complement each other, balancing invention and purity of forms. The constant collaboration with artists, photographers, filmmakers, musicians, and artisans constantly adds resonance and depth to the vision. The brand was established in 1968 by Mrs. Jil Sander, it is directed by Simone Bellotti, and it was acquired by the OTB Fashion Group in 2021. The CRM & Client Experience Account plays a key role in shaping and elevating Jil Sander’s global client experience. The position is responsible for driving client recruitment, retention and loyalty through impactful omnichannel activations, structured client journeys and the continuous evolution of CRM and clienteling tools. Acting as a central connector between regions and headquarters, this role ensures a consistent, refined and emotionally engaging experience for Jil Sander clients worldwide. Key Responsibilities: Client Activations • Lead the planning and execution of global omnichannel client activations aimed at recruiting, retaining and upgrading clients, targeting both existing and prospective audiences. • Oversee the full 360° client activation process, including budget ownership, client selection, objective definition, timeline planning, execution, performance tracking and post-activation follow-up. • Curate meaningful and exclusive VIC experiences designed to strengthen loyalty and deepen emotional connection with the brand. • Partner cross-functionally with Retail, Merchandising, Visual Merchandising and Marketing teams to ensure full alignment with brand values, business priorities and experience objectives. • Coordinate regional execution to guarantee a consistent, elevated and brand-coherent client experience across all markets. • Conduct market research to identify venues, partners and tailored activation formats, ensuring the highest quality standards while maintaining cost efficiency. Client Journey & Outreach • Develop structured omnichannel client journeys across multiple touchpoints, combining 1-to-1 and 1-to-many engagement initiatives. • Design and manage client outreach strategies across CRM client clusters, overseeing calendar planning, client targeting, execution and performance monitoring. • Collaborate closely with Marketing, Merchandising, Retail and eCommerce teams to deliver client communications that are impactful, brand-aligned and consistent across regions. CRM & Clienteling Tools • Oversee client database management, ensuring data accuracy, consistency and quality across all regions. • Define, monitor and analyze CRM KPIs to track client recruitment, retention, conversion and upgrading across all segments. • Collaborate with the Training team to equip Store Teams with the right tools, guidelines and best practices to support effective client engagement and structured follow-up. • Support the global rollout of new CRM and clienteling features, ensuring clear communication, alignment and adoption across regions. • Work closely with Business Intelligence, IT and Retail teams to enhance CRM reporting and data insights. Requirements: • Minimum 5 years of experience in CRM and/or Customer Experience roles. • Proven background in CRM / Customer Experience environments, preferably within the luxury industry. • Strong understanding of client engagement strategies, omnichannel journeys and client development dynamics. • Fluency in English, both written and spoken. Why Join Jil Sander If you are driven by precision, inspired by creativity and motivated by the challenge of elevating luxury client engagement, this role places you at the heart of Jil Sander’s vision: creating lasting, refined and authentic connections with our most valued clients. #JS .buttontext8630a370e0f79c1d a{ border: 1px solid transparent; } .buttontext8630a370e0f79c1d a:focus{ border: 1px dashed #E00122 !important; outline: none !important; } Privacy policy available here: apps.otb.net/hr-gdpr/ Privacy policy available here: https://apps.otb.net/hr-gdpr/ Location: Milano, IT #job-location.job-location-inline { display: inline; } Seniority: Professional Employment Type: Full time Function: Marketing Apply now » Find similar jobs: Sales & Marketing LEGAL TERMS COOKIE CUSTOMIZE CHOISES Opens in a new tab. Opens in a new tab. Opens in a new tab. © 2024 OTB SPA - ALL RIGHTS RESERVED - VAT IT01571110244 .onoffswitch .onoffswitch-inner:before { content: "Yes"; } .onoffswitch .onoffswitch-inner:after { content: "No"; } × Cookie Consent Manager When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. Because we respect your right to privacy, you can choose not to allow some types of cookies. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer. Required Cookies These cookies are required to use this website and can't be turned off. Required Cookies Show More Details Required Cookies Provider Description Enabled SAP as service provider We use the following session cookies, which are all required to enable the website to function: "route" is used for session stickiness "careerSiteCompanyId" is used to send the request to the correct data center "JSESSIONID" is placed on the visitor's device during the session so the server can identify the visitor "Load balancer cookie" (actual cookie name may vary) prevents a visitor from bouncing from one instance to another Cookies from provider SAPasserviceprovider are required and cannot be turned off Confirm My Choices Reject All Cookies Accept All Cookies var fblink = "https://www.facebook.com/sharer/sharer.php?u=https://www.otb.net/en/otb-career/"; var twlink = "https://twitter.com/share?url=https://www.otb.net/en/otb-career/&text=OTBCareers+%23OTB"; var gplink = "https://plus.google.com/share?url=https://www.otb.net/en/otb-career/"; var otbLogoNeroLink = "//rmkcdn.successfactors.com/97ed9e27/246948a9-ef35-4453-adac-7.svg"; var otbLogoBiancoLink = "//rmkcdn.successfactors.com/97ed9e27/3a497940-1080-46cd-911f-b.png"; var dieselLogoLink = "//rmkcdn.successfactors.com/97ed9e27/81ca2e04-e637-4367-8770-f.png"; var staffInternationalLogoLink = "//rmkcdn.successfactors.com/97ed9e27/5fefe6c6-57db-42a9-90ca-f.png" var jilSanderLogoLink = "//rmkcdn.successfactors.com/97ed9e27/8ab092a3-ab55-4ad7-9abd-4.png" var lrVicenzaLogoLink = "//rmkcdn.successfactors.com/97ed9e27/c17309c3-0285-4490-be81-3.jpg" var margielaLogoLink = "//rmkcdn.successfactors.com/97ed9e27/cfb68932-cb07-418b-a56f-4.png" var marniLogoLink = "//rmkcdn.successfactors.com/97ed9e27/e9483489-1609-4bd7-85a3-3.png" var viktorAndRolfLogoLink = "//rmkcdn.successfactors.com/97ed9e27/d138a0c2-3017-4c0f-85a5-e.png" var braveKidLogoLink = "//rmkcdn.successfactors.com/97ed9e27/79d4c2f6-5c62-4d98-9d24-2.png" var weiboLogoLink = "//rmkcdn.successfactors.com/97ed9e27/de14c1aa-db7e-45d7-9c92-6.svg" var backupSerializedElement = `

JOIN THE BRAVES

` var backupSerializedElementImg = `
` var chevronRightLink = "//rmkcdn.successfactors.com/97ed9e27/8dc9e85f-c480-4781-9337-c.svg"; var whatsappLogoLink = "//rmkcdn.successfactors.com/97ed9e27/4c87f3e7-01be-490d-b34f-f.svg"; var linkedinLogoLink = "//rmkcdn.successfactors.com/97ed9e27/3a0bb9d9-f457-4b06-b16e-c.svg"; var facebookLogoLink = "//rmkcdn.successfactors.com/97ed9e27/19530389-2a58-46d0-be6d-6.svg"; var twitterLogoLink = "//rmkcdn.successfactors.com/97ed9e27/fc83d4f2-0728-4816-8a4e-2.svg"; //btn animation var btns = document.getElementsByClassName("keywordsearch-button"); if (btns.length > 0) { if (btns.length > 1) { for (i = 1; i < btns.length; i++) { var btnWrapper = document.createElement("span"); var parentRef = btns[1].parentNode; btnWrapper.setAttribute("class", "btnWrp"); btnWrapper.appendChild(btns[1]); parentRef.appendChild(btnWrapper); } } } // query string var keywordSearchTitle = document.getElementsByClassName("keyword-title"); var searchQueryContent = document.getElementsByClassName("securitySearchQuery"); if (keywordSearchTitle.length > 0 && searchQueryContent.length > 0) { if (String.prototype.startsWith) { if (searchQueryContent[0].innerText.trim().startsWith('""')) { // keywordSearchTitle[0].style.visibility = "hidden"; keywordSearchTitle[0].style.display = "none"; } } else { if (searchQueryContent[0].innerText.trim().substring(0, 3) == (' ""'.trim())) { // keywordSearchTitle[0].style.visibility = "hidden"; keywordSearchTitle[0].style.display = "none"; } } } //open moreOption CustomSearch window.onload = function (e) { var moreOptionCust = document.getElementById("custom-options-search"); if (moreOptionCust) { moreOptionCust.click(); } } //move moreOptionSearch /* var searchBarContainer = document.getElementsByClassName("rd-keywordsearch"); searchBarContainer[1].appendChild(moreOption); var item = document.getElementById("newFacets"); if (item.childElementCount == 2) { var items = item.querySelectorAll('.optionsFacet.col-md-4'); for (var i = 0; i < items.length; i++) { items[i].classList.add("js_extend2Facet"); } } }*/ //breadcrumb back var breadcrumb = document.getElementsByClassName("breadcrumb"); if (breadcrumb.length > 0) { var area = document.createElement("div"); area.classList.add("js_breadcrumb_hover_area"); area.addEventListener("click", function (e) { window.history.go(-1); }, false); area.addEventListener("mouseover", function (e) { area.classList.add("js_cursor"); }, false); document.body.appendChild(area); } //SocialIcon var socialMain = document.getElementById("socialIconPlaceholder"); if (socialMain) { var socialIconContainer = document.createElement("ul") socialIconContainer.classList.add("js_social_list"); var fbNodeLi = document.createElement("li") fbNodeLi.classList.add("js_idle"); var gpNodeLi = document.createElement("li") gpNodeLi.classList.add("js_idle"); var twNodeLi = document.createElement("li") twNodeLi.classList.add("js_idle"); var fbNodeA = document.createElement("a") fbNodeA.classList.add("js_fb"); fbNodeA.href = fblink; fbNodeA.target = "_blank"; var twNodeA = document.createElement("a") twNodeA.classList.add("js_tweet"); twNodeA.href = twlink; twNodeA.target = "_blank"; var gpNodeA = document.createElement("a") gpNodeA.classList.add("js_gplus"); gpNodeA.href = gplink; gpNodeA.target = "_blank"; fbNodeLi.appendChild(fbNodeA); twNodeLi.appendChild(twNodeA); gpNodeLi.appendChild(gpNodeA); socialIconContainer.appendChild(fbNodeLi); socialIconContainer.appendChild(twNodeLi); socialIconContainer.appendChild(gpNodeLi); socialMain.insertBefore(socialIconContainer, socialMain.firstElementChild); } function addClasses() { var o = {}; var page = getPage(); console.log("%c" + "PAGINA CUSTOMIZZATA " + page, "font-size:20px"); if (page === "homepage") { o.imageCarousel = document.querySelectorAll(".imagecarousel3")[0]; window.addEventListener('resize', updateSlidesToShow); moveHeroBannerToLocalStorage(); addArrowsToSelect() addMoreFiltersButton() document.querySelectorAll('#content .inner .row.displayDTM[role="img"]')[0].style.paddingTop = 'unset' } else if (page === "search" || page === 'category') { o.jobTileList = document.querySelectorAll("#job-tile-list")[0]; o.content_search = document.querySelectorAll("#content")[0]; o.search_container = document.querySelectorAll('#search-wrapper')[0]; //changeShowingString() addArrowsToSelect() addMoreFiltersButton() if(page === 'category') { document.querySelectorAll('#content .inner .row.displayDTM[role="img"]')[0].style.paddingTop = 'unset' } } else if (page === "job") { o.content_job = document.querySelectorAll("#content")[0]; } else { console.log("%c" + "PAGINA NON CUSTOMIZZATA", "font-size:20px"); return false; } /* everywhere */ o.footer = document.querySelectorAll("#footer")[0]; if (page === 'homepage') o.search_container = document.querySelectorAll('.search.displayDTM')[0]; o.menu_desktop = document.querySelectorAll(".custom-desktop-header")[0]; o.menu_tablet = document.querySelectorAll(".custom-tablet-header")[0]; o.menu_mobile = document.querySelectorAll(".custom-mobile-header")[0]; o.outershell = document.querySelectorAll('#outershell')[0] for (var property of Object.keys(o)) { if (o[property]) { o[property].classList.add("custom_" + property); } else { console.log("%c" + "IMPOSSIBILE TROVARE " + property, "font-size:20px"); } } /* remove element style to override it */ if (document.querySelectorAll('#content > .inner > div.buttontext.displayDTM')[0] && document.querySelectorAll('.custom-header-logo')[0]) { document.querySelectorAll('#content > .inner > div.buttontext.displayDTM')[0].style.width = '' document.querySelectorAll('.custom-header-logo')[0].style.padding = '0' } /* add elements */ let header_background = document.createElement('div') header_background.classList.add('custom_header_background') header_background.classList.add('blur-filter') document.querySelectorAll('#outershell')[0].insertAdjacentElement('afterbegin', header_background); let arrow = 'north_east' if (document.querySelectorAll('.custom_menu_desktop .profile a')[0]) { document.querySelectorAll('.custom_menu_desktop .profile a')[0].insertAdjacentHTML('beforeend', arrow) } if (document.querySelectorAll('.custom_menu_tablet .profile a')[0]) { document.querySelectorAll('.custom_menu_tablet .profile a')[0].insertAdjacentHTML('beforeend', arrow) } if (document.querySelectorAll('.custom_menu_mobile .profile a')[0]) { document.querySelectorAll('.custom_menu_mobile .profile a')[0].insertAdjacentHTML('beforeend', arrow) } let search_button = document.createElement('button') search_button.classList.add('custom_button_search') search_button.innerHTML = ` SEARCH east `; if (document.querySelectorAll('#content .custom_search_container .jobAlertsSearchForm .container-fluid .columnizedSearchForm > .column ')[0]) { document.querySelectorAll('#content .custom_search_container .jobAlertsSearchForm .container-fluid .columnizedSearchForm > .column ')[0].append(search_button); } Array.from(document.querySelectorAll('.social-icons')).forEach(x => { x.style.cssText = 'display: block !important;' }) return true; } function openModal() { var modal = document.body.querySelector('#content>.inner>.modal.custom_modal'); modal.style.display = 'flex'; } function initiateModal() { const modal = document.createElement('div'); modal.classList.add('custom_modal', 'modal'); const modalContent = document.createElement('div'); modalContent.classList.add('modal-content'); const closeButton = document.createElement('span'); closeButton.classList.add('close'); closeButton.innerHTML = '×'; modalContent.appendChild(closeButton); const modalText = document.createElement('span'); modalText.textContent = "Share this job position with"; modalText.classList.add('modal-text-header'); modalContent.appendChild(modalText); const logosContainer = document.createElement('div'); logosContainer.classList.add('logos-container'); const currentPageURL = window.location.href; const facebookLogo = document.createElement('img'); const facebookLogoimgContainer = document.createElement('a'); facebookLogoimgContainer.classList.add('img-logo-container'); const facebookShareURL = 'https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(currentPageURL); facebookLogoimgContainer.href = facebookShareURL; facebookLogoimgContainer.target = '_blank'; facebookLogo.src = facebookLogoLink; facebookLogoimgContainer.appendChild(facebookLogo); logosContainer.appendChild(facebookLogoimgContainer); const linkedinLogo = document.createElement('img'); const linkedinLogoimgContainer = document.createElement('a'); linkedinLogoimgContainer.classList.add('img-logo-container'); const linkedinShareURL = 'https://www.linkedin.com/sharing/share-offsite/?url=' + encodeURIComponent(currentPageURL); linkedinLogoimgContainer.href = linkedinShareURL; linkedinLogoimgContainer.target = '_blank'; linkedinLogo.src = linkedinLogoLink; linkedinLogoimgContainer.appendChild(linkedinLogo); logosContainer.appendChild(linkedinLogoimgContainer); const whatsappLogo = document.createElement('img'); const whatsappLogoimgContainer = document.createElement('a'); whatsappLogoimgContainer.classList.add('img-logo-container'); const whatsappShareURL = 'https://api.whatsapp.com/send?text=' + encodeURIComponent(currentPageURL); whatsappLogoimgContainer.href = whatsappShareURL; whatsappLogoimgContainer.target = '_blank'; whatsappLogo.src = whatsappLogoLink; whatsappLogoimgContainer.appendChild(whatsappLogo); logosContainer.appendChild(whatsappLogoimgContainer); const twitterLogo = document.createElement('img'); const twitterLogoimgContainer = document.createElement('a'); twitterLogoimgContainer.classList.add('img-logo-container'); const twitterShareURL = 'https://twitter.com/intent/tweet?url=' + encodeURIComponent(currentPageURL); twitterLogoimgContainer.href = twitterShareURL; twitterLogoimgContainer.target = '_blank'; twitterLogo.src = twitterLogoLink; twitterLogoimgContainer.appendChild(twitterLogo); logosContainer.appendChild(twitterLogoimgContainer); modalContent.appendChild(logosContainer); var hrElement = document.createElement('hr'); hrElement.setAttribute('aria-hidden', 'true'); modalContent.appendChild(hrElement); var emailButton = document.createElement('button'); emailButton.innerHTML = ` EMAIL east `; emailButton.classList.add('btn', 'btn-primary'); emailButton.addEventListener('click', function (e) { var subject = "Check out this job position!"; var body = "I thought you might be interested in this link:\n\n" + currentPageURL; var mailtoUrl = "mailto:?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body); window.location.href = mailtoUrl; }); var copyLinkButton = document.createElement('button'); copyLinkButton.innerHTML = "COPY LINK"; copyLinkButton.classList.add('btn', 'btn-primary'); var span1 = document.createElement('span'); span1.classList.add('custom_span1'); var span2 = document.createElement('span'); span2.classList.add('custom_span2'); copyLinkButton.appendChild(span1); span1.appendChild(span2); copyLinkButton.addEventListener('click', function (e) { console.log('copying link'); var dummy = document.createElement('input'); document.body.appendChild(dummy); dummy.value = currentPageURL; dummy.select(); document.execCommand('copy'); document.body.removeChild(dummy); copyLinkButton.innerHTML = "Copied !"; setTimeout(function () { copyLinkButton.innerHTML = "COPY LINK"; var span1 = document.createElement('span'); span1.classList.add('custom_span1'); var span2 = document.createElement('span'); span2.classList.add('custom_span2'); copyLinkButton.appendChild(span1); span1.appendChild(span2); }, 1500); }); var buttonContainer = document.createElement('div'); buttonContainer.classList.add('buttons-container'); buttonContainer.appendChild(emailButton); buttonContainer.appendChild(copyLinkButton); modalContent.appendChild(buttonContainer); modal.appendChild(modalContent); document.body.querySelector('#content>.inner').appendChild(modal); closeButton.addEventListener('click', function () { modal.style.display = 'none'; }); window.addEventListener('click', function (event) { if (event.target == modal) { modal.style.display = 'none'; } }); } function setMaxBoundariesJobColumnOne() { const elementIsVisibleInViewport = (el, partiallyVisible = false) => { const { top, left, bottom, right } = el.getBoundingClientRect(); const { innerHeight, innerWidth } = window; return partiallyVisible ? ((top > 0 && top < innerHeight) || (bottom > 0 && bottom < innerHeight)) && ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth)) : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth; }; window.addEventListener('scroll', function (event) { var fixedElement = document.querySelector('.jobColumnOne'); var scrollTop = window.pageYOffset || document.documentElement.scrollTop; var containerTop = document.querySelector('.jobDisplayShell').getBoundingClientRect().top; var footer = document.querySelector('#footer') var footerTop = footer.getBoundingClientRect().top; var fixedElementTop = 0; //fixedElement.classList.add('sticky'); if (scrollTop + fixedElement.offsetHeight > 350 + footerTop && elementIsVisibleInViewport(footer, true)) { fixedElement.style.top = (footerTop - fixedElement.offsetHeight) + 'px'; } else if (scrollTop >= containerTop + 400) { fixedElement.style.top = containerTop + 400; //fixedElement.style.top = '190px'; fixedElement.classList.add('sticky'); } else { fixedElement.style.top = fixedElementTop + 'px'; fixedElement.classList.remove('sticky'); } }); } function addImagesToJobTile() { var page = window.location.pathname; if (page.startsWith("/job")) { moveHeroBannerUsingLocalStorage(); setMaxBoundariesJobColumnOne(); // initiate modal initiateModal() const job = document.querySelector(".job"); const jobColumnOne = document.querySelector(".jobColumnOne"); // mobile & tablet -> move title token outside if (window.innerWidth < 768) { if (jobColumnOne) { const titleToken = jobColumnOne.querySelector(".joblayouttoken"); job.insertBefore(titleToken, jobColumnOne) } } // desktop -> remove title token if (window.innerWidth >= 768) { if (jobColumnOne) { const titleToken = jobColumnOne.querySelector(".joblayouttoken"); jobColumnOne.removeChild(titleToken) } } // move apply button inside jobColumnOne const applyButton = document.querySelector(".jobTitle"); if (applyButton) { const applyButtonA = applyButton.querySelector(".applylink > .apply"); applyButtonA.textContent = "Apply now"; jobColumnOne.appendChild(applyButton); } //create share with button const socialsDiv = document.createElement('div'); socialsDiv.classList.add('share-block'); const anchor = document.createElement('a'); anchor.classList.add('btn', 'btn-primary', 'btn-large', 'btn-lg'); const buttonText = document.createElement('span'); buttonText.textContent = 'share with'; const chevronRightImg = document.createElement('img'); chevronRightImg.src = chevronRightLink; chevronRightImg.style.width = '13px'; chevronRightImg.style.height = '10px'; anchor.appendChild(buttonText); anchor.appendChild(chevronRightImg); socialsDiv.appendChild(anchor); socialsDiv.addEventListener('click', openModal); jobColumnOne.appendChild(socialsDiv); // add logo images to tile, remove department const depDiv = jobColumnOne.querySelector('[data-careersite-propertyid="dept"]'); const depDivToRemove = jobColumnOne.querySelector('div:has(div.inner > div.row > div > span[data-careersite-propertyid="dept"])'); if (depDiv) { const depText = depDiv.textContent.trim(); const img = document.createElement('img'); switch (depText) { case "OTB": img.src = otbLogoNeroLink; break; case "Diesel": img.src = dieselLogoLink; break; case "Staff International": img.src = staffInternationalLogoLink; break; case "Jil Sander": img.src = jilSanderLogoLink; break; case "L.R. Vicenza": img.src = lrVicenzaLogoLink; break; case "Margiela": img.src = margielaLogoLink; break; case "Marni": img.src = marniLogoLink; break; case "Viktor & Rolf": img.src = viktorAndRolfLogoLink; break; case "Brave Kid": img.src = braveKidLogoLink; break; } jobColumnOne.prepend(img); if (depDivToRemove) { jobColumnOne.removeChild(depDivToRemove); } } } } function searchKeypress(event) { if (event.key === 'Enter' && (event.which === 13 || event.which === 10)) { event.preventDefault() document.querySelector('.custom_button_search')?.click() } } async function addSearchEvents() { //add placeholder to input var inputKeyword = document.querySelector('#content>.inner #search-wrapper>div.searchwell div.rd-keywordsearch>input.keywordsearch-q.columnized-search[type="text"]'); if (inputKeyword) { inputKeyword.setAttribute("placeholder", "Search job title or keyword"); inputKeyword.addEventListener('keypress', (event) => searchKeypress(event)) } //move button to bottom var form = document.querySelector('#content>.inner #search-wrapper>div.searchwell>form.jobAlertsSearchForm'); var formContainer = document.querySelector('#content>.inner #search-wrapper>div.searchwell>form.jobAlertsSearchForm>div.container-fluid'); var button = document.querySelector('#content>.inner #search-wrapper>div.searchwell>form.jobAlertsSearchForm .rd-searchbutton'); if (form && formContainer) { formContainer.appendChild(button); //add spontaneouse application & view all jobs var hrElement = document.createElement('hr'); hrElement.setAttribute('aria-hidden', 'true'); formContainer.insertBefore(hrElement, formContainer.firstChild); // Create the first button for spontaneous application var spontaneousButton = document.createElement('button'); spontaneousButton.innerHTML = ` SPONTANEOUS APPLICATION east `; spontaneousButton.classList.add('btn', 'btn-primary'); spontaneousButton.addEventListener('click', function (e) { e.preventDefault(); let newHref = window.location.hostname.indexOf('otbspat1.valhalla2.stage.jobs2web.com') > -1 ? 'https://career2preview.sapsf.eu/career?company=otbspaT1&login_ns=register&loginFlowRequired=true' : 'https://career2.successfactors.eu/career?company=otbspa&lang=en_US&login_ns=register&navBarLevel=MY_PROFILE' //`${window.location.protocol}//${window.location.hostname}/career?company=otbspa&lang=en_US&login_ns=register&navBarLevel=MY_PROFILE` window.location.href = newHref }); // Create the second button for searching jobs var searchButton = document.createElement('button'); searchButton.innerHTML = ` VIEW ALL JOBS east `; searchButton.classList.add('btn', 'btn-primary'); searchButton.addEventListener('click', function (e) { e.preventDefault(); form.reset(); form.submit(); }); // Create a div to contain both buttons in the same row var buttonContainer = document.createElement('div'); buttonContainer.classList.add('buttons-container'); buttonContainer.appendChild(spontaneousButton); buttonContainer.appendChild(searchButton); // Prepend the button container to the form container formContainer.insertBefore(buttonContainer, formContainer.firstChild); } } function addSliderArrows(slider) { let prevArrow = ` ` let nextArrow = ` ` let prevButton = ` ` let nextButton = ` ` let container = `
${prevButton} ${nextButton}
` slider.insertAdjacentHTML('beforeend', container) let prevArrowElem = document.querySelector('#custom_prevArrow') let nextArrowElem = document.querySelector('#custom_nextArrow') prevArrowElem.addEventListener('click', () => { setTimeout(() => { let originalArrow = slider.querySelector('button.slick-prev.slick-arrow') originalArrow.click() slider.slick('slickSetOption', {}, true) }, 50) }) nextArrowElem.addEventListener('click', () => { setTimeout(() => { let originalArrow = slider.querySelector('button.slick-next.slick-arrow') originalArrow.click() slider.slick('slickSetOption', {}, true) }, 50) }) } function addSliderEvents() { var intervalId = setInterval(function () { var slider = document.querySelector('.custom_imageCarousel'); if (slider) { clearInterval(intervalId); addSliderArrows(slider) var slideDivs = slider.querySelectorAll('.slick-slide'); slideDivs.forEach(function (slide) { var backgroundDiv = slide.querySelector('div[role="img"]'); if (backgroundDiv) { backgroundDiv.innerHTML = backgroundDiv.innerHTML.replace(/ /g, ''); } var slideLinks = slide.querySelectorAll('.slick-slide a'); slideLinks.forEach(function (link) { var title = link.getAttribute('title'); if (title) { var span = link.querySelector('span'); if (span) { span.textContent = title; } } }); }); updateSlidesToShow(); } }, 100); } //cambia il numero di slides a seconda della viewport function updateSlidesToShow() { var slider = $('.slick-slider'); var windowWidth = window.innerWidth; if (windowWidth < 768) { slider.slick('slickSetOption', 'slidesToShow', 1, true); document.querySelector('.slick-track').classList.remove('infinte-width') } else if (windowWidth >= 768 && windowWidth < 1024) { slider.slick('slickSetOption', 'slidesToShow', 3, true); document.querySelector('.slick-track').classList.add('infinte-width') } else { document.querySelector('.slick-track').classList.add('infinte-width') slider.slick('slickSetOption', 'slidesToShow', 5, true); } slider.slick('slickSetOption', { variableWidth : true, centerMode : true, autoplay : true, autoplaySpeed : 2000, lazyLoad : 'progressive', pauseOnFocus : false, pauseOnHover : false, swipeToSlide : false, swipe: false }, true) } function moveHeroBannerToLocalStorage() { /*var elementToMove = document.querySelector(".buttontext"); var serializedElement = elementToMove.outerHTML;*/ var elementToMoveImg = document.querySelector("#content > .inner > .row.displayDTM"); var serializedElementImg = elementToMoveImg.outerHTML; // localStorage.setItem("elementToMove", serializedElement); localStorage.setItem("elementToMoveImg", serializedElementImg); } function moveHeroBannerUsingLocalStorage() { /*var serializedElement = localStorage.getItem("elementToMove"); if (!serializedElement) serializedElement = backupSerializedElement var tempElement = document.createElement("div"); tempElement.innerHTML = serializedElement; var deserializedElement = tempElement.firstChild; var destinationContainer = document.querySelector("#content .inner"); destinationContainer.prepend(deserializedElement);*/ var serializedElementImg = localStorage.getItem("elementToMoveImg"); if (!serializedElementImg) serializedElementImg = backupSerializedElementImg var tempElementImg = document.createElement("div"); tempElementImg.innerHTML = serializedElementImg; var deserializedElementImg = tempElementImg.firstChild; document.querySelector("#content .inner").insertAdjacentHTML("afterbegin", deserializedElementImg.outerHTML); document.querySelectorAll('#content .inner .row.displayDTM[role="img"]')[0].style.paddingTop = 'unset' } async function loadSearchFilters() { var page = getPage() var params = window.location.search if (page === 'search' || page === 'category') { page === 'search' ? moveHeroBannerUsingLocalStorage() : null addBackToHomeButton() await new Promise((resolve, reject) => { setTimeout(function () { var selectElements = document.querySelectorAll('.optionsFacet-select'); selectElements.forEach(function (select) { while (select.options.length > 0) { select.remove(0); } }); function q() { function u(b) { for (b = 0; b < h.facetquery.fields.length; b++) $(".optionsFacetsDD_" + h.facetquery.fields[b]).val("") } function t() { $.ajax({ url: "/services/jobs/options/facetValues/", type: "POST", cache: !1, contentType: "application/json", dataType: "json", data: JSON.stringify(h), success: function (b) { b = b.facets.map; for (var a = 0; a < h.facetquery.fields.length; a++) { let anySelected = false for (var e = h.facetquery.fields[a], k = e, e = b[e], f = void 0, f = "optionsFacetsDD_" + k, f = f.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&"), f = (f = location.search.match(new RegExp("[?&]" + f + "=([^&]+)(&|$)"))) && decodeURIComponent(f[1].replace(/\+/g, " ")), g = 0; g < e.length; g++) { anySelected = anySelected || f === e[g].name v(k, e[g], f === e[g].name); } "country" !== k && "lang" !== k || w(k) $(".optionsFacetsDD_" + h.facetquery.fields[a])[0].insertAdjacentElement("afterbegin", new Option('All', '', true, !anySelected)) } m = !0; l = !1; p.hide(); x.show(); n || (d.css("height", c.height()), c.css("width", d.width())) } }) } /*function r() { $.ajax({ url: "/services/jobs/options/facetValues/", type: "POST", cache: !1, contentType: "application/json", dataType: "json", data: JSON.stringify(h), success: function (b) { } }) }*/ function w(b) { b = $("#optionsFacetsDD_" + b); var a = b.find("option"), c = b.val(); a.sort(function (a, b) { return "" === a.value ? -1 : "" === b.value || a.text > b.text ? 1 : a.text < b.text ? -1 : 0 }); b.empty().append(a); b.val(c) } function v(a, c, e) { $(".optionsFacetsDD_" + a).each(function (a, b) { var g = b.options, d = new Option(c.translated ? c.translated : c.name, c.name); d.selected = e; g[g.length] = d }) } t(); j2w.Search.addClearEventListener(u); resolve(true) } if (j2w.search) { var x = $(".optionsFacetValues"), p = $(".optionsFacetLoading"), a = $("#options-search"), m = !1, l = !1, n = 0 < $(".columnizedSearchForm").length, d = $(".moreOptionsCollapseArea"), h = { page: 0, keywords: "", locationsearch: "", sortby: "referencedate", sortdir: "desc", sortfield: "title", recordsperpage: 25, startrow: 0, facetquery: { facet: !0, mincount: 1, limit: 5E3, fields: j2w.search.options.facets, sort: "index", showPicklistAllLocales: j2w.search.options.showPicklistAllLocales }, filterquery: {} }; q(); } }, 100); }) } if(page !== 'job') { // add placeholder to selects var selects = document.querySelectorAll('.optionsFacet-select'); await new Promise((resolve, reject) => { setTimeout(function () { selects.forEach(function (select) { var label = document.querySelector('label[for="' + select.id + '"]'); label.style.display = "none"; select.setAttribute("placeholder", label.textContent.trim()); var placeholderOption = document.createElement("option"); placeholderOption.value = ""; placeholderOption.text = label.textContent.trim(); placeholderOption.disabled = true; placeholderOption.selected = true; placeholderOption.hidden = true; placeholderOption.defaultSelected = true; let selectValue = `${select.value}` select.prepend(placeholderOption); if(selectValue) select.value = selectValue }); resolve() }, 500); }) } } function addListenersToSelects() { var selectElements = document.querySelectorAll('.optionsFacet-select'); selectElements.forEach(function (select) { select.addEventListener('change', function () { select.setAttribute('style', 'color: black !important;'); }); }); } function addImagesToTiles() { var page = getPage(); if (page === 'search' || page === 'category') { const jobTilesList = document.querySelector("#job-tile-list"); if(!jobTilesList) return; const jobTiles = jobTilesList.querySelectorAll(".job-tile:not(.alreadyStyled)"); Array.from(jobTiles).forEach(jobTile => { const facilityDiv = jobTile.querySelector('[id$="-section-facility-value"]'); jobTile.classList.add("alreadyStyled") if (facilityDiv) { const facilityText = facilityDiv.innerText.trim() const jobRowInners = jobTile.querySelectorAll('.job-row > *'); try { addImages(jobRowInners[0], facilityText); addImages(jobRowInners[1], facilityText); } catch (error) { console.log(error); } const imgMobile = document.createElement('img') addImagesMobile(jobRowInners[2], imgMobile, facilityText); } }); } } function addImages(element, facilityText) { const img = document.createElement('img'); const imgContainer = document.createElement('div') const chevronRightImg = document.createElement('img'); imgContainer.classList.add('custom_img_tile_container') chevronRightImg.src = chevronRightLink; chevronRightImg.style.width = '20px'; chevronRightImg.style.height = '20px'; switch (facilityText) { case "OTB": img.src = otbLogoNeroLink; break; case "Diesel": img.src = dieselLogoLink; break; case "Staff International": img.src = staffInternationalLogoLink; break; case "Jil Sander": img.src = jilSanderLogoLink; break; case "L.R. Vicenza": img.src = lrVicenzaLogoLink; break; case "Margiela": img.src = margielaLogoLink; break; case "Marni": img.src = marniLogoLink; break; case "Viktor & Rolf": img.src = viktorAndRolfLogoLink; break; case "Brave Kid": img.src = braveKidLogoLink; break; } const facilityDiv = element.querySelector('[id$="-section-facility-value"]'); facilityDiv.style.display = 'none'; const firstDiv = element.children[0].children[0]; element.removeChild(element.children[0]); element.children[0].insertBefore(firstDiv, element.children[0].children[1]); imgContainer.insertAdjacentElement('beforeend', img) element.prepend(imgContainer); element.lastElementChild.lastElementChild.append(chevronRightImg); } function addImagesMobile(element, imgMobile, facilityText) { const chevronRightImg = document.createElement('img'); const imgContainer = document.createElement('div'); imgContainer.classList.add('custom_img_tile_container') chevronRightImg.src = chevronRightLink; chevronRightImg.style.width = '20px'; chevronRightImg.style.height = '20px'; switch (facilityText) { case "OTB": imgMobile.src = otbLogoNeroLink; break; case "Diesel": imgMobile.src = dieselLogoLink; break; case "Staff International": imgMobile.src = staffInternationalLogoLink; break; case "Jil Sander": imgMobile.src = jilSanderLogoLink; break; case "L.R. Vicenza": imgMobile.src = lrVicenzaLogoLink; break; case "Margiela": imgMobile.src = margielaLogoLink; break; case "Marni": imgMobile.src = marniLogoLink; break; case "Viktor & Rolf": imgMobile.src = viktorAndRolfLogoLink; break; case "Brave Kid": imgMobile.src = braveKidLogoLink; break; } const firstDiv = element.children[0]; const secondDiv = element.children[1]; element.removeChild(firstDiv); element.removeChild(secondDiv); element.insertBefore(firstDiv, element.firstChild); element.insertBefore(secondDiv, element.firstChild); const mobileFacilityText = element.querySelector('div:nth-child(3)'); mobileFacilityText.style.display = 'none'; imgContainer.insertAdjacentElement('beforeend', imgMobile) element.prepend(imgContainer); element.lastElementChild.lastElementChild.append(chevronRightImg); // observeJobTileList(); } function observeJobTileList() { const targetNode = document.getElementById('job-tile-list'); const observer = new MutationObserver(function (mutationsList, observer) { for (const mutation of mutationsList) { if (mutation.type === 'childList') { addImagesToTiles(); } } }); const config = { childList: true, subtree: true }; observer.observe(targetNode, config); } function changePlaceholders(select) { let swapElem = (elementX, elementY) => { let parentY = elementY.parentNode; let nextY = elementY.nextSibling; if (nextY === elementX) { parentY.insertBefore(elementX, elementY); } else { elementX.parentNode.insertBefore(elementY, elementX); if (nextY) { parentY.insertBefore(elementX, nextY); } else { parentY.appendChild(elementX); } } } if(select.querySelectorAll('option[value=""]:not([hidden]) + option[value=""][hidden]').length > 0) { select.classList.add('custom_add') swapElem(select.querySelector('option[value=""]:not([hidden])'), select.querySelector('option[value=""][hidden]')) select.value = select.value select.classList.remove('custom_add') } } function moveElements() { /* cambio posizione del logo */ let footer_logo = document.querySelectorAll('.custom_footer #footerInnerLinksSocial > a:has(> .logo)')[0] let footer_logo_a = document.createElement('a') let where_footer_logo = document.querySelectorAll('.custom_footer > #footerRowBottom')[0] footer_logo_a.href = footer_logo.href footer_logo_a.title = 'OTB Footer' footer_logo_a.style.width = 'min-content' footer_logo_a.innerHTML = footer_logo.innerHTML where_footer_logo.insertAdjacentElement("afterbegin", footer_logo_a); footer_logo.outerHTML = '' } function getPage() { var page = window.location.pathname; if (page === "/") { return "homepage"; } if (page.startsWith("/search")) { return "search"; } if (page.startsWith("/job")) { return "job"; } if (page.startsWith("/go/")) { return "category"; } return "other"; } async function observerControl() { new MutationObserver(mutationList => { Array.from(mutationList).forEach(r => { if(!r.target.id) return; if (r.target.id.startsWith('optionsFacetsDD') && !r.target.classList.contains('custom_add')) { changePlaceholders(r.target) } else if (r.target.id === 'tile-search-results-label') { changeShowingString() addImagesToTiles() } if (r.target.id === 'savesearch') console.log("%c" + "TROVATO JOB ALERT", "font-size:20px"); }); }).observe(document.body, { subtree: true, childList: true, characterData: true }) } function changeShowingString() { let fraseContainer = document.querySelector('#tile-search-results-label') let lang = 'en_US' let frase = fraseContainer.innerText if (/Showing (\d+) to (\d+) of (\d+) Jobs/g.test(frase)) { let fraseFlat if (lang === 'it_IT') { fraseFlat = /Showing (\d+) to (\d+) of (\d+) Jobs/g.exec(frase).flat() } else { fraseFlat = /Showing (\d+) to (\d+) of (\d+) Jobs/g.exec(frase).flat() } let nResults = fraseFlat[1] let nResultsPage = fraseFlat[2] let nResultsTotal = fraseFlat[3] let finalFrase if (lang === 'IT') { finalFrase = `RESULTS ${nResults}-${nResultsPage} OF ${nResultsTotal}` } else { finalFrase = `RESULTS ${nResults}-${nResultsPage} OF ${nResultsTotal}` } fraseContainer.innerText = finalFrase } } function changeLogoFbWithWeibo() { let logoContainer = document.querySelector('.social-icon.btn-facebook') let imgWeibo = document.createElement('img') imgWeibo.src = weiboLogoLink logoContainer.innerHTML = imgWeibo.outerHTML logoContainer.title = 'weibo' } function addArrowsToSelect() { let allSearchSelect = document.querySelectorAll('#content #search-wrapper>div.searchwell select') let arrowDownHTML = ` keyboard_arrow_down ` let arrowUpHTML = ` keyboard_arrow_up ` Array.from(allSearchSelect).forEach(select => { select.insertAdjacentHTML("afterend", arrowDownHTML) select.addEventListener("focus", (event) => { event.currentTarget.nextElementSibling.outerHTML = arrowUpHTML }) select.addEventListener("blur", (event) => { event.currentTarget.nextElementSibling.outerHTML = arrowDownHTML }) }) } function onMouseHoverHeaderDesktop() { let headerBackground = document.querySelector('.custom_header_background') let header = document.querySelector('#header') let logo = document.querySelector('.custom-desktop-header .custom-header-logo a > img') header.addEventListener("mouseover", () => { header.classList.add("backgroundColor_custom") //logo.src = otbLogoNeroLink }) header.addEventListener("mouseout", () => { header.classList.remove("backgroundColor_custom") //logo.src = otbLogoBiancoLink }) } function addBackToHomeButton() { let newButtonElement = document.createElement('a') newButtonElement.innerHTML = 'BACK' newButtonElement.style.cssText = 'color: var(--font-color) !important; display: flex; gap: 5px; align-items: flex-start; cursor: pointer; font-size: 19px; margin-left: 10px;width: fit-content; line-height: normal;' let herobanner = document.querySelector('#content > .inner > div.row.displayDTM[role="img"]') herobanner.insertAdjacentElement('afterend', newButtonElement) newButtonElement.addEventListener('click', () => { document.querySelector('.custom-desktop-header .custom-header-logo a>img').click() }) } function addMoreFiltersButton() { let newFacets = document.getElementById('newFacets') let newButtonElement = document.createElement('a') newButtonElement.id = 'more-filters' newButtonElement.innerText = 'MORE FILTERS' newButtonElement.style.cssText = 'cursor: pointer; border-bottom: 1px dotted black; width: fit-content;' newButtonElement.addEventListener('click', () => { newFacets.style.display = newFacets.style.display == 'none' ? 'flex' : 'none' newButtonElement.innerText = newButtonElement.innerText == 'MORE FILTERS' ? 'HIDE FILTERS' : 'MORE FILTERS' }) newFacets.insertAdjacentElement('afterend', newButtonElement) if (window.innerWidth < 768) { newFacets.style.display = 'none' } else { newButtonElement.style.display = 'none' } window.addEventListener('resize', () => { let width = window.innerWidth if (window.innerWidth < 768) { newFacets.style.display = 'none' newButtonElement.style.display = 'block' } else { newFacets.style.display = 'flex' newButtonElement.style.display = 'none' } }) } function addClearFiltersButton() { if(!document.querySelectorAll('a[role="button"].search-clear-button.btn-link').length) return; let clearButton = document.createElement('button') clearButton.id = 'clear-filters-custom' clearButton.innerText = 'CLEAR ALL FILTERS' clearButton.style.cssText = 'cursor: pointer; border-bottom: 1px dotted black; margin-top: 15px; border-top: none; border-left: none; border-right: none; width: auto; background: none;' clearButton.type = 'button' clearButton.addEventListener('click', (event) => { document.querySelectorAll('a[role="button"].search-clear-button.btn-link')[0].click() event.preventDefault() }) document.querySelectorAll('button.custom_button_search')[0]?.insertAdjacentElement('beforebegin', clearButton) } window.addEventListener("DOMContentLoaded", (event) => { console.log("%c" + "INIZIO CUSTOMIZZAZIONI", "font-size:20px"); if (addClasses()) { observerControl(); moveElements(); addImagesToTiles(); addImagesToJobTile(); addSearchEvents(); addSliderEvents(); loadSearchFilters(); addListenersToSelects(); changeLogoFbWithWeibo(); getPage() !== 'job' ? addClearFiltersButton() : null; } }); //<![CDATA[ j2w.init({ "cookiepolicy" : 3, "useSSL" : true, "isUsingSSL" : true, "isResponsive" : true, "categoryId" : 0, "siteTypeId" : 1, "ssoCompanyId" : 'otbspa', "ssoUrl" : 'https://career2.successfactors.eu', "passwordRegEx" : '^(?=.{6,20}$)(?!.*(.)\\1{3})(?=.*([\\d]|[^\\w\\d\\s]))(?=.*[A-Za-z])(?!.*[\-\\\s])', "emailRegEx" : '^(?![+])(?=([a-zA-Z0-9\\\'.+!_-])+[@]([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9.-]*[a-zA-Z0-9])[.]([a-zA-Z]){1,63}$)(?!.*[\-\\\s,])(?!.*[.]{2})', "hasATSUserID" : false, "useCASWorkflow" : true, "brand" : "", "dpcsStateValid" : true }); j2w.TC.init({ "seekConfig" : { "url" : 'https\x3A\x2F\x2Fwww.seek.com.au\x2Fapi\x2Fiam\x2Foauth2\x2Fauthorize', "id" : 'successfactors12', "advertiserid" : '' } }); $.ajaxSetup({ cache : false, headers : { "X-CSRF-Token" : "fa806d8c-8b97-4752-b83d-7a6d7138bf56" } }); //]]> //<![CDATA[ j2w.Apply.init({ jobID : 1359038657, locale : 'en_US', relocateApplyURL : '', subscribeAtApply : true, useOnPageBusinessCard : false, applyWithLinkedIn2Config : {"enabled":false,"companyId":null,"integrationContext":null,"internalId":"5079-en_US","email":""} }); //]]> //<![CDATA[ $(function() { var ctid = '869b7de7-0ff1-4585-b1bd-8a55c7dcdcda'; var referrer = ''; var landing = document.location.href; var brand = ''; $.ajax({ url: '/services/t/l' ,data: 'referrer='+ encodeURIComponent(referrer) + '&ctid=' + ctid + '&landing=' + encodeURIComponent(landing) + '&brand=' + brand ,dataType: 'json' ,cache: false ,success: function(){} }); }); //]]> //<![CDATA[ $(function() { $('input:submit,button:submit').each(function(){ var submitButton = $(this); if(submitButton.val() == '') submitButton.val(''); }); $('input, textarea').placeholder(); }); //]]> const jobAlertSpans = document.querySelectorAll("[data-testid=jobAlertSpanText]"); jobAlertSpans?.forEach((jobEl) => { jobEl.textContent = window?.jsStr?.tcjobresultscreatejobalertsdetailstext || ""; }); //<![CDATA[ var subscribeWidgetSetup = { action : 'subscribe', usingJobAlertsManager : false }; //]]> //<![CDATA[ $(function() { $('.emailsubscribe-button').click(function (e) { e.preventDefault(); var $frequency = $('.subscribe-frequency').val(); var rcmLoggedIn = false; var action = rcmLoggedIn ? 'alertCreate' : 'subscribe'; var result = j2w.Agent.validateFrequency($frequency); if (!result.length) { j2w.TC.collectForCASWorkflow({ "emailAddress": '', "action": action, "socialSrc": '', "frequency": parseFloat($frequency) }); } else { if (j2w.Args.get('isResponsive')) { $('.frequency-error-message').html(result.concat('
')); $('.frequency-error').removeClass('hidden'); } else { alert(result.join('\n')); } } }); }); //]]> //<![CDATA[ var j2w = j2w || {}; j2w.search = j2w.search || {}; j2w.search.options = { isOpen: false, facets: ["country","city","customfield1","department"], showPicklistAllLocales : false }; //]]>