{"id":2124,"date":"2026-07-27T00:28:37","date_gmt":"2026-07-27T00:28:37","guid":{"rendered":"https:\/\/www.ms2bilingual.com\/careers\/"},"modified":"2026-07-27T01:21:37","modified_gmt":"2026-07-27T01:21:37","slug":"careers","status":"publish","type":"page","link":"https:\/\/www.ms2bilingual.com\/fr\/careers\/","title":{"rendered":""},"content":{"rendered":"\n<!-- MS2 Bilingual \u2014 Careers Page\n     Pixel-matched to \/candidates\/ (Elementor page ID 18) design.\n     Only difference: Manatal iframe replaced with ATS-powered job cards.\n-->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700&#038;family=Assistant:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n  \/* === Global typography (from elementor-kit-6) === *\/\n  .ms2-careers {\n    --e-primary: #01C2A2;\n    --e-secondary: #4767BD;\n    --e-text: #000000;\n    --e-accent: #C4C4C4;\n    font-family: \"Assistant\", Sans-serif;\n    font-size: 21px;\n    line-height: 32px;\n    color: #000000;\n  }\n\n  .ms2-careers * { box-sizing: border-box; margin: 0; padding: 0; }\n\n  .ms2-careers h1 {\n    color: var(--e-primary);\n    font-family: \"Poppins\", Sans-serif;\n    font-size: 75px;\n    font-weight: 700;\n    line-height: 85px;\n  }\n\n  .ms2-careers h2 {\n    color: #000000;\n    font-family: \"Poppins\", Sans-serif;\n    font-size: 35px;\n    line-height: 62px;\n  }\n\n  .ms2-careers h3 {\n    color: #000000;\n    font-family: \"Poppins\", Sans-serif;\n    font-size: 35px;\n    line-height: 58px;\n  }\n\n  .ms2-careers h5 {\n    color: var(--e-secondary);\n    font-family: \"Poppins\", Sans-serif;\n    font-size: 27px;\n    font-weight: 700;\n  }\n\n  .ms2-careers h6 {\n    color: #000000;\n    font-family: \"Assistant\", Sans-serif;\n    font-size: 27px;\n    line-height: 40px;\n  }\n\n  \/* === Hero section (bf775c9) === *\/\n  .ms2-hero {\n    min-height: 100vh;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: 50px 0;\n  }\n\n  .ms2-hero h1 {\n    text-align: center;\n  }\n\n  .ms2-hero .ms2-hero-sub {\n    color: var(--e-secondary);\n    font-family: \"Poppins\", Sans-serif;\n    font-size: 27px;\n    font-weight: 700;\n    text-align: center;\n    margin: 7px 0 25px 0;\n  }\n\n  .ms2-hero-dots {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 12px;\n  }\n\n  .ms2-hero-dots svg {\n    width: 33px;\n    height: 33px;\n    fill: var(--e-primary);\n  }\n\n  \/* === Guide subtitle (0c21937) === *\/\n  .ms2-guide-subtitle {\n    text-align: center;\n    margin: 5px 0 12px 0;\n    margin-bottom: 50px;\n  }\n\n  .ms2-guide-subtitle h6 {\n    text-align: center;\n  }\n\n  \/* === Why work with us (e3c7fab) === *\/\n  .ms2-why-section {\n    text-align: center;\n    margin-bottom: -15px;\n  }\n\n  .ms2-why-section h3 {\n    text-align: center;\n  }\n\n  .ms2-value-props {\n    display: flex;\n    justify-content: center;\n    gap: 0;\n    margin-top: 25px;\n    max-width: 1140px;\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  .ms2-value-card {\n    text-align: center;\n    flex: 1;\n    max-width: 33%;\n    padding: 40px 12px 30px 12px;\n    border: 1px solid #DEDEDE;\n    border-radius: 22px;\n    margin: 0 6px;\n  }\n\n  .ms2-value-card .ms2-card-img {\n    width: 50%;\n    margin: 0 auto 8px auto;\n  }\n\n  .ms2-value-card .ms2-card-img img {\n    width: 100%;\n    height: auto;\n    display: block;\n  }\n\n  .ms2-value-card .ms2-card-title {\n    font-family: \"Poppins\", Sans-serif;\n    font-size: 28px;\n    font-weight: 500;\n    line-height: 37px;\n    color: #000000;\n  }\n\n  \/* === Spacer (c5b91ae) === *\/\n  .ms2-spacer {\n    height: 50px;\n  }\n\n  \/* === Section divider \u2014 \"Send us your details\" (3b87f98) === *\/\n  .ms2-section-title {\n    text-align: center;\n    padding: 0 20px;\n  }\n\n  .ms2-section-title h2 {\n    text-align: center;\n  }\n\n  \/* === Job grid (replaces Manatal iframe) === *\/\n  .ms2-jobs-section {\n    max-width: 1140px;\n    margin: 40px auto;\n    padding: 0 20px;\n  }\n\n  .ms2-job-count {\n    text-align: center;\n    color: #6c757d;\n    font-size: 16px;\n    margin-bottom: 30px;\n  }\n\n  .ms2-jobs-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n    gap: 24px;\n  }\n\n  .ms2-job-card {\n    background: white;\n    border: 1px solid #DEDEDE;\n    border-radius: 22px;\n    padding: 30px 28px;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    display: flex;\n    flex-direction: column;\n  }\n\n  .ms2-job-card:hover {\n    border-color: var(--e-secondary);\n    box-shadow: 0 6px 24px rgba(71, 103, 189, 0.16);\n    transform: translateY(-2px);\n  }\n\n  .ms2-job-card h4 {\n    font-family: \"Poppins\", Sans-serif;\n    font-size: 22px;\n    font-weight: 600;\n    line-height: 1.4;\n    color: #000000;\n    margin-bottom: 12px;\n  }\n\n  .ms2-job-meta {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin-bottom: 12px;\n    font-size: 15px;\n    color: #6c757d;\n    font-family: \"Assistant\", Sans-serif;\n  }\n\n  .ms2-badge {\n    display: inline-block;\n    padding: 2px 12px;\n    border-radius: 12px;\n    font-size: 13px;\n    font-weight: 500;\n    background: #e8edf6;\n    color: var(--e-secondary);\n  }\n\n  .ms2-badge-remote { background: #e6f4ea; color: #137333; }\n\n  .ms2-job-desc {\n    font-size: 16px;\n    color: #6c757d;\n    line-height: 1.6;\n    flex-grow: 1;\n    margin-bottom: 16px;\n    display: -webkit-box;\n    -webkit-line-clamp: 3;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .ms2-apply-link {\n    color: var(--e-secondary);\n    font-weight: 600;\n    font-size: 15px;\n    text-decoration: none;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    cursor: pointer;\n    background: none;\n    border: none;\n    font-family: \"Assistant\", Sans-serif;\n    padding: 0;\n    transition: gap 0.2s;\n  }\n\n  .ms2-apply-link:hover { gap: 10px; }\n\n  \/* === Loading \/ empty === *\/\n  .ms2-loading, .ms2-empty {\n    text-align: center;\n    padding: 50px 20px;\n    color: #6c757d;\n    grid-column: 1 \/ -1;\n  }\n\n  .ms2-spinner {\n    width: 36px;\n    height: 36px;\n    border: 3px solid #e8eaf0;\n    border-top-color: var(--e-secondary);\n    border-radius: 50%;\n    animation: ms2-spin 0.8s linear infinite;\n    margin: 0 auto 16px;\n  }\n\n  @keyframes ms2-spin { to { transform: rotate(360deg); } }\n\n  \/* === Modal === *\/\n  .ms2-modal-overlay {\n    display: none;\n    position: fixed;\n    top: 0; left: 0; right: 0; bottom: 0;\n    background: rgba(0, 0, 0, 0.55);\n    z-index: 9999;\n    overflow-y: auto;\n    padding: 40px 20px;\n  }\n\n  .ms2-modal-overlay.active {\n    display: flex;\n    align-items: flex-start;\n    justify-content: center;\n  }\n\n  .ms2-modal {\n    background: white;\n    border-radius: 16px;\n    max-width: 700px;\n    width: 100%;\n    padding: 40px;\n    position: relative;\n    box-shadow: 0 20px 60px rgba(0,0,0,0.3);\n    margin: auto;\n  }\n\n  .ms2-modal-close {\n    position: absolute;\n    top: 16px; right: 16px;\n    background: none; border: none;\n    font-size: 28px;\n    color: #6c757d;\n    cursor: pointer;\n    line-height: 1;\n    padding: 4px 8px;\n    border-radius: 6px;\n  }\n\n  .ms2-modal-close:hover { background: #f8f9fb; color: #000; }\n\n  .ms2-modal h2 { font-size: 28px; margin-bottom: 12px; padding-right: 40px; }\n\n  .ms2-modal-meta {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    margin-bottom: 24px;\n    padding-bottom: 20px;\n    border-bottom: 1px solid #e8eaf0;\n    font-size: 15px;\n    color: #6c757d;\n    font-family: \"Assistant\", Sans-serif;\n  }\n\n  .ms2-modal-desc {\n    font-size: 17px;\n    line-height: 1.7;\n    font-family: \"Assistant\", Sans-serif;\n  }\n\n  .ms2-modal-desc h1, .ms2-modal-desc h2, .ms2-modal-desc h3 {\n    margin-top: 20px; margin-bottom: 10px;\n  }\n  .ms2-modal-desc p { margin-bottom: 12px; }\n  .ms2-modal-desc ul, .ms2-modal-desc ol { margin-bottom: 12px; padding-left: 24px; }\n  .ms2-modal-desc li { margin-bottom: 6px; }\n\n  \/* === Apply form === *\/\n  .ms2-apply-form {\n    margin-top: 32px;\n    padding-top: 28px;\n    border-top: 1px solid #e8eaf0;\n  }\n\n  .ms2-apply-form h3 { font-size: 24px; margin-bottom: 18px; }\n\n  .ms2-form-group { margin-bottom: 16px; }\n\n  .ms2-form-group label {\n    display: block;\n    font-size: 15px;\n    font-weight: 600;\n    margin-bottom: 6px;\n    font-family: \"Assistant\", Sans-serif;\n  }\n\n  .ms2-form-group input[type=\"text\"],\n  .ms2-form-group input[type=\"email\"],\n  .ms2-form-group input[type=\"tel\"],\n  .ms2-form-group input[type=\"file\"] {\n    width: 100%;\n    padding: 12px 14px;\n    border: 1px solid #e8eaf0;\n    border-radius: 8px;\n    font-size: 15px;\n    font-family: \"Assistant\", Sans-serif;\n    color: #000;\n    background: white;\n    transition: border-color 0.2s;\n  }\n\n  .ms2-form-group input:focus {\n    outline: none;\n    border-color: var(--e-secondary);\n    box-shadow: 0 0 0 3px rgba(71, 103, 189, 0.12);\n  }\n\n  .ms2-form-group input[type=\"file\"] { padding: 10px; background: #f8f9fb; }\n\n  .ms2-consent {\n    display: flex;\n    align-items: flex-start;\n    gap: 8px;\n    font-size: 14px;\n    color: #6c757d;\n    margin: 16px 0;\n    font-family: \"Assistant\", Sans-serif;\n  }\n\n  .ms2-form-msg {\n    padding: 12px 16px;\n    border-radius: 8px;\n    font-size: 15px;\n    margin-bottom: 16px;\n    display: none;\n  }\n\n  .ms2-form-msg.success { background: #e6f4ea; color: #137333; display: block; }\n  .ms2-form-msg.error { background: #fce8e8; color: #c5221f; display: block; }\n\n  .ms2-submit-btn {\n    background: var(--e-secondary);\n    color: white;\n    padding: 14px 36px;\n    border: none;\n    border-radius: 8px;\n    font-size: 15px;\n    font-weight: 600;\n    cursor: pointer;\n    font-family: \"Assistant\", Sans-serif;\n    transition: background 0.2s;\n  }\n\n  .ms2-submit-btn:hover:not(:disabled) { background: #3a56a0; }\n  .ms2-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; }\n\n  \/* === Responsive === *\/\n  @media (max-width: 1024px) {\n    .ms2-careers { font-size: 23px; line-height: 1.5em; }\n    .ms2-careers h1 { font-size: 75px; line-height: 1.2em; }\n    .ms2-careers h2 { font-size: 48px; }\n    .ms2-careers h3 { font-size: 48px; }\n    .ms2-value-card .ms2-card-title { font-size: 33px; }\n  }\n\n  @media (max-width: 767px) {\n    .ms2-careers { font-size: 20px; }\n    .ms2-careers h1 { font-size: 50px; line-height: 1.1em; }\n    .ms2-careers h2 { font-size: 30px; line-height: 1.3em; }\n    .ms2-careers h3 { font-size: 30px; line-height: 1.2em; }\n    .ms2-careers h5 { font-size: 23px; line-height: 1.3em; }\n    .ms2-careers h6 { line-height: 1.3em; }\n    .ms2-value-props { flex-direction: column; gap: 20px; }\n    .ms2-value-card { max-width: 100%; margin: 0; }\n    .ms2-jobs-grid { grid-template-columns: 1fr; }\n    .ms2-modal { padding: 24px 20px; }\n  }\n<\/style>\n\n<div class=\"ms2-careers\">\n\n  <!-- Hero (bf775c9) -->\n  <section class=\"ms2-hero\">\n    <h1>Access the Hidden<br>Bilingual Job Market<\/h1>\n    <div class=\"ms2-hero-sub\">Canada&#8217;s top employers are looking for top bilingual talent<\/div>\n    <div class=\"ms2-hero-dots\">\n      <svg aria-hidden=\"true\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"><\/path><\/svg>\n      <svg aria-hidden=\"true\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"><\/path><\/svg>\n      <svg aria-hidden=\"true\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"><\/path><\/svg>\n    <\/div>\n  <\/section>\n\n  <!-- Guide subtitle (0c21937) -->\n  <section class=\"ms2-guide-subtitle\">\n    <h6>We&#8217;re here to guide you every step of the way<\/h6>\n  <\/section>\n\n  <!-- Why work with us (e3c7fab) -->\n  <section class=\"ms2-why-section\">\n    <h3>Why work with us?<\/h3>\n    <div class=\"ms2-value-props\">\n      <div class=\"ms2-value-card\">\n        <div class=\"ms2-card-img\">\n          <img decoding=\"async\" src=\"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/customer-support.png\" alt=\"Personalized Support\" width=\"111\" height=\"108\">\n        <\/div>\n        <div class=\"ms2-card-title\">Personalized<br>support<\/div>\n      <\/div>\n      <div class=\"ms2-value-card\">\n        <div class=\"ms2-card-img\">\n          <img decoding=\"async\" src=\"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/opportunities.png\" alt=\"Access to Exclusive Opportunities\" width=\"111\" height=\"107\">\n        <\/div>\n        <div class=\"ms2-card-title\">Access to exclusive opportunities<\/div>\n      <\/div>\n      <div class=\"ms2-value-card\">\n        <div class=\"ms2-card-img\">\n          <img decoding=\"async\" src=\"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/resources.png\" alt=\"Career Growth Resources\" width=\"109\" height=\"108\">\n        <\/div>\n        <div class=\"ms2-card-title\">Career growth resources<\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- Spacer -->\n  <div class=\"ms2-spacer\"><\/div>\n\n  <!-- \"Send us your details\" (3b87f98) \u2014 kept exactly, iframe replaced by job cards -->\n  <section class=\"ms2-section-title\">\n    <h2>Send us your details<\/h2>\n  <\/section>\n\n  <!-- Job cards (replaces Manatal iframe) -->\n  <div class=\"ms2-jobs-section\">\n    <p class=\"ms2-job-count\" id=\"ms2-job-count\"><\/p>\n    <div class=\"ms2-jobs-grid\" id=\"ms2-jobs-grid\">\n      <div class=\"ms2-loading\">\n        <div class=\"ms2-spinner\"><\/div>\n        <p>Loading opportunities\u2026<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<!-- Modal -->\n<div class=\"ms2-modal-overlay\" id=\"ms2-modal-overlay\">\n  <div class=\"ms2-modal\" id=\"ms2-modal-content\">\n    <button class=\"ms2-modal-close\" onclick=\"ms2CloseModal()\">&times;<\/button>\n    <div id=\"ms2-modal-body\">Loading\u2026<\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  var API_BASE = 'https:\/\/interview.ms2bilingual.com';\n  var currentJobId = null;\n\n  function esc(s) {\n    var d = document.createElement('div');\n    d.textContent = s || '';\n    return d.innerHTML;\n  }\n\n  function makeSnippet(html) {\n    if (!html) return '';\n    \/\/ Add spaces around inline tag boundaries so words don't merge\n    var text = String(html)\n      .replace(\/<\\\/(?:b|strong|em|i|u|span|a|small|sup|sub)>\/gi, ' ')\n      .replace(\/<(?:b|strong|em|i|u|span|a|small|sup|sub)[^>]*>\/gi, ' ')\n      .replace(\/<br\\s*\\\/?>\/gi, ' ')\n      .replace(\/<\\\/p>\/gi, ' ')\n      .replace(\/<\\\/div>\/gi, ' ')\n      .replace(\/<\\\/h[1-6]>\/gi, ' ')\n      .replace(\/<li[^>]*>\/gi, ' \u2022 ')\n      .replace(\/<[^>]*>\/g, '')\n      .replace(\/&nbsp;\/g, ' ')\n      .replace(\/&amp;\/g, '&')\n      .replace(\/&lt;\/g, '<')\n      .replace(\/&gt;\/g, '>')\n      .replace(\/\\s+\/g, ' ')\n      .trim();\n    if (text.length <= 150) return text;\n    return text.substring(0, 150).replace(\/\\s+\\S*$\/, '') + '\u2026';\n  }\n\n  function formatDate(iso) {\n    if (!iso) return '';\n    try {\n      var d = new Date(iso);\n      return d.toLocaleDateString('en-CA', { month: 'short', day: 'numeric', year: 'numeric' });\n    } catch(e) { return ''; }\n  }\n\n  async function loadJobs() {\n    var grid = document.getElementById('ms2-jobs-grid');\n    var countEl = document.getElementById('ms2-job-count');\n    if (!grid) return;\n\n    try {\n      var res = await fetch(API_BASE + '\/api\/public\/jobs', { cache: 'no-cache' });\n      if (!res.ok) throw new Error('HTTP ' + res.status);\n      var data = await res.json();\n\n      if (!data.ok || !data.jobs || !data.jobs.length) {\n        grid.innerHTML = '<div class=\"ms2-empty\">' +\n          '<p style=\"font-size:18px;margin-bottom:8px\">No open positions right now.<\/p>' +\n          '<p>Email your resume to <a href=\"mailto:sales@ms2bilingual.com\" style=\"color:#4767BD\">sales@ms2bilingual.com<\/a> for future opportunities.<\/p><\/div>';\n        countEl.textContent = '';\n        return;\n      }\n\n      countEl.textContent = data.count + ' Open Position' + (data.count !== 1 ? 's' : '');\n\n      grid.innerHTML = data.jobs.map(function(job) {\n        var badges = '';\n        if (job.remote) badges += '<span class=\"ms2-badge ms2-badge-remote\">Remote<\/span>';\n        if (job.type) badges += '<span class=\"ms2-badge\">' + esc(job.type) + '<\/span>';\n        if (job.experience_level) badges += '<span class=\"ms2-badge\">' + esc(job.experience_level) + '<\/span>';\n\n        return '<div class=\"ms2-job-card\" onclick=\"ms2OpenJob(' + job.id + ')\">' +\n          '<h4>' + esc(job.title) + '<\/h4>' +\n          '<div class=\"ms2-job-meta\"><span>\ud83d\udccd ' + esc(job.location) + '<\/span><\/div>' +\n          (badges ? '<div class=\"ms2-job-meta\">' + badges + '<\/div>' : '') +\n          '<p class=\"ms2-job-desc\">' + esc(makeSnippet(job.description)) + '<\/p>' +\n          '<button class=\"ms2-apply-link\">View Details \u2192<\/button>' +\n        '<\/div>';\n      }).join('');\n    } catch (e) {\n      grid.innerHTML = '<div class=\"ms2-empty\">' +\n        '<p>Unable to load jobs right now.<\/p>' +\n        '<p>Please try again later or email <a href=\"mailto:sales@ms2bilingual.com\" style=\"color:#4767BD\">sales@ms2bilingual.com<\/a><\/p><\/div>';\n      countEl.textContent = '';\n    }\n  }\n\n  window.ms2OpenJob = async function(jobId) {\n    currentJobId = jobId;\n    var overlay = document.getElementById('ms2-modal-overlay');\n    var body = document.getElementById('ms2-modal-body');\n\n    overlay.classList.add('active');\n    document.body.style.overflow = 'hidden';\n    body.innerHTML = '<div class=\"ms2-loading\"><div class=\"ms2-spinner\"><\/div><p>Loading\u2026<\/p><\/div>';\n\n    try {\n      var res = await fetch(API_BASE + '\/api\/public\/jobs\/' + jobId);\n      if (!res.ok) throw new Error('HTTP ' + res.status);\n      var data = await res.json();\n\n      if (!data.ok) throw new Error(data.error || 'Job not found');\n      var job = data.job;\n\n      var badges = '';\n      if (job.remote) badges += '<span class=\"ms2-badge ms2-badge-remote\">Remote<\/span>';\n      if (job.type) badges += '<span class=\"ms2-badge\">' + esc(job.type) + '<\/span>';\n      if (job.experience_level) badges += '<span class=\"ms2-badge\">' + esc(job.experience_level) + '<\/span>';\n      if (job.salary) badges += '<span class=\"ms2-badge\">\ud83d\udcb0 ' + esc(job.salary) + '<\/span>';\n\n      body.innerHTML =\n        '<h2>' + esc(job.title) + '<\/h2>' +\n        '<div class=\"ms2-modal-meta\">' +\n          '<span>\ud83d\udccd ' + esc(job.location) + '<\/span>' +\n          (job.company ? '<span>\ud83c\udfe2 ' + esc(job.company) + '<\/span>' : '') +\n          (job.posted_at ? '<span>\ud83d\udcc5 Posted ' + esc(formatDate(job.posted_at)) + '<\/span>' : '') +\n        '<\/div>' +\n        (badges ? '<div class=\"ms2-modal-meta\">' + badges + '<\/div>' : '') +\n        '<div class=\"ms2-modal-desc\">' + (job.description_html || esc(job.description_text) || '') + '<\/div>' +\n        renderApplyForm(job);\n\n      var form = document.getElementById('ms2-apply-form-el');\n      if (form) form.addEventListener('submit', handleApply);\n    } catch (e) {\n      body.innerHTML = '<div class=\"ms2-empty\"><p>Unable to load job details.<\/p><\/div>';\n    }\n  };\n\n  function renderApplyForm(job) {\n    return '' +\n      '<div class=\"ms2-apply-form\">' +\n        '<h3>Apply for this position<\/h3>' +\n        '<div class=\"ms2-form-msg\" id=\"ms2-form-msg\"><\/div>' +\n        '<form id=\"ms2-apply-form-el\" enctype=\"multipart\/form-data\">' +\n          '<div class=\"ms2-form-group\"><label>Full Name *<\/label><input type=\"text\" name=\"name\" required><\/div>' +\n          '<div class=\"ms2-form-group\"><label>Email *<\/label><input type=\"email\" name=\"email\" required><\/div>' +\n          '<div class=\"ms2-form-group\"><label>Phone<\/label><input type=\"tel\" name=\"phone\"><\/div>' +\n          '<div class=\"ms2-form-group\"><label>LinkedIn (optional)<\/label><input type=\"text\" name=\"linkedin\" placeholder=\"https:\/\/linkedin.com\/in\/...\"><\/div>' +\n          '<div class=\"ms2-form-group\"><label>Resume (PDF or DOCX) *<\/label><input type=\"file\" name=\"resume\" accept=\".pdf,.docx,.doc\" required><\/div>' +\n          '<label class=\"ms2-consent\"><input type=\"checkbox\" name=\"sms_consent\" value=\"true\" checked><span>I consent to be contacted via SMS\/WhatsApp about this application.<\/span><\/label>' +\n          '<button type=\"submit\" class=\"ms2-submit-btn\">Submit Application<\/button>' +\n        '<\/form>' +\n      '<\/div>';\n  }\n\n  async function handleApply(e) {\n    e.preventDefault();\n    var form = e.target;\n    var btn = form.querySelector('.ms2-submit-btn');\n    var msgEl = document.getElementById('ms2-form-msg');\n\n    btn.disabled = true;\n    btn.textContent = 'Submitting\u2026';\n    msgEl.className = 'ms2-form-msg';\n    msgEl.textContent = '';\n\n    try {\n      var fd = new FormData(form);\n      var res = await fetch(API_BASE + '\/api\/public\/jobs\/' + currentJobId + '\/apply', {\n        method: 'POST',\n        body: fd\n      });\n      var data = await res.json();\n\n      if (data.ok) {\n        msgEl.className = 'ms2-form-msg success';\n        msgEl.innerHTML = '<strong>Application submitted!<\/strong> A recruiter will be in touch with you soon.';\n        form.style.display = 'none';\n      } else {\n        msgEl.className = 'ms2-form-msg error';\n        msgEl.textContent = data.error || 'Submission failed. Please try again.';\n        btn.disabled = false;\n        btn.textContent = 'Submit Application';\n      }\n    } catch (err) {\n      msgEl.className = 'ms2-form-msg error';\n      msgEl.textContent = 'Network error. Please check your connection and try again.';\n      btn.disabled = false;\n      btn.textContent = 'Submit Application';\n    }\n  }\n\n  window.ms2CloseModal = function() {\n    var overlay = document.getElementById('ms2-modal-overlay');\n    overlay.classList.remove('active');\n    document.body.style.overflow = '';\n    currentJobId = null;\n  };\n\n  document.getElementById('ms2-modal-overlay').addEventListener('click', function(e) {\n    if (e.target === this) ms2CloseModal();\n  });\n\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') ms2CloseModal();\n  });\n\n  function checkHashJob() {\n    var m = location.hash.match(\/^#job-(\\d+)$\/);\n    if (m) ms2OpenJob(parseInt(m[1]));\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', loadJobs);\n  } else {\n    loadJobs();\n  }\n\n  window.addEventListener('hashchange', checkHashJob);\n  checkHashJob();\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Access the HiddenBilingual Job Market Canada&#8217;s top employers are looking for top bilingual talent We&#8217;re here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\u2026 &times; Loading\u2026<\/p>","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2124","page","type-page","status-publish","hentry"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Access the HiddenBilingual Job Market Canada&#039;s top employers are looking for top bilingual talent We&#039;re here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\u2026 \u00d7 Loading\u2026\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.ms2bilingual.com\/fr\/careers\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_CA\" \/>\n\t\t<meta property=\"og:site_name\" content=\"MS2 Bilingual - Flat-Rate French\/English Recruitment and Global Off-Shore Solutions\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"- MS2 Bilingual\" \/>\n\t\t<meta property=\"og:description\" content=\"Access the HiddenBilingual Job Market Canada&#039;s top employers are looking for top bilingual talent We&#039;re here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\u2026 \u00d7 Loading\u2026\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.ms2bilingual.com\/fr\/careers\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/MS2_Bilingual-removebg-preview.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/MS2_Bilingual-removebg-preview.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-07-27T00:28:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-07-27T01:21:37+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"- MS2 Bilingual\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Access the HiddenBilingual Job Market Canada&#039;s top employers are looking for top bilingual talent We&#039;re here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\u2026 \u00d7 Loading\u2026\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/MS2_Bilingual-removebg-preview.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/careers\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\"},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/careers\\\/#listItem\",\"position\":2,\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/#organization\",\"name\":\"MS2 Bilingual\",\"description\":\"Flat-Rate French\\\/English Recruitment and Global Off-Shore Solutions\",\"url\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ms2bilingual.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/MS2_Bilingual-removebg-preview.png\",\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/careers\\\/#organizationLogo\",\"width\":335,\"height\":162,\"caption\":\"MS2 Bilingual\"},\"image\":{\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/careers\\\/#organizationLogo\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/careers\\\/#webpage\",\"url\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/careers\\\/\",\"name\":\"- MS2 Bilingual\",\"description\":\"Access the HiddenBilingual Job Market Canada's top employers are looking for top bilingual talent We're here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\\u2026 \\u00d7 Loading\\u2026\",\"inLanguage\":\"fr-CA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/careers\\\/#breadcrumblist\"},\"datePublished\":\"2026-07-27T00:28:37+00:00\",\"dateModified\":\"2026-07-27T01:21:37+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/\",\"name\":\"MS2 Bilingual\",\"description\":\"Flat-Rate French\\\/English Recruitment and Global Off-Shore Solutions\",\"inLanguage\":\"fr-CA\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ms2bilingual.com\\\/fr\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"- MS2 Bilingual","description":"Access the HiddenBilingual Job Market Canada's top employers are looking for top bilingual talent We're here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\u2026 \u00d7 Loading\u2026","canonical_url":"https:\/\/www.ms2bilingual.com\/fr\/careers\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/www.ms2bilingual.com\/fr\/careers\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.ms2bilingual.com\/fr#listItem","position":1,"name":"Home","item":"https:\/\/www.ms2bilingual.com\/fr"},{"@type":"ListItem","@id":"https:\/\/www.ms2bilingual.com\/fr\/careers\/#listItem","position":2,"previousItem":{"@type":"ListItem","@id":"https:\/\/www.ms2bilingual.com\/fr#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/www.ms2bilingual.com\/fr\/#organization","name":"MS2 Bilingual","description":"Flat-Rate French\/English Recruitment and Global Off-Shore Solutions","url":"https:\/\/www.ms2bilingual.com\/fr\/","logo":{"@type":"ImageObject","url":"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/MS2_Bilingual-removebg-preview.png","@id":"https:\/\/www.ms2bilingual.com\/fr\/careers\/#organizationLogo","width":335,"height":162,"caption":"MS2 Bilingual"},"image":{"@id":"https:\/\/www.ms2bilingual.com\/fr\/careers\/#organizationLogo"}},{"@type":"WebPage","@id":"https:\/\/www.ms2bilingual.com\/fr\/careers\/#webpage","url":"https:\/\/www.ms2bilingual.com\/fr\/careers\/","name":"- MS2 Bilingual","description":"Access the HiddenBilingual Job Market Canada's top employers are looking for top bilingual talent We're here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\u2026 \u00d7 Loading\u2026","inLanguage":"fr-CA","isPartOf":{"@id":"https:\/\/www.ms2bilingual.com\/fr\/#website"},"breadcrumb":{"@id":"https:\/\/www.ms2bilingual.com\/fr\/careers\/#breadcrumblist"},"datePublished":"2026-07-27T00:28:37+00:00","dateModified":"2026-07-27T01:21:37+00:00"},{"@type":"WebSite","@id":"https:\/\/www.ms2bilingual.com\/fr\/#website","url":"https:\/\/www.ms2bilingual.com\/fr\/","name":"MS2 Bilingual","description":"Flat-Rate French\/English Recruitment and Global Off-Shore Solutions","inLanguage":"fr-CA","publisher":{"@id":"https:\/\/www.ms2bilingual.com\/fr\/#organization"}}]},"og:locale":"fr_CA","og:site_name":"MS2 Bilingual - Flat-Rate French\/English Recruitment and Global Off-Shore Solutions","og:type":"article","og:title":"- MS2 Bilingual","og:description":"Access the HiddenBilingual Job Market Canada's top employers are looking for top bilingual talent We're here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\u2026 \u00d7 Loading\u2026","og:url":"https:\/\/www.ms2bilingual.com\/fr\/careers\/","og:image":"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/MS2_Bilingual-removebg-preview.png","og:image:secure_url":"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/MS2_Bilingual-removebg-preview.png","article:published_time":"2026-07-27T00:28:37+00:00","article:modified_time":"2026-07-27T01:21:37+00:00","twitter:card":"summary_large_image","twitter:title":"- MS2 Bilingual","twitter:description":"Access the HiddenBilingual Job Market Canada's top employers are looking for top bilingual talent We're here to guide you every step of the way Why work with us? Personalizedsupport Access to exclusive opportunities Career growth resources Send us your details Loading opportunities\u2026 \u00d7 Loading\u2026","twitter:image":"https:\/\/www.ms2bilingual.com\/wp-content\/uploads\/2025\/02\/MS2_Bilingual-removebg-preview.png"},"aioseo_meta_data":{"post_id":"2124","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"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_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"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":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2026-07-27 00:49:01","updated":"2026-08-21 20:03:44","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ms2bilingual.com\/fr\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.ms2bilingual.com\/fr"},{"label":"","link":"https:\/\/www.ms2bilingual.com\/fr\/careers\/"}],"_links":{"self":[{"href":"https:\/\/www.ms2bilingual.com\/fr\/wp-json\/wp\/v2\/pages\/2124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ms2bilingual.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ms2bilingual.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ms2bilingual.com\/fr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ms2bilingual.com\/fr\/wp-json\/wp\/v2\/comments?post=2124"}],"version-history":[{"count":7,"href":"https:\/\/www.ms2bilingual.com\/fr\/wp-json\/wp\/v2\/pages\/2124\/revisions"}],"predecessor-version":[{"id":2136,"href":"https:\/\/www.ms2bilingual.com\/fr\/wp-json\/wp\/v2\/pages\/2124\/revisions\/2136"}],"wp:attachment":[{"href":"https:\/\/www.ms2bilingual.com\/fr\/wp-json\/wp\/v2\/media?parent=2124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}