{"id":2505,"date":"2026-05-26T13:29:36","date_gmt":"2026-05-26T13:29:36","guid":{"rendered":"https:\/\/millepiani.com\/travaillez-avec-nous\/"},"modified":"2026-09-24T14:30:53","modified_gmt":"2026-09-24T14:30:53","slug":"travaillez-avec-nous","status":"publish","type":"page","link":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/","title":{"rendered":"TRAVAILLEZ AVEC NOUS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2505\" class=\"elementor elementor-2505 elementor-767\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-65860d8 e-con-full e-flex e-con e-parent\" data-id=\"65860d8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8a903f4 elementor-widget elementor-widget-html\" data-id=\"8a903f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Afacad+Flux:wght@100..1000&display=swap\" rel=\"stylesheet\">\r\n\r\n<!-- Google reCAPTCHA v2 -->\r\n<script src=\"https:\/\/www.google.com\/recaptcha\/api.js\" async=\"\" defer><\/script>\r\n\r\n<div class=\"mp-career-page\">\r\n\r\n  <!-- HERO -->\r\n  <section class=\"mp-career-hero\" id=\"top\">\r\n    <div class=\"mp-career-hero-bg\"><\/div>\r\n    <div class=\"mp-career-hero-overlay\"><\/div>\r\n\r\n    <div class=\"mp-career-hero-content mp-reveal\">\r\n      <p class=\"mp-kicker\">Espace Carri\u00e8res<\/p>\r\n\r\n      <h1>Travaillez<br\/>avec nous<\/h1>\r\n\r\n      <p>\r\n  Acc\u00e9dez \u00e0 l\u2019espace Carri\u00e8res de Millepiani, remplissez votre CV en ligne\r\n et postulez pour rejoindre notre groupe.  <br><br>S\u00e9lection ouverte aux candidats et candidates de tous sexes ou n.i. conform\u00e9ment \u00e0 la loi 300\/1970, au d\u00e9cret l\u00e9gislatif 198\/2006, ainsi qu\u2019aux travailleurs et travailleuses handicap\u00e9s au sens de la loi 68\/1999. \r\n      <\/p>\r\n\r\n      <a href=\"#career-hub\" class=\"mp-outline-btn\">Envoyer la candidature<\/a>\r\n    <\/div>\r\n\r\n    <a href=\"#career-hub\" class=\"mp-scroll-arrow\" aria-label=\"Scorri alla sezione successiva\">\r\n      <span><\/span>\r\n    <\/a>\r\n  <\/section>\r\n\r\n\r\n  <!-- SEZIONE SPECIALE CANDIDATURA -->\r\n  <section class=\"mp-career-hub\" id=\"career-hub\">\r\n    <canvas class=\"mp-career-canvas\" id=\"mpCareerCanvas\" aria-hidden=\"true\"><\/canvas>\r\n\r\n    <div class=\"mp-career-bg\"><\/div>\r\n    <div class=\"mp-career-grid-bg\"><\/div>\r\n\r\n    <div class=\"mp-career-inner\">\r\n\r\n      <div class=\"mp-career-heading mp-reveal\">\r\n        <p>Espace candidatures<\/p>\r\n\r\n        <h2>\r\n  Rejoignez<br\/> notre groupe\r\n        <\/h2>\r\n\r\n        <span>\r\n  Millepiani invite les candidats \u00e0 remplir leur profil en ligne pour rejoindre\r\n le groupe. La s\u00e9lection est ouverte aux candidats et aux candidates\r\n selon les principes d\u2019\u00e9galit\u00e9 des chances. \r\n        <\/span>\r\n      <\/div>\r\n\r\n      <div class=\"mp-career-layout\">\r\n\r\n        <div class=\"mp-career-experience mp-reveal\">\r\n\r\n          <div class=\"mp-career-orbit\">\r\n            <div class=\"mp-career-orbit-core\">\r\n              <span>JOB<\/span>\r\n              <strong>Espace<br\/>candidatures<\/strong>\r\n            <\/div>\r\n\r\n            <button type=\"button\" class=\"mp-career-node is-active\" data-career-topic=\"curriculum\">\r\n              <span><\/span>\r\n  Profil en ligne\r\n            <\/button>\r\n\r\n            <button type=\"button\" class=\"mp-career-node\" data-career-topic=\"gruppo\">\r\n              <span><\/span>\r\n  Groupe Millepiani\r\n            <\/button>\r\n\r\n            <button type=\"button\" class=\"mp-career-node\" data-career-topic=\"opportunita\">\r\n              <span><\/span>\r\n  \u00c9galit\u00e9 des chances\r\n            <\/button>\r\n\r\n            <button type=\"button\" class=\"mp-career-node\" data-career-topic=\"profilo\">\r\n              <span><\/span>\r\n  Profil du candidat\r\n            <\/button>\r\n          <\/div>\r\n\r\n          <article class=\"mp-career-panel\" id=\"mpCareerPanel\">\r\n            <div class=\"mp-career-panel-number\" id=\"mpCareerNumber\">01<\/div>\r\n\r\n            <p id=\"mpCareerKicker\">Profil en ligne<\/p>\r\n\r\n            <h3 id=\"mpCareerTitle\">\r\n  Compl\u00e9tez<br\/> votre profil\r\n            <\/h3>\r\n\r\n            <div class=\"mp-career-line\"><\/div>\r\n\r\n            <div class=\"mp-career-copy\" id=\"mpCareerText\">\r\n              <p>\r\n  L\u2019espace Carri\u00e8res permet d\u2019envoyer sa candidature en remplissant\r\n son profil en ligne.\r\n              <\/p>\r\n              <p>\r\n  Saisissez vos donn\u00e9es personnelles, vos coordonn\u00e9es, vos exp\u00e9riences, vos comp\u00e9tences et joignez\r\n votre CV pour vous pr\u00e9senter de mani\u00e8re compl\u00e8te.\r\n              <\/p>\r\n            <\/div>\r\n\r\n            <div class=\"mp-career-tags\" id=\"mpCareerTags\">\r\n              <span>CV en ligne<\/span>\r\n              <span>Candidature<\/span>\r\n              <span>Profil complet<\/span>\r\n            <\/div>\r\n          <\/article>\r\n\r\n        <\/div>\r\n\r\n\r\n        <!-- FORM CANDIDATURA -->\r\n        <div class=\"mp-career-form-card mp-reveal\">\r\n\r\n          <div class=\"mp-career-form-head\">\r\n            <p>Candidature spontan\u00e9e<\/p>\r\n\r\n            <h3>\r\n  Envoyez votre<br\/> curriculum\r\n            <\/h3>\r\n\r\n            <span>\r\n  Remplissez les champs requis et joignez votre CV. Ce formulaire est con\u00e7u\r\n pour recueillir les informations essentielles d\u2019une candidature professionnelle. \r\n            <\/span>\r\n          <\/div>\r\n\r\n          <form class=\"mp-career-form\" id=\"mpCareerForm\" action=\"\/wp-admin\/admin-post.php\" method=\"POST\" enctype=\"multipart\/form-data\">\r\n\r\n            <input type=\"hidden\" name=\"action\" value=\"mp_invia_candidatura\">\r\n\r\n            <div class=\"mp-career-status\" id=\"mpCareerStatus\" aria-live=\"polite\"><\/div>\r\n\r\n            <p class=\"mp-career-required-note\">\r\n  Les champs marqu\u00e9s d\u2019un <strong>*<\/strong> sont obligatoires.\r\n            <\/p>\r\n\r\n            <div class=\"mp-career-grid\">\r\n\r\n              <div class=\"mp-career-field\">\r\n                <input type=\"text\" name=\"first_name\" id=\"careerFirstName\" required=\"\" autocomplete=\"given-name\">\r\n                <label for=\"careerFirstName\">Pr\u00e9nom *<\/label>\r\n              <\/div>\r\n\r\n              <div class=\"mp-career-field\">\r\n                <input type=\"text\" name=\"last_name\" id=\"careerLastName\" required=\"\" autocomplete=\"family-name\">\r\n                <label for=\"careerLastName\">Nom *<\/label>\r\n              <\/div>\r\n\r\n              <div class=\"mp-career-field\">\r\n                <input type=\"email\" name=\"email\" id=\"careerEmail\" required=\"\" autocomplete=\"email\">\r\n                <label for=\"careerEmail\">E-mail *<\/label>\r\n              <\/div>\r\n\r\n              <div class=\"mp-career-field\">\r\n                <input type=\"tel\" name=\"phone\" id=\"careerPhone\" required=\"\" autocomplete=\"tel\">\r\n                <label for=\"careerPhone\">T\u00e9l\u00e9phone *<\/label>\r\n              <\/div>\r\n\r\n              <div class=\"mp-career-field\">\r\n                <input type=\"text\" name=\"province\" id=\"careerProvince\" autocomplete=\"address-level2\">\r\n                <label for=\"careerProvince\">Province<\/label>\r\n              <\/div>\r\n\r\n              <div class=\"mp-career-field\">\r\n                <select name=\"area\" id=\"careerArea\" required=\"\">\r\n                  <option value=\"\" selected disabled><\/option>\r\n                  <option value=\"Tecnico \/ manutenzione\">Technique \/ maintenance<\/option>\r\n                  <option value=\"Commerciale\">Commercial<\/option>\r\n                  <option value=\"Amministrazione\">Administration<\/option>\r\n                  <option value=\"Progettazione\">Conception<\/option>\r\n                  <option value=\"Produzione\">Production<\/option>\r\n                  <option value=\"Altro\">Autre<\/option>\r\n                <\/select>\r\n                <label for=\"careerArea\">Domaine d\u2019int\u00e9r\u00eat *<\/label>\r\n              <\/div>\r\n\r\n              <div class=\"mp-career-field\">\r\n                <select name=\"experience\" id=\"careerExperience\" required=\"\">\r\n                  <option value=\"\" selected disabled><\/option>\r\n                  <option value=\"Prima esperienza\">Premi\u00e8re exp\u00e9rience<\/option>\r\n                  <option value=\"1-3 anni\">1-3 ans<\/option>\r\n                  <option value=\"3-5 anni\">3-5 ans<\/option>\r\n                  <option value=\"Oltre 5 anni\">Plus de 5 ans<\/option>\r\n                <\/select>\r\n                <label for=\"careerExperience\">Exp\u00e9rience *<\/label>\r\n              <\/div>\r\n\r\n              <div class=\"mp-career-field\">\r\n                <input type=\"url\" name=\"linkedin\" id=\"careerLinkedin\" autocomplete=\"url\">\r\n                <label for=\"careerLinkedin\">LinkedIn \/ Portfolio<\/label>\r\n              <\/div>\r\n\r\n            <\/div>\r\n\r\n            <div class=\"mp-career-field mp-career-full\">\r\n              <textarea name=\"message\" id=\"careerMessage\" rows=\"4\" required=\"\"><\/textarea>\r\n              <label for=\"careerMessage\">Pr\u00e9sentation *<\/label>\r\n            <\/div>\r\n\r\n            <div class=\"mp-career-upload-note\">\r\n  Joindre le CV au format PDF, DOC ou DOCX. Taille maximale autoris\u00e9e : 10 Mo. *\r\n            <\/div>\r\n\r\n            <label class=\"mp-career-upload\" for=\"careerCv\">\r\n              <input type=\"file\" name=\"cv\" id=\"careerCv\" accept=\".pdf,.doc,.docx\" required=\"\">\r\n              <span class=\"mp-career-upload-icon\">\u21a5<\/span>\r\n              <span class=\"mp-career-upload-text\">T\u00e9l\u00e9charger le CV *<\/span>\r\n              <span class=\"mp-career-upload-file\" id=\"careerCvName\"><\/span>\r\n            <\/label>\r\n\r\n            <label class=\"mp-career-consent\">\r\n              <input type=\"checkbox\" name=\"privacy\" required=\"\">\r\n              <span>\r\n  Je d\u00e9clare avoir lu l\u2019\r\n                <a href=\"https:\/\/millepiani.com\/privacy-policy\/\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n politique de confidentialit\u00e9\r\n                <\/a>\r\n et j\u2019autorise le traitement de mes donn\u00e9es personnelles \u00e0 des fins de recrutement. *\r\n              <\/span>\r\n            <\/label>\r\n\r\n            <!-- reCAPTCHA v2 -->\r\n            <div class=\"mp-career-recaptcha\">\r\n              <div class=\"g-recaptcha\" data-sitekey=\"6LcesxMtAAAAAOolGMoTWQRnkFxaajWY2qeLtHdn\"><\/div>\r\n            <\/div>\r\n\r\n            <!-- Campo invisibile anti-bot -->\r\n            <div class=\"mp-career-hp\" aria-hidden=\"true\">\r\n              <label for=\"careerWebsite\">Site web<\/label>\r\n              <input type=\"text\" name=\"website\" id=\"careerWebsite\" tabindex=\"-1\" autocomplete=\"off\">\r\n            <\/div>\r\n\r\n            <button type=\"submit\" class=\"mp-career-submit\">\r\n              <span>Envoyer la candidature<\/span>\r\n            <\/button>\r\n\r\n          <\/form>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/section>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ba44c1 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-shortcode\" data-id=\"6ba44c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><script>document.documentElement.classList.add(\"mp-js-ready\");\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Decode HTML entities\r\n  |--------------------------------------------------------------------------\r\n  | Serve per evitare che WordPress mostri testi come L&#8217;area\r\n  | invece di L\u2019area.\r\n  *\/\r\n\r\n  function decodeHtmlEntities(text) {\r\n    const textarea = document.createElement(\"textarea\");\r\n    textarea.innerHTML = text;\r\n    return textarea.value;\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Reveal animation\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const revealItems = document.querySelectorAll(\".mp-reveal\");\r\n\r\n  if (\"IntersectionObserver\" in window) {\r\n    const revealObserver = new IntersectionObserver(function (entries, observer) {\r\n      entries.forEach(function (entry) {\r\n        if (!entry.isIntersecting) return;\r\n\r\n        entry.target.classList.add(\"is-visible\");\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.16\r\n    });\r\n\r\n    revealItems.forEach(function (item) {\r\n      revealObserver.observe(item);\r\n    });\r\n  } else {\r\n    revealItems.forEach(function (item) {\r\n      item.classList.add(\"is-visible\");\r\n    });\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Smooth scroll\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  document.querySelectorAll('a[href^=\"#\"]').forEach(function (anchor) {\r\n    anchor.addEventListener(\"click\", function (event) {\r\n      const targetId = anchor.getAttribute(\"href\");\r\n\r\n      if (!targetId || targetId === \"#\") return;\r\n\r\n      const target = document.querySelector(targetId);\r\n\r\n      if (!target) return;\r\n\r\n      event.preventDefault();\r\n\r\n      target.scrollIntoView({\r\n        behavior: \"smooth\",\r\n        block: \"start\"\r\n      });\r\n    });\r\n  });\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Language\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const pageLang = (document.documentElement.lang || \"it\")\r\n    .toLowerCase()\r\n    .split(\"-\")[0];\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Career translations\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const careerTranslations = {\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | ITALIANO\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    it: {\r\n      topics: {\r\n        curriculum: {\r\n          number: \"01\",\r\n          kicker: \"Curriculum online\",\r\n          title: \"Compila<br>il tuo profilo\",\r\n          paragraphs: [\r\n            \"L\u2019area Job consente di inviare la propria candidatura attraverso la compilazione del curriculum online.\",\r\n            \"Inserisci dati personali, contatti, esperienze, competenze e allega il tuo CV per presentarti in modo completo.\"\r\n          ],\r\n          tags: [\r\n            \"CV online\",\r\n            \"Candidatura\",\r\n            \"Profilo completo\"\r\n          ]\r\n        },\r\n\r\n        gruppo: {\r\n          number: \"02\",\r\n          kicker: \"Gruppo Millepiani\",\r\n          title: \"Entra<br>nel gruppo\",\r\n          paragraphs: [\r\n            \"La candidatura \u00e8 pensata per chi desidera entrare a far parte del gruppo Millepiani.\",\r\n            \"Il modulo consente di presentare il proprio percorso e l\u2019area professionale di interesse.\"\r\n          ],\r\n          tags: [\r\n            \"Gruppo\",\r\n            \"Percorso\",\r\n            \"Crescita\"\r\n          ]\r\n        },\r\n\r\n        opportunita: {\r\n          number: \"03\",\r\n          kicker: \"Pari opportunit\u00e0\",\r\n          title: \"Selezione<br>accessibile\",\r\n          paragraphs: [\r\n            \"La selezione \u00e8 accessibile ai candidati e alle candidate, secondo principi di pari opportunit\u00e0.\",\r\n            \"La candidatura viene costruita per valorizzare competenze, disponibilit\u00e0 e motivazione.\"\r\n          ],\r\n          tags: [\r\n            \"Pari opportunit\u00e0\",\r\n            \"Inclusione\",\r\n            \"Selezione\"\r\n          ]\r\n        },\r\n\r\n        profilo: {\r\n          number: \"04\",\r\n          kicker: \"Profilo candidato\",\r\n          title: \"Racconta<br>chi sei\",\r\n          paragraphs: [\r\n            \"Una candidatura efficace deve includere dati di contatto aggiornati, area di interesse, esperienza e una breve presentazione.\",\r\n            \"Il curriculum allegato permette di approfondire formazione, competenze tecniche, esperienze e disponibilit\u00e0.\"\r\n          ],\r\n          tags: [\r\n            \"Esperienza\",\r\n            \"Competenze\",\r\n            \"Motivazione\"\r\n          ]\r\n        }\r\n      },\r\n\r\n      messages: {\r\n        success: \"Candidatura inviata correttamente. Grazie per averci contattato.\",\r\n        genericError: \"Si \u00e8 verificato un errore durante l\u2019invio. Controlla i campi e riprova.\",\r\n        captchaError: \"Verifica reCAPTCHA non completata o non valida. Riprova.\",\r\n        invalidFormat: \"Formato non valido. Puoi allegare solo PDF, DOC o DOCX.\",\r\n        fileTooLarge: \"Il file supera il limite massimo di 10MB.\",\r\n        requiredFields: \"Compila tutti i campi obbligatori e allega il tuo curriculum.\",\r\n        captchaRequired: \"Completa la verifica reCAPTCHA prima di inviare la candidatura.\",\r\n        sending: \"Invio candidatura in corso...\",\r\n        submitLoading: \"Invio in corso...\"\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | ENGLISH\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    en: {\r\n      topics: {\r\n        curriculum: {\r\n          number: \"01\",\r\n          kicker: \"Online CV\",\r\n          title: \"Complete<br>your profile\",\r\n          paragraphs: [\r\n            \"The Job area allows you to submit your application by completing your online CV.\",\r\n            \"Enter your personal details, contact information, experience and skills, and attach your CV to present a complete profile.\"\r\n          ],\r\n          tags: [\r\n            \"Online CV\",\r\n            \"Application\",\r\n            \"Complete profile\"\r\n          ]\r\n        },\r\n\r\n        gruppo: {\r\n          number: \"02\",\r\n          kicker: \"Millepiani Group\",\r\n          title: \"Join<br>our group\",\r\n          paragraphs: [\r\n            \"The application process is designed for those who would like to become part of the Millepiani Group.\",\r\n            \"The form allows you to present your professional background and indicate the area in which you are interested.\"\r\n          ],\r\n          tags: [\r\n            \"Group\",\r\n            \"Career path\",\r\n            \"Growth\"\r\n          ]\r\n        },\r\n\r\n        opportunita: {\r\n          number: \"03\",\r\n          kicker: \"Equal opportunities\",\r\n          title: \"Accessible<br>selection process\",\r\n          paragraphs: [\r\n            \"The selection process is open to all candidates in accordance with equal opportunity principles.\",\r\n            \"The application is designed to highlight skills, availability and motivation.\"\r\n          ],\r\n          tags: [\r\n            \"Equal opportunities\",\r\n            \"Inclusion\",\r\n            \"Selection\"\r\n          ]\r\n        },\r\n\r\n        profilo: {\r\n          number: \"04\",\r\n          kicker: \"Candidate profile\",\r\n          title: \"Tell us<br>who you are\",\r\n          paragraphs: [\r\n            \"An effective application should include up-to-date contact details, your area of interest, professional experience and a brief introduction.\",\r\n            \"Your attached CV provides further information about your education, technical skills, experience and availability.\"\r\n          ],\r\n          tags: [\r\n            \"Experience\",\r\n            \"Skills\",\r\n            \"Motivation\"\r\n          ]\r\n        }\r\n      },\r\n\r\n      messages: {\r\n        success: \"Your application has been submitted successfully. Thank you for contacting us.\",\r\n        genericError: \"An error occurred while submitting your application. Please check the fields and try again.\",\r\n        captchaError: \"The reCAPTCHA verification was not completed or is invalid. Please try again.\",\r\n        invalidFormat: \"Invalid file format. You can only attach PDF, DOC or DOCX files.\",\r\n        fileTooLarge: \"The file exceeds the maximum size limit of 10MB.\",\r\n        requiredFields: \"Please complete all required fields and attach your CV.\",\r\n        captchaRequired: \"Please complete the reCAPTCHA verification before submitting your application.\",\r\n        sending: \"Submitting your application...\",\r\n        submitLoading: \"Sending...\"\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | FRAN\u00c7AIS\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    fr: {\r\n      topics: {\r\n        curriculum: {\r\n          number: \"01\",\r\n          kicker: \"CV en ligne\",\r\n          title: \"Compl\u00e9tez<br>votre profil\",\r\n          paragraphs: [\r\n            \"L\u2019espace Emploi vous permet d\u2019envoyer votre candidature en remplissant votre CV en ligne.\",\r\n            \"Renseignez vos donn\u00e9es personnelles, vos coordonn\u00e9es, vos exp\u00e9riences et vos comp\u00e9tences, puis joignez votre CV afin de pr\u00e9senter un profil complet.\"\r\n          ],\r\n          tags: [\r\n            \"CV en ligne\",\r\n            \"Candidature\",\r\n            \"Profil complet\"\r\n          ]\r\n        },\r\n\r\n        gruppo: {\r\n          number: \"02\",\r\n          kicker: \"Groupe Millepiani\",\r\n          title: \"Rejoignez<br>le groupe\",\r\n          paragraphs: [\r\n            \"La candidature s\u2019adresse \u00e0 celles et ceux qui souhaitent rejoindre le groupe Millepiani.\",\r\n            \"Le formulaire vous permet de pr\u00e9senter votre parcours professionnel et le domaine qui vous int\u00e9resse.\"\r\n          ],\r\n          tags: [\r\n            \"Groupe\",\r\n            \"Parcours\",\r\n            \"\u00c9volution\"\r\n          ]\r\n        },\r\n\r\n        opportunita: {\r\n          number: \"03\",\r\n          kicker: \"\u00c9galit\u00e9 des chances\",\r\n          title: \"S\u00e9lection<br>accessible\",\r\n          paragraphs: [\r\n            \"Le processus de s\u00e9lection est ouvert \u00e0 toutes les candidates et \u00e0 tous les candidats conform\u00e9ment aux principes d\u2019\u00e9galit\u00e9 des chances.\",\r\n            \"La candidature est con\u00e7ue pour mettre en valeur les comp\u00e9tences, la disponibilit\u00e9 et la motivation.\"\r\n          ],\r\n          tags: [\r\n            \"\u00c9galit\u00e9 des chances\",\r\n            \"Inclusion\",\r\n            \"S\u00e9lection\"\r\n          ]\r\n        },\r\n\r\n        profilo: {\r\n          number: \"04\",\r\n          kicker: \"Profil du candidat\",\r\n          title: \"Pr\u00e9sentez-nous<br>votre profil\",\r\n          paragraphs: [\r\n            \"Une candidature efficace doit comprendre des coordonn\u00e9es \u00e0 jour, le domaine qui vous int\u00e9resse, votre exp\u00e9rience ainsi qu\u2019une courte pr\u00e9sentation.\",\r\n            \"Le CV joint permet de d\u00e9tailler votre formation, vos comp\u00e9tences techniques, vos exp\u00e9riences et vos disponibilit\u00e9s.\"\r\n          ],\r\n          tags: [\r\n            \"Exp\u00e9rience\",\r\n            \"Comp\u00e9tences\",\r\n            \"Motivation\"\r\n          ]\r\n        }\r\n      },\r\n\r\n      messages: {\r\n        success: \"Votre candidature a \u00e9t\u00e9 envoy\u00e9e avec succ\u00e8s. Merci de nous avoir contact\u00e9s.\",\r\n        genericError: \"Une erreur s\u2019est produite lors de l\u2019envoi. V\u00e9rifiez les champs et r\u00e9essayez.\",\r\n        captchaError: \"La v\u00e9rification reCAPTCHA n\u2019a pas \u00e9t\u00e9 effectu\u00e9e ou n\u2019est pas valide. Veuillez r\u00e9essayer.\",\r\n        invalidFormat: \"Format de fichier non valide. Vous pouvez uniquement joindre des fichiers PDF, DOC ou DOCX.\",\r\n        fileTooLarge: \"Le fichier d\u00e9passe la taille maximale autoris\u00e9e de 10 Mo.\",\r\n        requiredFields: \"Veuillez remplir tous les champs obligatoires et joindre votre CV.\",\r\n        captchaRequired: \"Veuillez effectuer la v\u00e9rification reCAPTCHA avant d\u2019envoyer votre candidature.\",\r\n        sending: \"Envoi de votre candidature en cours...\",\r\n        submitLoading: \"Envoi en cours...\"\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | \u0420\u0423\u0421\u0421\u041a\u0418\u0419\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    ru: {\r\n      topics: {\r\n        curriculum: {\r\n          number: \"01\",\r\n          kicker: \"\u0420\u0435\u0437\u044e\u043c\u0435 \u043e\u043d\u043b\u0430\u0439\u043d\",\r\n          title: \"\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435<br>\u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c\",\r\n          paragraphs: [\r\n            \"\u0420\u0430\u0437\u0434\u0435\u043b \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443, \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0432 \u043e\u043d\u043b\u0430\u0439\u043d-\u0440\u0435\u0437\u044e\u043c\u0435.\",\r\n            \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043d\u0430\u0432\u044b\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u0438\u0442\u0435 \u0441\u0432\u043e\u0451 \u0440\u0435\u0437\u044e\u043c\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0435\u0431\u0435.\"\r\n          ],\r\n          tags: [\r\n            \"\u0420\u0435\u0437\u044e\u043c\u0435 \u043e\u043d\u043b\u0430\u0439\u043d\",\r\n            \"\u0417\u0430\u044f\u0432\u043a\u0430\",\r\n            \"\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c\"\r\n          ]\r\n        },\r\n\r\n        gruppo: {\r\n          number: \"02\",\r\n          kicker: \"\u0413\u0440\u0443\u043f\u043f\u0430 Millepiani\",\r\n          title: \"\u0421\u0442\u0430\u043d\u044c\u0442\u0435 \u0447\u0430\u0441\u0442\u044c\u044e<br>\u043d\u0430\u0448\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b\",\r\n          paragraphs: [\r\n            \"\u0424\u043e\u0440\u043c\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c\u044e \u0433\u0440\u0443\u043f\u043f\u044b Millepiani.\",\r\n            \"\u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0441\u0432\u043e\u0451\u043c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b.\"\r\n          ],\r\n          tags: [\r\n            \"\u0413\u0440\u0443\u043f\u043f\u0430\",\r\n            \"\u041a\u0430\u0440\u044c\u0435\u0440\u0430\",\r\n            \"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435\"\r\n          ]\r\n        },\r\n\r\n        opportunita: {\r\n          number: \"03\",\r\n          kicker: \"\u0420\u0430\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\",\r\n          title: \"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439<br>\u043e\u0442\u0431\u043e\u0440 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432\",\r\n          paragraphs: [\r\n            \"\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0442\u0431\u043e\u0440\u0430 \u043e\u0442\u043a\u0440\u044b\u0442 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 \u0440\u0430\u0432\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439.\",\r\n            \"\u0417\u0430\u044f\u0432\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c \u0432\u0430\u0448\u0438 \u043d\u0430\u0432\u044b\u043a\u0438, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0438 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044e.\"\r\n          ],\r\n          tags: [\r\n            \"\u0420\u0430\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\",\r\n            \"\u0418\u043d\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u043e\u0441\u0442\u044c\",\r\n            \"\u041e\u0442\u0431\u043e\u0440\"\r\n          ]\r\n        },\r\n\r\n        profilo: {\r\n          number: \"04\",\r\n          kicker: \"\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430\",\r\n          title: \"\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0438\u0442\u0435<br>\u043e \u0441\u0435\u0431\u0435\",\r\n          paragraphs: [\r\n            \"\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0437\u0430\u044f\u0432\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0438 \u043a\u0440\u0430\u0442\u043a\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0435\u0431\u0435.\",\r\n            \"\u041f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0451\u043d\u043d\u043e\u0435 \u0440\u0435\u0437\u044e\u043c\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438, \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043d\u0430\u0432\u044b\u043a\u0430\u0445, \u043e\u043f\u044b\u0442\u0435 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438.\"\r\n          ],\r\n          tags: [\r\n            \"\u041e\u043f\u044b\u0442\",\r\n            \"\u041d\u0430\u0432\u044b\u043a\u0438\",\r\n            \"\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f\"\r\n          ]\r\n        }\r\n      },\r\n\r\n      messages: {\r\n        success: \"\u0412\u0430\u0448\u0430 \u0437\u0430\u044f\u0432\u043a\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u043c \u0437\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435.\",\r\n        genericError: \"\u041f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0437\u0430\u044f\u0432\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.\",\r\n        captchaError: \"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 reCAPTCHA \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u0438\u043b\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.\",\r\n        invalidFormat: \"\u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0444\u0430\u0439\u043b\u0430. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u044b PDF, DOC \u0438\u043b\u0438 DOCX.\",\r\n        fileTooLarge: \"\u0420\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 10 \u041c\u0411.\",\r\n        requiredFields: \"\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u0438\u0442\u0435 \u0441\u0432\u043e\u0451 \u0440\u0435\u0437\u044e\u043c\u0435.\",\r\n        captchaRequired: \"\u041f\u0440\u043e\u0439\u0434\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 reCAPTCHA \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0437\u0430\u044f\u0432\u043a\u0438.\",\r\n        sending: \"\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u044f\u0432\u043a\u0438...\",\r\n        submitLoading: \"\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430...\"\r\n      }\r\n    }\r\n  };\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Active language data\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const activeCareerTranslation =\r\n    careerTranslations[pageLang] ||\r\n    careerTranslations.it;\r\n\r\n  const careerTopics = activeCareerTranslation.topics;\r\n  const careerMessages = activeCareerTranslation.messages;\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Career interactive panel\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const careerButtons = document.querySelectorAll(\"[data-career-topic]\");\r\n  const careerPanel = document.querySelector(\"#mpCareerPanel\");\r\n  const careerNumber = document.querySelector(\"#mpCareerNumber\");\r\n  const careerKicker = document.querySelector(\"#mpCareerKicker\");\r\n  const careerTitle = document.querySelector(\"#mpCareerTitle\");\r\n  const careerText = document.querySelector(\"#mpCareerText\");\r\n  const careerTags = document.querySelector(\"#mpCareerTags\");\r\n\r\n\r\n  function animateCareerPanel() {\r\n    if (!careerPanel) return;\r\n\r\n    careerPanel.animate([\r\n      {\r\n        opacity: 0.45,\r\n        transform: \"translateY(18px) scale(0.985)\"\r\n      },\r\n      {\r\n        opacity: 1,\r\n        transform: \"translateY(0) scale(1)\"\r\n      }\r\n    ], {\r\n      duration: 520,\r\n      easing: \"cubic-bezier(0.22, 1, 0.36, 1)\"\r\n    });\r\n  }\r\n\r\n\r\n  function setCareerTopic(topicKey) {\r\n    const topic = careerTopics[topicKey];\r\n\r\n    if (!topic) return;\r\n\r\n    if (careerNumber) {\r\n      careerNumber.textContent =\r\n        decodeHtmlEntities(topic.number);\r\n    }\r\n\r\n    if (careerKicker) {\r\n      careerKicker.textContent =\r\n        decodeHtmlEntities(topic.kicker);\r\n    }\r\n\r\n    if (careerTitle) {\r\n      careerTitle.innerHTML =\r\n        decodeHtmlEntities(topic.title);\r\n    }\r\n\r\n    if (careerText) {\r\n      careerText.innerHTML = \"\";\r\n\r\n      topic.paragraphs.forEach(function (paragraph) {\r\n        const p = document.createElement(\"p\");\r\n\r\n        p.textContent =\r\n          decodeHtmlEntities(paragraph);\r\n\r\n        careerText.appendChild(p);\r\n      });\r\n    }\r\n\r\n    if (careerTags) {\r\n      careerTags.innerHTML = \"\";\r\n\r\n      topic.tags.forEach(function (tag) {\r\n        const span =\r\n          document.createElement(\"span\");\r\n\r\n        span.textContent =\r\n          decodeHtmlEntities(tag);\r\n\r\n        careerTags.appendChild(span);\r\n      });\r\n    }\r\n\r\n    careerButtons.forEach(function (button) {\r\n      button.classList.toggle(\r\n        \"is-active\",\r\n        button.getAttribute(\"data-career-topic\") === topicKey\r\n      );\r\n    });\r\n\r\n    animateCareerPanel();\r\n  }\r\n\r\n\r\n  careerButtons.forEach(function (button) {\r\n    button.addEventListener(\"click\", function () {\r\n      setCareerTopic(\r\n        button.getAttribute(\"data-career-topic\")\r\n      );\r\n    });\r\n  });\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Initial career topic\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  setCareerTopic(\"curriculum\");\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Career form UI\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const careerForm =\r\n    document.querySelector(\"#mpCareerForm\");\r\n\r\n  const careerStatus =\r\n    document.querySelector(\"#mpCareerStatus\");\r\n\r\n  const careerCv =\r\n    document.querySelector(\"#careerCv\");\r\n\r\n  const careerCvName =\r\n    document.querySelector(\"#careerCvName\");\r\n\r\n  const careerSubmit =\r\n    careerForm\r\n      ? careerForm.querySelector(\".mp-career-submit\")\r\n      : null;\r\n\r\n\r\n  function setCareerStatus(message, type) {\r\n    if (!careerStatus) return;\r\n\r\n    careerStatus.textContent =\r\n      decodeHtmlEntities(message);\r\n\r\n    careerStatus.className =\r\n      \"mp-career-status is-visible\";\r\n\r\n    if (type === \"success\") {\r\n      careerStatus.classList.add(\"is-success\");\r\n    }\r\n\r\n    if (type === \"error\") {\r\n      careerStatus.classList.add(\"is-error\");\r\n    }\r\n  }\r\n\r\n\r\n  function clearCareerStatus() {\r\n    if (!careerStatus) return;\r\n\r\n    careerStatus.textContent = \"\";\r\n    careerStatus.className = \"mp-career-status\";\r\n  }\r\n\r\n\r\n  function updateCareerLabels() {\r\n    if (!careerForm) return;\r\n\r\n    careerForm\r\n      .querySelectorAll(\".mp-career-field\")\r\n      .forEach(function (field) {\r\n\r\n        const input =\r\n          field.querySelector(\r\n            \"input, textarea, select\"\r\n          );\r\n\r\n        if (!input) return;\r\n\r\n        field.classList.toggle(\r\n          \"is-filled\",\r\n          input.value &&\r\n          input.value.trim() !== \"\"\r\n        );\r\n      });\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Status from URL\r\n  |--------------------------------------------------------------------------\r\n  |\r\n  | I valori \"inviata\", \"errore\" e \"captcha\" NON vengono tradotti.\r\n  | Sono valori tecnici usati dal redirect PHP\/WordPress.\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function showStatusFromUrl() {\r\n    const params =\r\n      new URLSearchParams(window.location.search);\r\n\r\n    const candidaturaStatus =\r\n      params.get(\"candidatura\");\r\n\r\n    if (candidaturaStatus === \"inviata\") {\r\n      setCareerStatus(\r\n        careerMessages.success,\r\n        \"success\"\r\n      );\r\n    }\r\n\r\n    if (candidaturaStatus === \"errore\") {\r\n      setCareerStatus(\r\n        careerMessages.genericError,\r\n        \"error\"\r\n      );\r\n    }\r\n\r\n    if (candidaturaStatus === \"captcha\") {\r\n      setCareerStatus(\r\n        careerMessages.captchaError,\r\n        \"error\"\r\n      );\r\n    }\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Career form\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  if (careerForm) {\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Inputs\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    careerForm\r\n      .querySelectorAll(\"input, textarea\")\r\n      .forEach(function (input) {\r\n\r\n        if (\r\n          input.type !== \"file\" &&\r\n          input.type !== \"checkbox\"\r\n        ) {\r\n          input.setAttribute(\r\n            \"placeholder\",\r\n            \" \"\r\n          );\r\n        }\r\n\r\n        input.addEventListener(\r\n          \"input\",\r\n          updateCareerLabels\r\n        );\r\n\r\n        input.addEventListener(\r\n          \"blur\",\r\n          updateCareerLabels\r\n        );\r\n      });\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Select\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    careerForm\r\n      .querySelectorAll(\"select\")\r\n      .forEach(function (select) {\r\n\r\n        select.addEventListener(\r\n          \"change\",\r\n          updateCareerLabels\r\n        );\r\n\r\n        select.addEventListener(\r\n          \"blur\",\r\n          updateCareerLabels\r\n        );\r\n      });\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Initial form state\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    updateCareerLabels();\r\n    showStatusFromUrl();\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | CV upload\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    if (careerCv && careerCvName) {\r\n      careerCv.addEventListener(\r\n        \"change\",\r\n        function () {\r\n\r\n          const file =\r\n            careerCv.files[0];\r\n\r\n          if (!file) {\r\n            careerCvName.textContent = \"\";\r\n            return;\r\n          }\r\n\r\n          const maxSize =\r\n            10 * 1024 * 1024;\r\n\r\n          const allowedExtensions = [\r\n            \"pdf\",\r\n            \"doc\",\r\n            \"docx\"\r\n          ];\r\n\r\n          const fileExtension =\r\n            file.name\r\n              .split(\".\")\r\n              .pop()\r\n              .toLowerCase();\r\n\r\n\r\n          \/*\r\n          |--------------------------------------------------------------------------\r\n          | File extension validation\r\n          |--------------------------------------------------------------------------\r\n          *\/\r\n\r\n          if (\r\n            !allowedExtensions.includes(\r\n              fileExtension\r\n            )\r\n          ) {\r\n            careerCv.value = \"\";\r\n            careerCvName.textContent = \"\";\r\n\r\n            setCareerStatus(\r\n              careerMessages.invalidFormat,\r\n              \"error\"\r\n            );\r\n\r\n            return;\r\n          }\r\n\r\n\r\n          \/*\r\n          |--------------------------------------------------------------------------\r\n          | File size validation\r\n          |--------------------------------------------------------------------------\r\n          *\/\r\n\r\n          if (file.size > maxSize) {\r\n            careerCv.value = \"\";\r\n            careerCvName.textContent = \"\";\r\n\r\n            setCareerStatus(\r\n              careerMessages.fileTooLarge,\r\n              \"error\"\r\n            );\r\n\r\n            return;\r\n          }\r\n\r\n\r\n          \/*\r\n          |--------------------------------------------------------------------------\r\n          | Valid file\r\n          |--------------------------------------------------------------------------\r\n          *\/\r\n\r\n          careerCvName.textContent =\r\n            file.name;\r\n\r\n          clearCareerStatus();\r\n        }\r\n      );\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Form submit\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    careerForm.addEventListener(\r\n      \"submit\",\r\n      function (event) {\r\n\r\n        clearCareerStatus();\r\n\r\n\r\n        \/*\r\n        |--------------------------------------------------------------------------\r\n        | HTML validation\r\n        |--------------------------------------------------------------------------\r\n        *\/\r\n\r\n        if (!careerForm.checkValidity()) {\r\n          event.preventDefault();\r\n\r\n          setCareerStatus(\r\n            careerMessages.requiredFields,\r\n            \"error\"\r\n          );\r\n\r\n          careerForm.reportValidity();\r\n\r\n          return;\r\n        }\r\n\r\n\r\n        \/*\r\n        |--------------------------------------------------------------------------\r\n        | reCAPTCHA validation\r\n        |--------------------------------------------------------------------------\r\n        *\/\r\n\r\n        if (\r\n          typeof grecaptcha !== \"undefined\" &&\r\n          grecaptcha.getResponse().length === 0\r\n        ) {\r\n          event.preventDefault();\r\n\r\n          setCareerStatus(\r\n            careerMessages.captchaRequired,\r\n            \"error\"\r\n          );\r\n\r\n          return;\r\n        }\r\n\r\n\r\n        \/*\r\n        |--------------------------------------------------------------------------\r\n        | Loading state\r\n        |--------------------------------------------------------------------------\r\n        *\/\r\n\r\n        if (careerSubmit) {\r\n          careerSubmit.disabled = true;\r\n\r\n          careerSubmit.classList.add(\r\n            \"is-loading\"\r\n          );\r\n\r\n          const submitText =\r\n            careerSubmit.querySelector(\"span\");\r\n\r\n          if (submitText) {\r\n            submitText.textContent =\r\n              careerMessages.submitLoading;\r\n          }\r\n        }\r\n\r\n\r\n        \/*\r\n        |--------------------------------------------------------------------------\r\n        | Sending status\r\n        |--------------------------------------------------------------------------\r\n        *\/\r\n\r\n        setCareerStatus(\r\n          careerMessages.sending,\r\n          \"success\"\r\n        );\r\n\r\n\r\n        \/*\r\n        Non usiamo event.preventDefault().\r\n        Il form deve essere inviato davvero a \/wp-admin\/admin-post.php\r\n        per attivare lo snippet PHP di WPCode.\r\n        *\/\r\n      }\r\n    );\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Background canvas\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const canvas =\r\n    document.querySelector(\"#mpCareerCanvas\");\r\n\r\n  const section =\r\n    document.querySelector(\".mp-career-hub\");\r\n\r\n  const ctx =\r\n    canvas\r\n      ? canvas.getContext(\"2d\")\r\n      : null;\r\n\r\n  let width = 0;\r\n  let height = 0;\r\n\r\n  let dpr =\r\n    Math.min(\r\n      window.devicePixelRatio || 1,\r\n      2\r\n    );\r\n\r\n  let particles = [];\r\n  let lines = [];\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Resize canvas\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function resizeCanvas() {\r\n    if (\r\n      !canvas ||\r\n      !ctx ||\r\n      !section\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    const rect =\r\n      section.getBoundingClientRect();\r\n\r\n    width =\r\n      Math.max(\r\n        1,\r\n        rect.width\r\n      );\r\n\r\n    height =\r\n      Math.max(\r\n        1,\r\n        rect.height\r\n      );\r\n\r\n    dpr =\r\n      Math.min(\r\n        window.devicePixelRatio || 1,\r\n        2\r\n      );\r\n\r\n    canvas.width =\r\n      Math.floor(\r\n        width * dpr\r\n      );\r\n\r\n    canvas.height =\r\n      Math.floor(\r\n        height * dpr\r\n      );\r\n\r\n    canvas.style.width =\r\n      width + \"px\";\r\n\r\n    canvas.style.height =\r\n      height + \"px\";\r\n\r\n    ctx.setTransform(\r\n      dpr,\r\n      0,\r\n      0,\r\n      dpr,\r\n      0,\r\n      0\r\n    );\r\n\r\n    particles = [];\r\n    lines = [];\r\n\r\n    const amount =\r\n      Math.min(\r\n        150,\r\n        Math.max(\r\n          70,\r\n          Math.floor(width \/ 12)\r\n        )\r\n      );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Particles\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    for (\r\n      let i = 0;\r\n      i < amount;\r\n      i += 1\r\n    ) {\r\n      particles.push({\r\n        x: Math.random() * width,\r\n        y: Math.random() * height,\r\n        vx: -0.18 + Math.random() * 0.36,\r\n        vy: -0.14 + Math.random() * 0.28,\r\n        r: 0.6 + Math.random() * 2.1,\r\n        alpha: 0.08 + Math.random() * 0.24,\r\n        phase: Math.random() * Math.PI * 2\r\n      });\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Animated network packets\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    for (\r\n      let i = 0;\r\n      i < 8;\r\n      i += 1\r\n    ) {\r\n      lines.push({\r\n        t: Math.random(),\r\n        speed:\r\n          0.0015 +\r\n          Math.random() * 0.0025,\r\n        from: i % 5,\r\n        to: (i + 2) % 5\r\n      });\r\n    }\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Network points\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function getNetworkPoints() {\r\n    return [\r\n      {\r\n        x: width * 0.20,\r\n        y: height * 0.42\r\n      },\r\n      {\r\n        x: width * 0.38,\r\n        y: height * 0.26\r\n      },\r\n      {\r\n        x: width * 0.62,\r\n        y: height * 0.32\r\n      },\r\n      {\r\n        x: width * 0.78,\r\n        y: height * 0.58\r\n      },\r\n      {\r\n        x: width * 0.48,\r\n        y: height * 0.74\r\n      }\r\n    ];\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Draw network line\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function drawNetworkLine(a, b, alpha) {\r\n    const gradient =\r\n      ctx.createLinearGradient(\r\n        a.x,\r\n        a.y,\r\n        b.x,\r\n        b.y\r\n      );\r\n\r\n    gradient.addColorStop(\r\n      0,\r\n      \"rgba(255,255,255,0)\"\r\n    );\r\n\r\n    gradient.addColorStop(\r\n      0.5,\r\n      \"rgba(255,255,255,\" +\r\n      alpha +\r\n      \")\"\r\n    );\r\n\r\n    gradient.addColorStop(\r\n      1,\r\n      \"rgba(255,255,255,0)\"\r\n    );\r\n\r\n    ctx.beginPath();\r\n\r\n    ctx.moveTo(\r\n      a.x,\r\n      a.y\r\n    );\r\n\r\n    ctx.lineTo(\r\n      b.x,\r\n      b.y\r\n    );\r\n\r\n    ctx.strokeStyle =\r\n      gradient;\r\n\r\n    ctx.lineWidth = 1;\r\n\r\n    ctx.stroke();\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Draw canvas\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function drawCanvas(time) {\r\n    if (!ctx || !canvas) return;\r\n\r\n    ctx.clearRect(\r\n      0,\r\n      0,\r\n      width,\r\n      height\r\n    );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Background glow\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const centerX =\r\n      width * 0.5;\r\n\r\n    const centerY =\r\n      height * 0.52;\r\n\r\n    const glow =\r\n      ctx.createRadialGradient(\r\n        centerX,\r\n        centerY,\r\n        0,\r\n        centerX,\r\n        centerY,\r\n        Math.min(\r\n          width,\r\n          height\r\n        ) * 0.58\r\n      );\r\n\r\n    glow.addColorStop(\r\n      0,\r\n      \"rgba(255,255,255,0.11)\"\r\n    );\r\n\r\n    glow.addColorStop(\r\n      0.38,\r\n      \"rgba(255,255,255,0.04)\"\r\n    );\r\n\r\n    glow.addColorStop(\r\n      1,\r\n      \"rgba(255,255,255,0)\"\r\n    );\r\n\r\n    ctx.fillStyle = glow;\r\n\r\n    ctx.fillRect(\r\n      0,\r\n      0,\r\n      width,\r\n      height\r\n    );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Draw particles\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    particles.forEach(function (p) {\r\n      p.x += p.vx;\r\n      p.y += p.vy;\r\n\r\n      p.x +=\r\n        Math.sin(\r\n          time * 0.0006 +\r\n          p.phase\r\n        ) * 0.08;\r\n\r\n      p.y +=\r\n        Math.cos(\r\n          time * 0.0005 +\r\n          p.phase\r\n        ) * 0.08;\r\n\r\n      if (p.x < -20) {\r\n        p.x = width + 20;\r\n      }\r\n\r\n      if (p.x > width + 20) {\r\n        p.x = -20;\r\n      }\r\n\r\n      if (p.y < -20) {\r\n        p.y = height + 20;\r\n      }\r\n\r\n      if (p.y > height + 20) {\r\n        p.y = -20;\r\n      }\r\n\r\n      ctx.beginPath();\r\n\r\n      ctx.arc(\r\n        p.x,\r\n        p.y,\r\n        p.r,\r\n        0,\r\n        Math.PI * 2\r\n      );\r\n\r\n      ctx.fillStyle =\r\n        \"rgba(255,255,255,\" +\r\n        p.alpha +\r\n        \")\";\r\n\r\n      ctx.fill();\r\n    });\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Draw network\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const points =\r\n      getNetworkPoints();\r\n\r\n    for (\r\n      let i = 0;\r\n      i < points.length;\r\n      i += 1\r\n    ) {\r\n      drawNetworkLine(\r\n        points[i],\r\n        points[\r\n          (i + 1) %\r\n          points.length\r\n        ],\r\n        0.11\r\n      );\r\n\r\n      drawNetworkLine(\r\n        points[i],\r\n        points[\r\n          (i + 2) %\r\n          points.length\r\n        ],\r\n        0.055\r\n      );\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Draw moving packets\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    lines.forEach(function (line) {\r\n      const from =\r\n        points[line.from];\r\n\r\n      const to =\r\n        points[line.to];\r\n\r\n      line.t += line.speed;\r\n\r\n      if (line.t > 1) {\r\n        line.t = 0;\r\n\r\n        line.from =\r\n          Math.floor(\r\n            Math.random() *\r\n            points.length\r\n          );\r\n\r\n        line.to =\r\n          Math.floor(\r\n            Math.random() *\r\n            points.length\r\n          );\r\n      }\r\n\r\n      const x =\r\n        from.x +\r\n        (to.x - from.x) *\r\n        line.t;\r\n\r\n      const y =\r\n        from.y +\r\n        (to.y - from.y) *\r\n        line.t;\r\n\r\n      ctx.beginPath();\r\n\r\n      ctx.arc(\r\n        x,\r\n        y,\r\n        3.1,\r\n        0,\r\n        Math.PI * 2\r\n      );\r\n\r\n      ctx.fillStyle =\r\n        \"rgba(255,255,255,0.82)\";\r\n\r\n      ctx.shadowColor =\r\n        \"rgba(255,255,255,0.82)\";\r\n\r\n      ctx.shadowBlur = 16;\r\n\r\n      ctx.fill();\r\n\r\n      ctx.shadowBlur = 0;\r\n    });\r\n\r\n    requestAnimationFrame(\r\n      drawCanvas\r\n    );\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Start canvas\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  if (ctx) {\r\n    resizeCanvas();\r\n\r\n    window.addEventListener(\r\n      \"resize\",\r\n      resizeCanvas\r\n    );\r\n\r\n    requestAnimationFrame(\r\n      drawCanvas\r\n    );\r\n  }\r\n\r\n});<\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Espace Carri\u00e8res Travaillezavec nous Acc\u00e9dez \u00e0 l\u2019espace Carri\u00e8res de Millepiani, remplissez votre CV en ligne et postulez pour rejoindre notre groupe. S\u00e9lection ouverte aux candidats et candidates de tous sexes ou n.i. conform\u00e9ment \u00e0 la loi 300\/1970, au d\u00e9cret l\u00e9gislatif 198\/2006, ainsi qu\u2019aux travailleurs et travailleuses handicap\u00e9s au sens de la loi 68\/1999. Envoyer la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-2505","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"millepiani.com -\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Travaillez avec nous | Carri\u00e8res Millepiani\" \/>\n\t\t<meta property=\"og:description\" content=\"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-26T13:29:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-24T14:30:53+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Travaillez avec nous | Carri\u00e8res Millepiani\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/travaillez-avec-nous\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/travaillez-avec-nous\\\/#listItem\",\"name\":\"TRAVAILLEZ AVEC NOUS\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/travaillez-avec-nous\\\/#listItem\",\"position\":2,\"name\":\"TRAVAILLEZ AVEC NOUS\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/#organization\",\"name\":\"millepiani.com\",\"url\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/travaillez-avec-nous\\\/#webpage\",\"url\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/travaillez-avec-nous\\\/\",\"name\":\"Travaillez avec nous | Carri\\u00e8res Millepiani\",\"description\":\"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs.\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/travaillez-avec-nous\\\/#breadcrumblist\"},\"datePublished\":\"2026-05-26T13:29:36+00:00\",\"dateModified\":\"2026-09-24T14:30:53+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/\",\"name\":\"millepiani.com\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/fr\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Travaillez avec nous | Carri\u00e8res Millepiani","description":"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs.","canonical_url":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/millepiani.com\/fr\/#listItem","position":1,"name":"Home","item":"https:\/\/millepiani.com\/fr\/","nextItem":{"@type":"ListItem","@id":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/#listItem","name":"TRAVAILLEZ AVEC NOUS"}},{"@type":"ListItem","@id":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/#listItem","position":2,"name":"TRAVAILLEZ AVEC NOUS","previousItem":{"@type":"ListItem","@id":"https:\/\/millepiani.com\/fr\/#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/millepiani.com\/fr\/#organization","name":"millepiani.com","url":"https:\/\/millepiani.com\/fr\/"},{"@type":"WebPage","@id":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/#webpage","url":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/","name":"Travaillez avec nous | Carri\u00e8res Millepiani","description":"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs.","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/millepiani.com\/fr\/#website"},"breadcrumb":{"@id":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/#breadcrumblist"},"datePublished":"2026-05-26T13:29:36+00:00","dateModified":"2026-09-24T14:30:53+00:00"},{"@type":"WebSite","@id":"https:\/\/millepiani.com\/fr\/#website","url":"https:\/\/millepiani.com\/fr\/","name":"millepiani.com","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/millepiani.com\/fr\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"millepiani.com -","og:type":"article","og:title":"Travaillez avec nous | Carri\u00e8res Millepiani","og:description":"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs.","og:url":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/","article:published_time":"2026-05-26T13:29:36+00:00","article:modified_time":"2026-09-24T14:30:53+00:00","twitter:card":"summary_large_image","twitter:title":"Travaillez avec nous | Carri\u00e8res Millepiani","twitter:description":"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs."},"aioseo_meta_data":{"post_id":"2505","title":"Travaillez avec nous | Carri\u00e8res Millepiani","description":"Rejoignez le Groupe Millepiani : remplissez votre profil en ligne, joignez votre CV et envoyez votre candidature pour travailler dans le secteur des ascenseurs.","keywords":null,"keyphrases":{"focus":{"keyphrase":"lavora con noi Millepiani","score":0,"analysis":[]},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-14 18:27:47","updated":"2026-09-24 15:18:28","focus_keyword":"lavora con noi Millepiani","additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/millepiani.com\/fr\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tTRAVAILLEZ AVEC NOUS\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/millepiani.com\/fr\/"},{"label":"TRAVAILLEZ AVEC NOUS","link":"https:\/\/millepiani.com\/fr\/travaillez-avec-nous\/"}],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/millepiani.com\/fr\/wp-json\/wp\/v2\/pages\/2505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/millepiani.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/millepiani.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/millepiani.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/millepiani.com\/fr\/wp-json\/wp\/v2\/comments?post=2505"}],"version-history":[{"count":2,"href":"https:\/\/millepiani.com\/fr\/wp-json\/wp\/v2\/pages\/2505\/revisions"}],"predecessor-version":[{"id":2837,"href":"https:\/\/millepiani.com\/fr\/wp-json\/wp\/v2\/pages\/2505\/revisions\/2837"}],"wp:attachment":[{"href":"https:\/\/millepiani.com\/fr\/wp-json\/wp\/v2\/media?parent=2505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}