CINXE.COM
Search | Society for Laboratory Automation and Screening (SLAS)
<!DOCTYPE html> <html lang="en"> <head> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NFM95BJ');</script> <!-- End Google Tag Manager --> <base href="https://careers.slas.org/"> <title>Search | Society for Laboratory Automation and Screening (SLAS)</title> <meta name="description" content="Search jobs on the Job Board. Browse remote jobs, part-time jobs, and more. Apply today and start your new career!"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5" > <meta name="apple-mobile-web-app-capable" content="yes"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta content="j2eVOqBw7hUdUZavVSdohD5vFfc9qbgUTjn8NKQ7" name="csrf-token"> <meta content="index,follow" name="robots"> <link rel="canonical" href="https://careers.slas.org/jobs" /> <script> function loadScripts(source, callback) { if (!(source != null && (typeof source == 'string' || typeof source == 'object'))) return; let src = typeof source == 'string' ? [source] : source; let total = []; let loaded = []; let failed = []; let fn = function (e) { if (e.type == 'load') loaded.push(e.target.src); else failed.push(e.target.src); if ((loaded.length + failed.length) == total.length && typeof callback == 'function') callback(!!failed.length, loaded, failed); }; let load = function (src) { let s = document.createElement('script'); s.type = 'application/javascript'; s.src = src; s.addEventListener('error', fn, false); s.addEventListener('load', fn, false); document.getElementsByTagName('head')[0].appendChild(s); return s.src; }; for (let i in src) { let s = src[i].split(/[\s,]+/); for (let j in s) if (total.indexOf(s[j]) < 0) total.push(load(s[j])); } } function loadStyles(source, callback) { if (!(source != null && (typeof source == 'string' || typeof source == 'object'))) return; let src = typeof source == 'string' ? [source] : source; let total = []; let loaded = []; let failed = []; let fn = function (e) { if (e.type == 'load') loaded.push(e.target.src); else failed.push(e.target.src); if ((loaded.length + failed.length) == total.length && typeof callback == 'function') callback(!!failed.length, loaded, failed); }; let load = function (src) { let s = document.createElement('link'); s.rel = 'stylesheet'; s.href = src; s.addEventListener('error', fn, false); s.addEventListener('load', fn, false); document.getElementsByTagName('head')[0].appendChild(s); return s.src; }; for (let i in src) { let s = src[i].split(/[\s,]+/); for (let j in s) if (total.indexOf(s[j]) < 0) total.push(load(s[j])); } } function trackEvent(url, data, method = 'GET') { $.ajax({ url: url, method: method, data: data || {}, async: true, cache: false, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: (response) => { let trackingCode = response.code || ''; $('body').append(trackingCode) }, }); } function triggerEvent(name, element = document) { if(!name) return; const event = new Event(name); element.dispatchEvent(event); } if (typeof grecaptcha === 'undefined') { grecaptcha = {}; } grecaptcha.alreadyLoaded = [] grecaptcha.loadFromCDN = function(url, params) { if (! this.alreadyLoaded.includes(url)) { this.alreadyLoaded.push(url); let script = document.createElement('script'); script.setAttribute('type', 'text/javascript'); script.setAttribute('src', url); for (let i in params) { script.setAttribute(params[i], ''); } document.body.appendChild(script); } } grecaptcha.ready = function(cb){ if (typeof grecaptcha === 'object' && typeof grecaptcha.execute === 'undefined') { const c = '___grecaptcha_cfg'; window[c] = window[c] || {}; (window[c]['fns'] = window[c]['fns']||[]).push(cb); } else { setTimeout(function() { cb(); }, 1000) } } </script> <!--link rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" href="https://use.fontawesome.com/releases/v5.15.3/css/all.css"--> <link rel="stylesheet" href="themes/slas/css/style.css?1732265332"> <script src="themes/nextgen/js/jquery.min.js?1549902715"></script> <script src="themes/nextgen/js/bootstrap.min.js?1549902715"></script> <script src="themes/nextgen/js/plugins.js?1549902715"></script> <script src="js/common.min.js"></script> <script> $(function() { triggerEvent('jqueryReady'); triggerEvent('bootstrapReady'); triggerEvent('commonReady'); }) </script> <link href="themes/slas/css/theme_style.min.css?1699988356" rel="stylesheet"> <link rel="shortcut icon" href="https://wjm.s3.amazonaws.com/slas/uploads/logo_16px_1722425916.png"> <meta property="og:type" content="website"> <meta property="og:site_name" content="Society for Laboratory Automation and Screening (SLAS)"> <meta property="og:title" content="Search | Society for Laboratory Automation and Screening (SLAS)"> <meta property="og:description" content="Search jobs on the Job Board. Browse remote jobs, part-time jobs, and more. Apply today and start your new career!"> <meta property="og:image" content="/uploads/custom-background/7WIFe6zHhOV6kVPHj70FU73DcVl4d9zdTJ7APIGo.jpg"> <meta property="og:url" content="https://careers.slas.org/jobs"> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript> <iframe title="Google Tag Manager" src="https://www.googletagmanager.com/ns.html?id=GTM-NFM95BJ" height="0" width="0" style="display:none;visibility:hidden"> </iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <!--Start top and Logo--> <div id="banner-header-wide-1"></div> <div class="custom-header-mobile py-1"> <div class="container"> <div class="custom-header-navbar mt-1"> <a href="http://slas.org/"><img width="200" src="themes/slas/images/logo.png?1691069841"/></a> <nav class="navbar"> <div class="navbar-header custom-header-menu-btn"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar" > <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav custom-header-menu-list"> <li><a href="https://www.slas.org/membership/slas-membership-types-and-benefits/">Join</a></li> <li><a href="https://www.slas.org/about-slas/">About</a></li> <li><a href="https://connected.slas.org/home">CONNECTED Networking</a></li> <li><a href="https://www.pathlms.com/slas/">APPLIED Learning</a></li> <li><a href="https://www.slas.org/events/">EVENTS</a></li> <li><a href="https://www.slas.org/publications/">PUBLICATIONS</a></li> <li><a href="https://www.slas.org/membership/">MEMBERSHIP</a></li> <li><a href="https://www.slas.org/education/">EDUCATION</a></li> <li><a href="https://www.slas.org/careers/">CAREERS</a></li> <li><a href="https://www.slas.org/news-highlights/">NEWS & HIGHLIGHTS</a></li> </ul> </div> </nav> </div> </div> </div> <div class="custom-header-desktop "> <div class="container"> <div class="d-flex align-items-center"> <a class="mr-1" href="http://slas.org/"><img width="200" src="themes/slas/images/logo.png?1691069841"/></a> <ul class="d-flex custom-header-right-navbar py-3"> <li><a href="https://www.slas.org/membership/slas-membership-types-and-benefits/">Join</a></li> <li><a href="https://www.slas.org/about-slas/">About</a></li> <li><a class="custom-success" href="https://connected.slas.org/home">CONNECTED Networking</a></li> <li><a class="custom-success" href="https://www.pathlms.com/slas/">APPLIED Learning</a></li> </ul> </div> <ul class="d-flex justify-content-between "> <li><b><a href="https://www.slas.org/events/">EVENTS</a></b></li> <li><b><a href="https://www.slas.org/publications/">PUBLICATIONS</a></b></li> <li><b><a href="https://www.slas.org/membership/">MEMBERSHIP</a></b></li> <li><b><a href="https://www.slas.org/education/">EDUCATION</a></b></li> <li><b><a href="https://www.slas.org/careers/">CAREERS</a></b></li> <li><b><a href="https://www.slas.org/news-highlights/">NEWS & HIGHLIGHTS</a></b></li> </ul> </div> </div> <header id="ws-header"> <nav class="navbar navbar-inverse bg-dark"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#header-navbar" aria-expanded="false" aria-controls="navbar" aria-label="Toggle mobile navigation" > <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse guest-menu" id="header-navbar" > <div class="pull-left flex-sm-container clearfix"> <ul class="nav navbar-nav guest-menu"> <li id="menu-item-1958" class=""> <a href="/" ex-data > Home </a> </li> <li id="menu-item-1960" class="current"> <a href="/jobs" > Search </a> </li> <li id="menu-item-1963" class=""> <a href="/employer-directory" > Directory </a> </li> <li id="menu-item-1966" class=""> <a href="/contact-us" > Contact Us </a> </li> <li id="menu-item-1968" class=""> <a href="#" class="dropdown-toggle" data-toggle="dropdown" > Career Resources <span class="caret"></span> </a> <ul class="dropdown-menu"> <li> <a href="/career-resources" > Career Advice </a> </li> <li> <a href="/career" > Career Guides </a> </li> <li> <a href="/career-resources" > Career Advice </a> </li> <li> <a href="/interview-coach" > Interview Coach </a> </li> <li> <a href="/analyze-offer" > Offer Analyzer </a> </li> </ul> </li> </ul> <p class="navbar-btn pull-left"> <a href="/employer-offers" class="btn btn-primary pricing-btn" > Pricing </a> </p> </div> <nav class="nav navbar-right flex-sm-container"> <ul class="nav navbar-nav mx-0"> <li class="register-top"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> Register <span class="caret"></span> </a> <ul class="dropdown-menu reg-choose"> <li><a href="/register-seeker">Job Seekers</a></li> <li><a href="/register-employer">Employers</a></li> </ul> </li> <li> <a class="sign-in" href="/sign-in"> <i class="fas fa-lock"></i> Sign In </a> </li> <script> var scriptsLanguage = 'EN'; </script> </ul> <p class="navbar-btn pull-left"> <a class="btn btn-primary post-job" href="/employer-offers">Post a Job</a> </p> </nav> <script src="themes\nextgen\plugins\pusher-js\pusher.min.js"></script> </div> </div> </nav> </header> <div class="jobs-view mt-0"> <div class="top-form-wrap py-1"> <div class="container"> <form name="pane-search" method="GET" action="https://careers.slas.org/jobs" class="form-inline pane-search-form"> <div class="row"> <div class="col-xs-12 col-md-12"> <input type="hidden" name="locale" value="en" /> <input type="hidden" name="page" value="1" /> <input type="hidden" name="sort" value="relevance" /> <input type="hidden" name="country" value="" /> <input type="hidden" name="state" value="" /> <input type="hidden" name="city" value="" /> <input type="hidden" name="zip" value="" /> <input type="hidden" name="latitude" value="" /> <input type="hidden" name="longitude" value="" /> <div class="row"> <div class="form-group transparent-addons col-md-5 col-sm-12 mb-md-0 mb-sm-1"> <div class="input-group w-100"> <div class="input-group-addon"> <b> What </b> </div> <input type="text" class="form-control border-left-0 border-right-0" name="keywords" placeholder="Keyword, job title, or company" value="" /> <div class="input-group-addon"> <i class="glyphicon glyphicon-search"></i> </div> </div> </div> <div class="form-group transparent-addons col-md-5 col-sm-12 mb-md-0 mb-sm-1"> <div class="input-group w-100"> <div class="input-group-addon"> <b> Where </b> </div> <input type="text" class="location-input form-control border-left-0 border-right-0" name="city_state_zip" placeholder="City, state or zip code" value="" /> <div class="input-group-addon"> <i class="glyphicon glyphicon-map-marker"></i> </div> </div> </div> <div class="form-group col-md-2 col-sm-12"> <button type="submit" class="find-job-btn btn btn-success w-100">Find a job</button> </div> </div> </div> <div class="col-xs-12 col-md-12"> <ul class="js-search-filters-container list-unstyled list-inline relative pt-1 mb-0"> </ul> </div> </div> </form> </div> </div> <div class="content-block bg-light pt-1"> <div class="container js-search-container"> <div class="row"> <div class="col-xs-12"> <div class="search-topbar bg-white d-flex flex-wrap align-items-center justify-content-between rpx-4 rpy-4 mt-0 mb-1 d-none relative"> <div class="left-side flex-grow-1 rpl-2"> <h1 class="js-search-title-container h6 rmy-2 my-md-0 text-bold"> <span class="title-keywords" ></span> <span class="font-weight-normal"> <span class="title-total"></span> </span> </h1> </div> <div class="right-side flex-shrink-0 rpx-2 mw-100"> <div class="d-flex flex-wrap align-items-center"> <div class="flex-shrink-0 mr-1 rpr-3 "> <div class="dropdown sort-by-wrap relative hide"> <span>Sort By:</span> <a href="#" class="dropdown-toggle" id="sortBy" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <span class="sort-current">Relevance</span> <i class="fas fa-chevron-down"></i> </a> <ul class="dropdown-menu" aria-labelledby="sortBy"> <li><a href="javascript:void(0);" class="js-search-sort" data-sort="relevance">Relevance</a></li> <li><a href="javascript:void(0);" class="js-search-sort" data-sort="date">Date</a></li> </ul> </div> <div class="js-back-button-slot rmy-2 rmt-sm-0 small relative" style="display: none;"> <a href="javascript:void(0);" class="js-back-button relative"><i class="fas fa-backward"></i> Back</a> </div> </div> <div class="flex-shrink-0 text-right hide-locations-map-wrapper rmy-2 rmy-sm-0"> <span>Map View</span> <input type="checkbox" name="hide_locations_map" id="hide_locations_map" > <label for="hide_locations_map"></label> </div> </div> </div> </div> </div> </div> <div class="map-loader w-100 text-center hidden" style="padding-top: 20vh; padding-bottom: 20vh;"> <svg class="loading" width="51" height="50" viewBox="0 0 51 50" fill="none" xmlns="http://www.w3.org/2000/svg"> <circle cx="25" cy="25" r="22.5" stroke="#F8F9FA" stroke-width="5"/> <path d="M25 3C28.0204 3 31.0112 3.62078 33.8017 4.82689C36.5922 6.033 39.1277 7.80083 41.2635 10.0294C43.3992 12.258 45.0934 14.9038 46.2492 17.8156C47.4051 20.7274 48 23.8483 48 27" stroke="#6C757D" stroke-width="5" stroke-linecap="round"/> </svg> <br> <span class="loader-text">Loading...</span> </div> <div class="map-widget-wrapper" style="overflow: hidden; height: 0;"> <div class="alert alert-info alert-dismissible mb-1 map-warning-alert small" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span class="small" aria-hidden="true">×</span></button> Nationwide and Remote jobs are not shown </div> <script> $('.map-warning-alert .close').click(function () {document.cookie = 'map_warning_disabled=true'}) </script> <div class="map-wrap mb-1 clearfix" data-map-enabled="1" data-show-company-data="1" style="position: absolute; opacity: 0;" > </div> </div> <div class="row js-content-block"> <div class="search-sidebar col-lg-5 col-xs-12"> <div class="sidebar-scroll-container relative"> <ul class="list-group list-unstyled mb-0 top-banner"></ul> <ul class="list-group list-unstyled mb-0 js-search-sponsored-slot js-search-sponsored-slot-top"></ul> <ul class="list-group list-unstyled mb-0 js-search-regular-slot"></ul> <ul class="list-group list-unstyled mb-0 js-search-sponsored-slot js-search-sponsored-slot-bottom"></ul> <div class="js-load-more-slot mb-1" style="display: none"> <button class="btn btn-block btn-success js-load-more" data-url="">Load more...</button> </div> </div> </div> <div class="col-lg-7 col-xs-12 job-wrap mb-1"> <div class="row"> <div class="col-xs-12 pl-lg-0 js-view-blocks-slot"></div> <div class="js-positioning-slot"> <div class="promoted-listings-slot clearfix" data-listing-enabled="0"></div> <div class="subscribe-form-wrap clearfix"></div> <div class="career-guide-block"> <div class="col col-xs-12 pl-lg-0"> </div> </div> <div class="js-career-paths-slot clearfix" data-career-paths-enabled="0"></div> <div class="js-articles-slot mt-1 clearfix" data-articles-url="https://careers.slas.org/api/v1/articles/category/Find%20the%20Job?limit=2"></div> <div class="js-career-guide-slot clearfix"></div> </div> </div> </div> </div> </div> </div> <div class="popups"> <div class="apply-wrap"> <div class="modal modal-custom fade apply-popup apply-modal" tabindex="-1" role="dialog" id="apply-popup"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="apply-job-block"> <div class="modal-header d-flex align-items-center px-2"> <h5 class="modal-title flex-grow-1"> Apply for this job </h5> <button type="button" class="close svg-close" data-dismiss="modal" aria-label="Close" > <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="d-block bi bi-x" viewBox="0 0 16 16"> <path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z" /> </svg> </button> </div> <div class="modal-body apply-form-body relative text-left row d-flex flex-wrap pt-0 px-1"></div> </div> </div> </div> </div> </div> <script> document.addEventListener('jqueryReady', function() { /** selectedJobId * @type {number|null} */ let selectedJobId; /** * observer * @type {MutationObserver|null} */ let observer; /** selectedResumeId * @type {number|null} */ let selectedResumeId = null; /** * selectedCoverLetterId * @type {number|null} */ let selectedCoverLetterId = null; /** * createFetchRequestSettings * @param {string} method * @param {Object} formData * @returns {Object} */ function createFetchRequestSettings(method, formData) { let headers = new Headers({ 'X-CSRF-TOKEN': 'j2eVOqBw7hUdUZavVSdohD5vFfc9qbgUTjn8NKQ7', 'Accept': 'application/json', }); return { method, headers, body: formData }; } /** * updateAISuggestionsTitle * @param {string} title */ function updateAISuggestionsTitle(title) { if(title && title.length > 0) { $('.ai-suggestion-title').empty().text(title); } } /** * getCoverLetterSuggestions * @returns {string} */ function getSuggestionsURL(route) { return Ziggy.namedRoutes[route].uri.replace('/{model?}', ''); } /** * addParamsToURL * @param {string} url * @param {string|number} letterId * @returns {string} */ function addParamsToURL(url, letterId) { return letterId !== null && letterId !== undefined ? `${url}/${letterId}` : url; } /** * getCoverLetterOrResumeFile * @param {HTMLElement} aiBtn * @returns {File} */ function getCoverLetterOrResumeFile(aiBtn) { return aiBtn.closest('.upload-file').find('.file-upload-input')[0].files[0]; } /** * setAlertErrorMessage * @param {string} errorMessage * @param {boolean} [isInternalError=false] */ function setAlertErrorMessage(errorMessage, isInternalError = false) { const alertMessageList = $('.ai-suggestions-alert .alert-messages-list'); alertMessageList.empty(); if (errorMessage) { $('.error-list-header').toggleClass('d-none', isInternalError); $('.ai-suggestions-alert').removeClass('d-none'); alertMessageList.html(errorMessage); $('.ai-suggestion-title, .ai-suggestions-text').parent().addClass('d-none'); } } /** * getResumeSuggestions * @param {number|null} [resumeId=null] * @param {File|null} resumeFile */ async function getResumeSuggestions(resumeFile, resumeId = null) { let url = getSuggestionsURL('api.ai.improvement.resume'); const formData = new FormData(); formData.append('job_id', selectedJobId); if (resumeFile) { formData.append('resume_upload', resumeFile); } else if (resumeId) { url = addParamsToURL(url, resumeId); } const settings = createFetchRequestSettings('POST', formData); try { const response = await fetch(url, settings); const data = await response.json(); if (!response.ok) { let errorMessage = ``; for (const [field, message] of Object.entries(data.errors)) { errorMessage += `<li>${message}</li>`; } setAlertErrorMessage(errorMessage); } insertSuggestions(true, data.data); } catch (error) { setAlertErrorMessage("Something went wrong. Please try again later.", true); } } /** * getCoverLetterSuggestions * @param {File|null} [coverLetter=null] * @param {string|null} [coverLetterText=null] * @param {number|null} [coverId=null] */ async function getCoverLetterSuggestions(coverLetter = null, coverLetterText = null, coverId = null) { let url = getSuggestionsURL('api.ai.improvement.cover'); const formData = new FormData(); formData.append('job_id', selectedJobId); if (coverLetter) { formData.append('cover_upload', coverLetter); } else if (coverLetterText) { formData.append('body', coverLetterText); } else if (coverId) { url = addParamsToURL(url, coverId); } const settings = createFetchRequestSettings('POST', formData); try { const response = await fetch(url, settings); const data = await response.json(); if (!response.ok) { let errorMessage = ``; for (const [field, message] of Object.entries(data.errors)) { errorMessage += `<li>${message}</li>`; } setAlertErrorMessage(errorMessage); } insertSuggestions(true, data.data); } catch (error) { setAlertErrorMessage("Something went wrong. Please try again later.", true); } } /** * mapAISuggestions * @param {Object} suggestions * @returns {string} */ function mapAISuggestions(suggestions) { return suggestions.map(({title, description}, index) => { return ` <h5 class="mb-1 mt-0">${index + 1}. ${title}</h5> <p class="text-muted">${description}</p> `; }); } /** * insertSuggestions * @param {boolean} isDataLoaded * @param {Object} [data={}] */ function insertSuggestions(isDataLoaded, data = {}) { const aiSuggestionsBlock = $('.ai-suggestions-block'); const aiSuggestionsTextBlock = aiSuggestionsBlock.find('.ai-suggestions-text'); const placeholder = ` <div class="placeholders slot-placeholders job-slot-placeholders"> <div class="placeholders"> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> </div> </div> `; if (!isDataLoaded) { $('.ai-suggestions-alert').addClass('d-none'); $('.ai-suggestion-title, .ai-suggestions-text').parent().removeClass('d-none'); aiSuggestionsTextBlock.html(placeholder); } if (data && data.response) { $('.ai-suggestions-alert').addClass('d-none'); $('.ai-suggestion-title, .ai-suggestions-text').parent().removeClass('d-none'); aiSuggestionsTextBlock.empty().html(mapAISuggestions(data.response)); } else if (data === null || data === undefined) { aiSuggestionsTextBlock.empty().html("No AI suggestions available at the moment."); } } /** * changeAISuggestionsBlockVisibility * @param {boolean} [shouldResetView=false] */ function changeAISuggestionsBlockVisibility(shouldResetView = false) { const aiSuggestionsBlock = $('.apply-modal .ai-suggestions-block'); const applyJobBlock = $('.apply-modal .apply-form').parent(); const modalDialog = $('.apply-modal .modal-dialog'); if (shouldResetView) { aiSuggestionsBlock.addClass('d-none'); applyJobBlock.removeClass('col-md-6').addClass('col-md-12'); modalDialog.removeAttr('style'); return; } aiSuggestionsBlock.removeClass('d-none'); applyJobBlock.removeClass('col-md-12').addClass('col-md-6'); modalDialog.css('width', '95%'); } /** * changeAISuggestionsBtnVisibility * @param {boolean} [isResumePart=false] */ function changeAISuggestionsBtnVisibility(isResumePart = false) { const panel = isResumePart ? '.apply-job-panel-resume' : '.apply-job-panel-cover'; setTimeout(() => $(`${panel} .upload-panel-footer`).removeClass('visibility-hidden'), 0); $(`${panel} .action-buttons`).addClass('d-none'); } function insertAIBtnToSummernote() { const summernoteToolbar = $('.note-toolbar'); const isAISuggestionActive = !!0; if (summernoteToolbar.find('.improve-with-ai-btn').length === 0 && isAISuggestionActive) { const aiBtnHtml = ` <div class="improve-with-ai-btn position-relative px-1 bg-white note-btn btn-sm text-primary" role="button"> <img src="themes/nextgen/images/ai-suggestion-icon.png" alt="AI Suggestion Icon" width=20 height=20 /> Improve with AI </div>`; const btnGroupHtml = `<div class="note-btn-group btn-group position-absolute note-ai-button">${aiBtnHtml}</div>`; summernoteToolbar.append(btnGroupHtml); } } /** * getPreviouslyUploadedResume * @param {Event} e */ function getPreviouslyUploadedResume(e) { e.preventDefault(); selectedResumeId = $(this).data('id'); changeAISuggestionsBtnVisibility(true); } /** * getPreviouslyUploadedCoverLetter * @param {Event} e */ function getPreviouslyUploadedCoverLetter(e) { e.preventDefault(); selectedCoverLetterId = $(this).data('id'); changeAISuggestionsBtnVisibility(false); } function handleApplyPopupHidden() { changeAISuggestionsBlockVisibility(true); if (observer) observer.disconnect(); } /** * handleImproveWithAiClick * @param {Event} e */ function handleImproveWithAiClick(e) { e.stopImmediatePropagation(); initAdjustHeightTrigger(); const $button = $(e.currentTarget); const sectionType = $button.closest('.upload-file').find('.file-upload-input').data('section-type'); const uploadedFile = getCoverLetterOrResumeFile($button); selectedJobId = $('.apply-post-info .apply-job-title').attr('data-job-id'); if (sectionType === 'cover_upload') { getCoverLetterSuggestions(uploadedFile || null, null, selectedCoverLetterId); updateAISuggestionsTitle("Here are some suggestions to improve your cover letter:"); } else if (sectionType === 'resume_upload') { getResumeSuggestions(uploadedFile || null, selectedResumeId); updateAISuggestionsTitle("Here are some suggestions to improve your resume:"); } changeAISuggestionsBlockVisibility(); insertSuggestions(false); scrollToAISuggestionBlock(); } function handleImproveWithAiInToolbarClick() { const coverLetterText = $('textarea.cover-option').val(); selectedJobId = $('.apply-post-info .apply-job-title').attr('data-job-id'); initAdjustHeightTrigger(); getCoverLetterSuggestions(null, coverLetterText); updateAISuggestionsTitle("Here are some suggestions to improve your cover letter:"); changeAISuggestionsBlockVisibility(); insertSuggestions(false); scrollToAISuggestionBlock(); } function scrollToAISuggestionBlock() { if(window.innerWidth <= 768) { document.querySelector('.ai-suggestions-block').scrollIntoView({ behavior: 'smooth' }); } } function adjustHeights() { const applyFormHeight = $('.apply-form').outerHeight(); const aiSuggestionsParent = $('.ai-suggestions-text').parent(); const aiSuggestionTitleParentHeight = $('.ai-suggestion-title').parent().outerHeight(); const aiSuggestionTextParentHeight = applyFormHeight - aiSuggestionTitleParentHeight; aiSuggestionsParent.css({ 'max-height': `${aiSuggestionTextParentHeight}px`, 'overflow-y': 'auto' }); } /** * debounce * @param {Function} func * @param {number} wait * @returns {Function} */ function debounce(func, wait) { let timeout; return function(...args) { const later = () => { clearTimeout(timeout); func.apply(this, args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; } const debouncedAdjustHeights = debounce(adjustHeights, 200); function initAdjustHeightTrigger() { observer = new MutationObserver((mutations) => { let shouldAdjust = false; for (const mutation of mutations) { if (mutation.type === 'childList' || mutation.type === 'attributes') { shouldAdjust = true; break; } } if (shouldAdjust) { debouncedAdjustHeights(); } }); const config = { attributes: true, childList: true, subtree: true }; const targetNode = document.querySelector('.apply-form')?.parentNode; if (targetNode) { observer.observe(targetNode, config); } } $(document).on('hidden.bs.modal', '#apply-popup', handleApplyPopupHidden); $(document).on('click', '.upload-panel-footer .improve-with-ai-btn', handleImproveWithAiClick); $(document).on('click', '.note-toolbar .improve-with-ai-btn', handleImproveWithAiInToolbarClick); $(document).on('click', '.apply-job-panel-resume .dropdown-menu a', getPreviouslyUploadedResume); $(document).on('click', '.apply-job-panel-cover .dropdown-menu a', getPreviouslyUploadedCoverLetter); $(document).on('click', '.copy-paste-cover-letter', insertAIBtnToSummernote); }); </script> </div> </div> <div class="js-tracking-codes hide"></div> <script> let userType = 'guest'; let cantSeeContent = false; </script> <script async src="https://static.addtoany.com/menu/page.js" onload=" a2a_config.locale = scriptsLanguage; a2a_config.exclude_services = [ 'pocket', 'tumblr', 'amazon_wish_list', 'aol_mail', 'balatarin', 'bibsonomy', 'bitty_browser', 'blogger', 'blogmarks', 'bookmarks_fr', 'box_net', 'buffer', 'diary_ru', 'diaspora', 'digg', 'diigo', 'douban', 'draugiem', 'evernote', 'fark', 'flipboard', 'folkd', 'google_classroom', 'hacker_news', 'hatena', 'houzz', 'instapaper', 'kakao', 'kindle_it', 'known', 'line', 'livejournal', 'mail_ru', 'mastodon', 'mendeley', 'meneame', 'mewe', 'microsoft_teams', 'mixi', 'myspace', 'odnoklassniki', 'outlook_com', 'papaly', 'pinboard', 'plurk', 'print', 'printfriendly', 'pusha', 'qzone', 'rediff', 'refind', 'sina_weibo', 'sitejot', 'skype', 'slashdot', 'snapchat', 'stocktwits', 'svejo', 'symbaloo_bookmarks', 'threema', 'trello', 'twiddla', 'typepad_post', 'viber', 'vk', 'wechat', 'wordpress', 'wykop', 'xing', 'yahoo_mail', 'yummly' ]; "></script> <script src="themes/nextgen/js/pages/_page.js?1728058776"></script> <script id="pv_jsAlert" type="text/x-jsrender"> <%if isStandalone %> <div class="container mt-1"> <%/if%> <%if type === 'static-panel' %> <li class="panel panel-default card rounded mb-1"> <div class="panel-body card-body"> <strong>Sorry, we couldn't find anything. Try one of the following</strong> <ul class="actions-list mt-05"> <li> Change or remove filters to broaden your search</li> <li> Check for spelling errors</li> <li> Replace abbreviations with complete words</li> </ul> </div> </li> <%else%> <div class="alert <%: type %> alert-dismissible js-alert-container" role="alert"> <button type="button" class="close d-lg-none" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button> <%if title !== '' %> <h4><%: title %></h4> <%/if%> <p> <%: text %> </p> </div> <%/if%> <%if isStandalone %> </div> <%/if%> </script> <script src="themes/nextgen/js/pages/_alerts.js?1728058776"></script> <script id="pv_jsLoader" type="text/x-jsrender"> <div class="ws-loading-wrap<%if (position !== '')%> loading-<%: position %><%/if %>"> <div class="ws-loading<%if (size !== '')%> loading-<%: size %><%/if %>"></div> </div> </script> <script src="themes/nextgen/js/pages/_loader.js?1728058776"></script> <script id="pv_listings" type="text/x-jsrender"> <div class="col col-xs-12 pl-lg-0"> <div class="spotlight-employers-search yellow panel panel-warning card border-warning"> <div class="panel-heading card-header clearfix"> <b class="m-0 pull-right text-dark"> <small> Promoted Listings <span class="fas fa-question-circle icon text-dark" aria-hidden="true" data-toggle="tooltip" data-placement="bottom" id="listing_tooltip" title="Sponsored listings are advertisements of participating companies."> </span> </small> </b> </div> <div class="panel-body card-body pb-0"> <div class="pl-0"> <div class="row"> <div class="flex-items d-flex flex-wrap align-items-center justify-content-start"> <%for listings %> <div class="spotlight-employer text-center flex-item col-md-3 col-xs-6 mb-2 mb-md-1 text-center <%if isExternal %> external-listing <%/if %>"> <%: code %> </div> <%/for %> </div> </div> </div> </div> </div> <div class="clearfix"></div> </script> <script src="themes/nextgen/js/pages/_listings.js?1728058776"></script> <script id="pv_agentForm" type="text/x-jsrender"> <%if !inModal %> <div class="col col-xs-12 pl-lg-0 "> <div class="d-block agent-form-wrap panel card panel-default rounded mb-1"> <div class="panel-heading"> <%if jobTitle %> <span>Get new jobs in your inbox similar to <b><%: jobTitle %></b></span> <%else %> <span>Get new jobs in your inbox</span> <%/if %> </div> <div class="panel-body card-body relative"> <%else %> <div class="apply-agent-form"> <p class="text-muted"> <%if jobTitle %> Get new jobs in your inbox similar to <b><%: jobTitle %></b> <%else %> Get new jobs in your inbox <%/if %> </p> <%/if %> <%if error.errors %> <div class="alert alert-danger"> <%props error.errors %> <p><%: prop %></p> <%/props %> </div> <%/if%> <form class="agent-form"> <%if captcha || captcha.enabled === true %> <%: captcha.code %> <%/if%> <%if subscribeResponse.current_freq %> Alert created for <%: email %>. You will receive alerts <%: subscribeResponse.current_freq %>. <%if subscribeResponse.edit_freq === true %> <fieldset class="mt-1"> <div class="form-group"> <label for="new_freq">Change this:</label> <select id="new_freq" name="new_freq" class="form-control freq_change_form_dropdown" value="<%: subscribeResponse.current_freq %>"> <%props subscribeResponse.available_frequencies %> <option value="<%>key%>" <%if key === #parent.parent.parent.parent.data.subscribeResponse.current_freq %>checked="checked"<%/if%> > <%>prop%> </option> <%/props%> </select> </div> <%if inModal %> <div class="form-group text-right mb-0"> <button type="button" class="btn btn-secondary rmr-1" data-dismiss="modal"> Close </button> <button type="button" class="btn btn-success js-change-freq"> Save </button> </div> <%else%> <div class="form-group mb-0"> <button type="button" class="btn btn-success js-change-freq"> Save </button> </div> <%/if %> </fieldset> <%/if%> <%else%> <%if captcha.enabled === true %> <%: captcha.script %> <%/if%> <%if agent_id %> <%: agent_id %> <%else%> <p>Your email address<i class='required'>*</i></p> <div class="form-group"> <%if !inModal %> <input type="email" class="form-control" name="email" required="required" value="" placeholder="Enter email"> <%else%> <input type="email" class="form-control" name="email" required="required" value="<%if email && email !== '' %><%: email %><%/if%>"> <%/if%> </div> <%if !inModal %> <div class="form-group mb-0"> <button type="submit" class="btn btn-success"> Sign me up </button> </div> <p class="privacy-text mt-05 mb-0"> By signing up, you agree to the <a href="http://www.webscribble.com/tos" target="_blank">terms of use</a> and <a href="http://www.webscribble.com/privacy-policy" target="_blank">privacy policy</a> </p> <%else%> <div class="d-flex align-items-center submit-block mt-2"> <div class="flex-grow-1 mr-1"> <p class="privacy-text text-muted my-0"> By subscribing, you agree to the <a href="http://www.webscribble.com/tos" target="_blank">terms of use</a> and <a href="http://www.webscribble.com/privacy-policy" target="_blank">privacy policy</a> </p> </div> <div class="flex-shrink-0"> <button type="button" class="btn btn-secondary rmr-1" data-dismiss="modal">Close</button> <button type="submit" class="btn btn-success">Subscribe</button> </div> </div> <%/if%> <%/if%> <%/if%> </form> <%if !inModal %> </div> </div> </div> <%else%> </div> <%/if%> </script> <script src="themes/nextgen/js/pages/_jobAgent.js?1728058776"></script> <script id="placeholder" type="text/x-jsrender"> <%if type === 'job' %> <div class="panel panel-default placeholders slot-placeholders job-slot-placeholders"> <div class="panel-body px-2 py-1"> <div class="position-relative"> <div class="job-titles"> <h1 class="placeholder"></h1> <div class="placeholder-inline"> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> </div> </div> </div> <div class="col placeholders"> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> <span class="placeholder"></span> </div> </div> </div> <%/if %> <%if type === 'list' %> <%for start=0 end=count %> <li class="panel card panel-default rounded mb-1 placeholders slot-placeholders list-placeholders"> <div class="panel-body card-body"> <div class="position-relative"> <div class="job-titles"> <h1 class="placeholder mt-05"></h1> <div class="placeholder-inline"> <span class="placeholder my-1"></span> <span class="placeholder my-1"></span> <span class="placeholder my-1"></span> </div> </div> </div> <div class="col placeholders"> <span class="placeholder mb-05"></span> <span class="placeholder my-05"></span> <span class="placeholder my-05"></span> <span class="placeholder my-05"></span> <span class="placeholder my-05"></span> <span class="placeholder my-05"></span> <span class="placeholder mt-05"></span> </div> </div> </li> <%/for %> <%/if %> <%if type === 'job-agent' %> <div class="col col-xs-12 pl-lg-0"> <div class="d-block agent-form-wrap panel card panel-default rounded mb-1 placeholders"> <div class="panel-heading"> <span class="placeholder"></span> </div> <div class="panel-body card-body relative"> <div class="placeholder-inline mb-1"> <span class="placeholder"></span> </div> <div class="form-group"> <span class="placeholder w-100"></span> </div> <div class="form-group placeholder-inline mb-0"> <span class="placeholder"></span> </div> <div class="mt-05"> <span class="placeholder"></span> </div> </div> </div> </div> <%/if %> <%if type === 'apply-form' %> <div class="placeholders"> <span class="placeholder w-25 my-05"></span> <span class="placeholder w-100 mb-1"></span> <span class="placeholder w-25 my-05"></span> <span class="placeholder w-100 mb-1"></span> <span class="placeholder w-25 my-05"></span> <span class="placeholder w-100 mb-1"></span> <span class="placeholder w-50 my-1"></span> <span class="placeholder w-50 my-1"></span> <span class="placeholder w-50 my-1"></span> <span class="placeholder w-75 my-05"></span> <span class="placeholder w-75 my-05"></span> <div class="form-group mb-0 placeholder-inline"> <span class="placeholder mt-05"></span> </div> </div> <%/if %> <%if type === 'career-paths' %> <div class="d-block panel card panel-default rounded mb-1 placeholders"> <div class="panel-heading"> <span class="placeholder"></span> </div> <div class="panel-body card-body relative"> <h1 class="placeholder w-50 mt-05"></h1> <span class="placeholder w-25 my-05"></span> <span class="placeholder w-100 h-300 my-1"></span> <div class="d-flex flex-wrap flex-sm-nowrap justify-content-between"> <div class="w-75 pr-1 mb-05"> <span class="placeholder w-75 my-05"></span> <span class="placeholder placeholder-skills w-75 my-05"></span> </div> <div class="w-25 flex-shrink-0 text-body font-weight-bold float-right mb-05"> <span class="placeholder w-100 my-05 mr-1"> </div> </div> </div> </div> <%/if %> <%if type === 'articles' %> <div class="articles-wrapper placeholders"> <div class="row mx-0 ml-lg-n1"> <div class="col-xs-12"> <h5 class="mt-0"> Career resources to find the job </h5> </div> </div> <div class="row mx-0 ml-lg-n1"> <%for start=0 end=count %> <div class="col-xs-12 col-sm-6"> <div class="panel panel-default flex-grow-1"> <div class="panel-img-wrapper panel-img-wrapper-top" style="--aspect-ratio:16/9;"> <span class="placeholder w-100 h-100"></span> </div> <div class="panel-body"> <span class="placeholder w-50"></span> </div> </div> </div> <%/for %> </div> </div> <%/if %> </script> <script src="themes/nextgen/js/pages/_placeholder.js?1728058776"></script> <script src="https://www.gstatic.com/charts/loader.js"></script> <script id="pv_careerPaths" type="text/x-jsrender"> <div class="col col-xs-12 pl-lg-0"> <%if data.averageSalaryList && data.averageSalaryList.length %> <div class="d-block panel card panel-default rounded mb-1"> <div class="panel-heading"> Average Salary for <b><%> data.keywords %></b> </div> <div class="panel-body card-body relative"> <h3 class="mt-0"> <%> ~formatSalary(data.averageSalaryList[0].salary.p50, '$') %> <span class="text-muted small">/ year</span> </h3> <%if data.averageSalaryList[0].salary.dataPoints > 0 %> <div class="small text-muted"> Based on <%> data.averageSalaryList[0].salary.dataPoints %> <%if data.averageSalaryList[0].salary.dataPoints === 1 %> salary <%else%> salaries <%/if%> </div> <%/if %> <div id="pv-dashboard" class="mb-1"> <div id="pv-chart-combo"></div> <div id="pv-chart-control-range" style="display: none"></div> </div> <div class="list-group list-group-flush list-group-flush-top mb-0"> <%for data.averageSalaryList end=3 %> <a class="list-group-item border-left-0 border-right-0" href="<%> url %>" target="_blank" > <div class="d-flex flex-wrap flex-sm-nowrap justify-content-between"> <div class="pr-1 mb-05"> <p class="list-group-item-link font-weight-bold mb-0"><%> name %></p> </div> <%if salary.p10 %> <div class="flex-shrink-0 text-body font-weight-bold float-right mb-05"> <%> ~formatSalary(salary.p10, '$') %> <%if salary.p90 %> - <%> ~formatSalary(salary.p90, '$') %> <%/if%> </div> <%/if%> </div> <p class="small text-muted mb-0"> <%if skills.length %> <span>Top Skills:</span> <%props skills end=4 %> <%> prop %><%if #getIndex() !== #get("array").data.length-1 %>, <%/if%> <%/props%> <%/if%> </p> </a> <%/for%> </div> </div> </div> <%* (function() { var computedStyle = getComputedStyle(document.documentElement), blueColor = computedStyle.getPropertyValue('--color-blue').trim(), chartColors = [blueColor]; google.charts.load('43', { callback: function () { window.addEventListener('resize', loadBellCurve, false); loadBellCurve(); }, packages:['controls', 'corechart'] }); function loadBellCurve() { // build data sample var rangeMin = parseInt(-4); var rangeMax = parseInt(4); var step = 0.05; var dataChart = new google.visualization.DataTable({ cols: [ {label: 'Sample', type: 'string'}, {label: 'Value', type: 'number'}, {label: 'Var', type: 'number'}, {label: 'X', type: 'number'}, {label: 'Y', type: 'number'} ] }); for (var i = rangeMin; i <= rangeMax; i=i+step) { dataChart.addRow([i.toString(), i, null, null, null]); } // find sample mean var dataMean = google.visualization.data.group( dataChart, [{column: 0, type: 'string', modifier: function () {return '';}}], [{column: 1, type: 'number', aggregation: google.visualization.data.avg}] ); var sampleMean = dataMean.getValue(0, 1); // find sample standard deviation for (var i = 0; i < dataChart.getNumberOfRows(); i++) { dataChart.setValue(i, 2, Math.pow(dataChart.getValue(i, 1) - sampleMean, 2)); } var dataVar = google.visualization.data.group( dataChart, [{column: 0, type: 'string', modifier: function () {return '';}}], [{column: 2, type: 'number', aggregation: google.visualization.data.avg}] ); var sampleStdDev = Math.sqrt(dataVar.getValue(0, 1)); // set standard deviation ranges 1-3 var sampleRange = []; sampleRange.push([ sampleMean - (sampleStdDev * 3), sampleMean + (sampleStdDev * 3) ]); // set X/Y coordinates for (var i = 0; i < dataChart.getNumberOfRows(); i++) { dataChart.setValue(i, 3, dataChart.getValue(i, 1) * sampleStdDev + sampleMean); dataChart.setValue(i, 4, getNormalDistribution(dataChart.getValue(i, 1) * sampleStdDev + sampleMean, sampleMean, sampleStdDev) + 0.00995); } // fill-in standard deviation areas var stdDevCols = {}; stdDevCols['1_SD'] = dataChart.addColumn({label: '', type: 'number'}); stdDevCols['2_SD'] = dataChart.addColumn({label: '', type: 'number'}); stdDevCols['3_SD'] = dataChart.addColumn({label: '', type: 'number'}); for (var i = Math.floor(sampleRange[0][0]); i <= Math.ceil(sampleRange[0][1]); i=i+0.05) { var rowIndex = dataChart.addRow(); dataChart.setValue(rowIndex, 3, i); if (((i) >= sampleRange[0][0]) && ((i) < sampleRange[0][1])) { dataChart.setValue(rowIndex, stdDevCols['1_SD'], getNormalDistribution(i, sampleMean, sampleStdDev)); } else { dataChart.setValue(rowIndex, stdDevCols['2_SD'], getNormalDistribution(i, sampleMean, sampleStdDev)); } } // add vertical lines for mean and standard deviations addVerticalLine( 'MEAN', sampleMean, formatSalary(data.data.averageSalaryList[0].salary.p50, '$') ); addVerticalLine( '< 1 SD', sampleRange[0][0], formatSalary(data.data.averageSalaryList[0].salary.p10, '$') ); addVerticalLine( '> 1 SD', sampleRange[0][1], formatSalary(data.data.averageSalaryList[0].salary.p90, '$') ); // series options var markersArea = { enableInteractivity: false, pointsVisible: false, tooltip: false, type: 'area' }; var markersLine = { enableInteractivity: false, lineWidth: 2, pointsVisible: false, tooltip: false, type: 'line', visibleInLegend: false, }; // combo chart var chartCombo = new google.visualization.ChartWrapper({ chartType: 'ComboChart', containerId: 'pv-chart-combo', options: { animation: { duration: 1000, easing: 'linear', startup: true }, colors: chartColors, explorer: { actions: ['dragToZoom', 'rightClickToReset'] }, legend: 'none', series: { 0: { pointShape: { type: 'star', sides: 0.1, dent: 0.1 }, pointSize: 12, pointsVisible: false, type: 'scatter', tooltip: false }, 1: markersArea, 2: markersArea, 3: markersArea, 4: markersLine, 5: markersLine, 6: markersLine, 7: markersLine, 8: markersLine, }, seriesType: 'scatter', theme: 'maximized', titleTextStyle: { color: '#676767', bold: false, fontSize: 10 }, tooltip: { isHtml: true }, chartArea: { // to show horizontal ticks correctly height: '85%' }, hAxis: { gridlines: { color: 'transparent', }, baselineColor: 'transparent', ticks: [ { v: -7, f: 'Low' }, { v: 0, f: 'Average' }, { v: 7, f: 'High' }, ], textPosition: 'out', }, vAxis: { gridlines: { color: 'transparent', }, textPosition: 'none' }, width: '100%', height: 340, } }); // range filter var controlRangeFilter = new google.visualization.ControlWrapper({ controlType: 'ChartRangeFilter', containerId: 'pv-chart-control-range', options: { filterColumnIndex: 0, ui: { chartType: 'AreaChart', chartOptions: { annotations: { highContrast: false, stem: { color: 'transparent', length: 0 }, textStyle: { color: 'transparent' } }, chartArea: { left: 0, width: '100%' }, colors: chartColors, height: 72, width: '100%' } } } }); // chart data view var viewChart = new google.visualization.DataView(dataChart); viewChart.setColumns([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]); // draw dashboard var dashboard = new google.visualization.Dashboard(document.getElementById('pv-dashboard')); dashboard.bind(controlRangeFilter, chartCombo); dashboard.draw(viewChart); function getNormalDistribution(x, Mean, StdDev) { return Math.exp(-((x - Mean) * (x - Mean)) / (2 * StdDev * StdDev)) / (Math.sqrt(2 * Math.PI) * StdDev); } function addVerticalLine(colLabel, xVal, annotation) { var yCol = dataChart.addColumn({label: colLabel, type: 'number'}); var annCol = dataChart.addColumn({role: 'annotation', type: 'string'}); var rowIndex = dataChart.addRow(); dataChart.setValue(rowIndex, 3, xVal); dataChart.setValue(rowIndex, yCol, getNormalDistribution(xVal, sampleMean, sampleStdDev)); dataChart.setValue(rowIndex, annCol, annotation); rowIndex = dataChart.addRow(); dataChart.setValue(rowIndex, 3, xVal); dataChart.setValue(rowIndex, yCol, 0); } } })(); %> <%/if%> </div> </script> <script src="themes/nextgen/js/pages/_careerPaths.js?1728058776"></script> <script id="pv_Articles" type="text/x-jsrender"> <%if data.articles.length %> <div class="articles-wrapper"> <div class="row mx-0 ml-lg-n1"> <div class="col-xs-12"> <h5 class="mt-0"> Career resources to find the job </h5> </div> </div> <div class="d-flex flex-wrap ml-lg-n1"> <%for data.articles %> <div class="col-xs-12 col-sm-6 d-flex flex-column"> <div class="panel panel-default flex-grow-1 mb-1"> <%if imageUrl %> <div class="panel-img-wrapper panel-img-wrapper-top" style="--aspect-ratio:16/9;"> <a href="<%> fullUrl %>" target="_blank"> <img class="panel-img" src="<%> imageUrl %>" alt="Article 1"> </a> </div> <%/if %> <div class="panel-body"> <a href="<%> fullUrl %>" target="_blank"> <strong><%> title %></strong> </a> </div> </div> </div> <%/for %> </div> </div> <%/if %> </script> <script src="themes/nextgen/js/pages/_articles.js?1728058776"></script> <script id="pv_searchItem" type="text/x-jsrender"> <li class="panel card <%if !~flushSponsored && isSponsored%>panel-warning border-warning<%else%>panel-default<%/if%> search-item rounded mb-1" data-id="<%: id%>"> <div class="panel-body card-body"> <%if !~flushSponsored && isSponsored%> <span class="float-right pull-right label label-warning text-body ml-05">Spotlight</span> <%if cantSeeContent %> <span class="float-right pull-right label label-warning text-body ml-05">Members only</span> <%/if%> <%else %> <%if cantSeeContent %> <span class="float-right pull-right label label-default ml-05">Members only</span> <%/if%> <%/if%> <%if 1 && (company.isFeatured && isSponsored) && company.logo %> <img src="<%: company.logo %>" class="img-responsive img-fluid float-left pull-left mr-05 mb-1"> <%/if%> <%if 1 && company.isFeatured && company.logo %> <div class="clearfix"></div> <%/if%> <%if epp %> <%if epp.src %> <span class="badge-icon d-inline-block align-middle"> <img src="<%> epp.src %>" alt="<%> epp.alt %>" title="<%> epp.alt %>" class="img-fluid img-responsive"> </span> <%else%> <span title="<%> epp.alt %>" class="fa fa-check red badge-icon img-rounded bg-white d-flex align-items-center justify-content-center"></span> <%/if%> <%/if%> <%if badge %> <%if badge.src %> <span class="badge-icon d-inline-block align-middle"> <img src="<%> badge.src %>" alt="<%> badge.alt %>" title="<%> badge.alt %>" class="img-fluid img-responsive"> </span> <%else%> <span title="<%> badge.alt %>" class="fa fa-check red badge-icon img-rounded bg-white d-flex align-items-center justify-content-center"></span> <%/if%> <%/if%> <h2 class="h6"> <a href="<%: !cantSeeContent ? url : '/jobs' %>" class="font-weight-bold text-wrap-anywhere bold js-item-job-url <%: cantSeeContent ? 'disabled-item text-muted' : '' %>" data-id="<%: id %>" > <%> title %> </a> </h2> <%if cantSeeContent %> <div class="blurry-text"> <%/if%> <div class="location my-05"> <%if 1 %> <div class="small"> <i class="fas fa-building text-muted"></i> <%: company.name %> </div> <%/if%> <div class="small"> <i class="fas fa-map-marker-alt text-muted"></i> <%: location %> <%if omitted.value %> <a href="#" data-omitted="<%: omitted.value %>" class="js-search-load-omitted"><%: omitted.title %></a> <%/if%> </div> </div> <table class="table table-borderless small my-05"> <%if salary %> <tr> <td class="text-muted">Salary</td> <td><%> salary %></td> </tr> <%/if%> <%if education %> <tr> <td class="text-muted">Education</td> <td><%> education %></td> </tr> <%/if%> <%if positionType && positionType !== '' %> <tr> <td class="text-muted">Type</td> <td><%> positionType %></td> </tr> <%/if%> </table> <div class="overflow-hidden"> <small><%: shortDescription %></small> </div> <%if cantSeeContent %> </div> <!-- /blurry-text --> <%/if%> </div> </li> </script> <script id="pv_searchFilter" type="text/x-jsrender"> <%if hasChecked%> <%if checkedValue %> <li> <button class="navbar-btn btn btn-dark <%if hasChecked %>selected<%/if%>" type="button"> <%if img %> <span class="badge-icon d-inline-block align-middle"> <img src="<%> img %>" class="img-fluid img-responsive"> </span> <%/if%> <%: type==="button" ? title : checkedName %> <input class="form-check-input js-search-filter d-none hide" type="checkbox" name="<%: name %>" value="<%: checkedValue %>" checked id="<%: ~replaceSymbols(name, "_") %>-<%> ~replaceSymbols(checkedValue, '_') %>" /> <label class="mb-0" for="<%: ~replaceSymbols(name, "_") %>-<%> ~replaceSymbols(checkedValue, '_') %>"> <i class="fas fa-times"></i> </label> </button> </li> <%/if%> <%else %> <%if type==="button" %> <li> <label class="m-0 navbar-btn btn btn-light"> <%if img %> <span class="badge-icon d-inline-block align-middle"> <img src="<%> img %>" class="img-fluid img-responsive"> </span> <%/if%> <%: data[0].title %> <input class="form-check-input js-search-filter d-none hide" type="checkbox" name="<%: name %>" value="<%: data[0].value %>" /> </label> </li> <%else%> <li class="dropdown"> <p class="dropdown-toggle navbar-btn inline-block" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <button class="btn btn-light <%if hasChecked %>selected<%/if%>" type="button"> <%if img %> <span class="badge-icon d-inline-block align-middle"> <img src="<%> img %>" class="img-fluid img-responsive"> </span> <%/if%> <%if hasChecked %> <%: checkedName %> <%else%> <%> title %> <%/if%> <span class="caret"></span> </button> </p> <ul class="dropdown-menu"> <%for data ~fitlerName=name %> <li> <a onclick="javascript:void(0);"> <div class="checkbox d-block"> <input class="form-check-input js-search-filter d-none hide" type="checkbox" name="<%: ~fitlerName %>" value="<%: value %>" <%if checked %>checked<%/if%> id="<%: ~fitlerName %>-<%> ~replaceSymbols(value, '_') %>" /> <label class="d-block" for="<%: ~fitlerName %>-<%> ~replaceSymbols(value, '_') %>"> <%> title %> <%if count %><span>(<%: count %>)</span><%/if%> </label> </div> </a> </li> <%/for%> </ul> </li> <%/if%> <%/if%> </script> <script id="pv_viewItem" type="text/x-jsrender"> <div class="panel panel-default"> <div class="panel-body"> <div class="position-relative"> <span class="js-view-item-close float-right pull-right <%if 1 && additional.company.cover %>white<%/if%>"><i class="fa fa-times" aria-hidden="true"></i></span> <div class="job-titles"> <div class="p-1"> <div> <%if 1 && additional.company.cover %> <div class="cover-wrap d-flex justify-content-center align-items-center mb-1"> <img src=" <%: additional.company.cover %>" class="img-fluid img-responsive" onload="page.domRefactoring()"> </div> <%/if%> <div> <div class="d-flex flex-wrap flex-lg-nowrap justify-content-start align-items-center mb-1"> <%if 1 && additional.company.isFeatured && additional.company.logo %> <img src=" <%: additional.company.logo %>" class="img-fluid mw-25 mb-1 mr-1 company-logo <%if additional.company.cover %>move-up<%/if%>"> <%/if %> <%if main.epp %> <%if main.epp.src %> <span class="badge-icon d-flex align-items-center justify-content-center align-middle flex-shrink-0 mr-05"> <img src="<%> main.epp.src %>" alt="<%> main.epp.alt %>" title="<%> main.epp.alt %>" class="img-fluid img-responsive"> </span> <%else%> <span title="<%> main.epp.alt %>" class="fa fa-check red badge-icon img-rounded bg-white d-flex align-items-center justify-content-center"></span> <%/if%> <%/if %> <%if main.badge %> <%if main.badge.src %> <span class="badge-icon d-flex align-items-center justify-content-center align-middle flex-shrink-0 mr-05"> <img src="<%> main.badge.src %>" alt="<%> main.badge.alt %>" title="<%> main.badge.alt %>" class="img-fluid img-responsive"> </span> <%else%> <span title="<%> main.badge.alt %>" class="fa fa-check red badge-icon img-rounded bg-white d-flex align-items-center justify-content-center"></span> <%/if%> <%/if%> <h1 class="job-slot-title text-wrap-anywhere mt-0 mb-0" title="<%> main.title %>"> <%> main.title %> </h1> </div> <%if main.cantSeeContent %> <div class="blurry-text disabled-item"> <%/if %> <div class="mb-1"> <%if 1 %> <i class="fas fa-building"></i> <%if additional.company.url %> <a href="<%: additional.company.url %>" target="_blank"><%: additional.company.name %></a> <%else%> <%: additional.company.name %> <%/if%> <%/if%> <i class="fas fa-clock"></i> <%: main.time %> <i class="fas fa-map-marker-alt"></i> <%: main.location %> </div> <div class="mb-1"> <%if main.salary %> <%: main.salary %> <%/if%> <%if main.positionType %> <%if main.salary %> - <%: main.positionType %> <%else%> <%: main.positionType %> <%/if%> <%/if%> </div> <%if main.cantSeeContent %> </div> <!-- /blurry-text --> <%/if %> </div> </div> <%if main.status === "expired" %> <div class="alert alert-warning my-0"> This job has expired and you can't apply for it anymore. </div> <%/if %> <%if main.status === "incomplete" %> <div class="alert alert-warning my-0"> This job has not been completed and it's not active yet. </div> <%/if %> <%if main.status === "suspended" %> <div class="alert alert-warning my-0"> This job has been suspended and it's not active anymore. </div> <%/if %> <%if main.status === "waiting" %> <div class="alert alert-warning my-0"> This job has not been approved yet and it's currently not active. </div> <%/if %> <%if main.status === "pending" %> <div class="alert alert-warning my-0"> This job is still pending and it's currently not active. </div> <%/if %> <%if main.status === "declined" %> <div class="alert alert-warning my-0"> This job has not been approved and it's currently not active. </div> <%/if %> <%if user.type !== "employer" %> <%if main.status === "active" %> <%if main.cantSeeContent %> <div class="blurry-text disabled-item"> <%/if %> <div class="d-flex justify-content-between flex-wrap align-items-center"> <%if additional.apply.type === "phone" %> <a href="tel:<%: additional.apply.apply_phone %>" class="btn btn-success btn-lg">Apply Now</a> <%else %> <%if additional.apply.already_applied %> <%if additional.apply.type === 'external' %> <div class="alert alert-warning my-0 mb-1 w-100"> You previous started an application for this job. <a href="<%: additional.apply.apply_url %>" target="_blank"> Click here to continue</a> </div> <div class="mr-auto"> </div> <%else %> <a class="btn btn-success apply-link btn-lg disabled">Already Applied</a> <%/if %> <%else %> <a href="#" class="btn btn-success apply-link btn-lg" data-toggle="modal" data-target="#apply-popup">Apply Now</a> <%/if %> <%/if %> <div class="action-buttons mr-n1 rpr-1"> <%if main.url %> <a href="https://www.addtoany.com/share" class="a2a_dd btn btn-link share-link" data-a2a-url="<%> main.url %>" data-a2a-title="<%> main.title %>" > <i class="fas fa-share-alt icon rmr-3"></i>Share </a> <%/if %> <%if !main.isBackfilled %> <%if user.type === "guest" %> <a href="/sign-in" class="btn btn-link"><i class="far fa-bookmark rmr-3"></i>Save Job</a> <%else additional.already_saved %> <span class="btn disabled-item text-muted"> Already Saved </span> <%else %> <button class="btn btn-link js-save-link"><i class="far fa-bookmark rmr-3"></i>Save Job</a> <%/if %> <%/if %> </div> </div> <%if main.cantSeeContent %> </div> <!-- /blurry-text --> <%/if %> <%/if %> <%/if %> </div> <%if !main.address %> <hr class="mt-0 mb-1"> <%/if %> </div> </div> <%if main.cantSeeContent %> <div class="job-description mt-1 pt-0 blurry-text"> <%else%> <div class="job-description mt-1 pt-0"> <%/if %> <%if main.address %> <div class="commute-time rpb-2"> <div class="panel panel-default commute-time-panel mb-1"> <a class="d-flex align-items-center justify-content-between panel-heading bg-white collapsed" data-toggle="collapse" href="#commute-time"> <span class="panel-title">Commute Time</span> <i class="fas fa-chevron-up icon"></i> </a> <div class="panel-collapse collapse" id="commute-time"> <div class="panel-body"> <div class="d-flex flex-wrap flex-sm-nowrap align-items-center justify-content-between rmb-3"> <div class="d-flex flex-grow-1 flex-sm-grow-0 align-items-center justify-content-center justify-content-sm-between"> <div class="commute-time-item car text-center mr-1 rpr-3"> <i class="fas fa-car item-icon"></i> <span class="item-time prl-1"></i></span> </div> <div class="commute-time-item walk text-center mr-1 rpr-3"> <i class="fas fa-walking item-icon"></i> <span class="item-time prl-1"></i></span> </div> <div class="commute-time-item bus text-center"> <i class="fas fa-bus item-icon"></i> <span class="item-time prl-1"></span> </div> </div> <div class="map-link-wrapper flex-grow-1 flex-shrink-0 flex-sm-grow-0 text-center"> <a href="javascript:void(0);" target="_blank" class="btn btn-link map-link visibility-hidden pr-0" > Show on map </a> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="form-group rmb-3"> <label for="commute-from-location" class="font-weight-normal">From Location</label> <div class="input-group"> <span class="input-group-addon"><i class="fas fa-map-marker-alt small"></i></span> <input name="commute_from_location" id="commute-from-location" type="text" class="form-control" autocomplete="off" placeholder="Enter a location" > </div> </div> </div> <div class="col-xs-12"> <div class="rmt-3 rmb-2"> <div class="rmb-2 rpb-1"><span>To Location</span></div> <div class="d-flex align-items-start input-group text-muted text-wrap-anywhere"> <span class="rmr-2"><i class="fas fa-map-marker-alt small"></i></span> <span><%: main.address %></span> <input name="commute_to_location" id="commute-to-location" type="hidden" value="<%: main.address %>"> </div> </div> </div> </div> </div> </div> </div> </div> <%/if %> <div class="main-job-description"> <%: main.description %> </div> <%if main.additionalFields %> <div class="job-additional-fields"> <hr class="mt-0 mb-1"> <%props main.additionalFields %> <div class="<%: prop.class %>"> <b><%: prop.label %></b> <p><%: prop.value %></p> </div> <%/props %> </div> <%/if %> <%if main.cantSeeContent %> </div> <!-- /blurry-text --> <%/if %> </div> </div> <%> ~setJsonScriptContent(main.jsonLd) %> </script> <script id="jsonScript" type="application/ld+json"></script> <script id="pv_applyForm" type="text/x-jsrender"> <div class='col-md-12 col-xs-12 px-2 pt-2'> <%if data._isSuccessfullyApply === true %> <div class="successfully-apply pt-1"> <%if data.jobAdditionalInfo.apply.type !== "external" %> <div class="text-center"> <svg width="45" height="45" viewBox="0 0 45 45" fill="none" xmlns="http://www.w3.org/2000/svg" class="svg-icon"> <path fill-rule="evenodd" clip-rule="evenodd" d="M41.9383 17.25C40.9889 16.125 39.6598 15.1875 38.1408 15H37.1915H28.4573V9.375C28.4573 5.25 25.0396 1.875 20.8623 1.875C20.1028 1.875 19.3434 2.25 19.1535 3L12.1282 18.75H7.5712C4.34335 18.75 1.875 21.1875 1.875 24.375V37.5C1.875 40.6875 4.34335 43.125 7.5712 43.125H34.7231C37.5712 43.125 39.8497 41.0625 40.4193 38.4375L43.0775 21.5625C43.2674 20.0625 42.8877 18.5625 41.9383 17.25ZM11.3688 39.375H7.57129C6.43205 39.375 5.67256 38.625 5.67256 37.5V24.375C5.67256 23.25 6.43205 22.5 7.57129 22.5H11.3688V39.375ZM34.7222 39.3746C35.6716 39.3746 36.4311 38.8121 36.6209 37.8746L39.469 20.8121C39.469 20.4371 39.469 19.8746 39.0893 19.4996C38.7095 19.1246 38.3298 18.7496 37.7602 18.7496H37.3804H26.5576C25.4184 18.7496 24.6589 17.9996 24.6589 16.8746V9.37456C24.6589 7.68706 23.5197 6.37456 22.0007 5.81206L15.1652 20.9996V39.3746H34.7222Z" class="fill-color-primary"/> <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="1" y="1" width="43" height="43"> <path fill-rule="evenodd" clip-rule="evenodd" d="M41.9383 17.25C40.9889 16.125 39.6598 15.1875 38.1408 15H37.1915H28.4573V9.375C28.4573 5.25 25.0396 1.875 20.8623 1.875C20.1028 1.875 19.3434 2.25 19.1535 3L12.1282 18.75H7.5712C4.34335 18.75 1.875 21.1875 1.875 24.375V37.5C1.875 40.6875 4.34335 43.125 7.5712 43.125H34.7231C37.5712 43.125 39.8497 41.0625 40.4193 38.4375L43.0775 21.5625C43.2674 20.0625 42.8877 18.5625 41.9383 17.25ZM11.3688 39.375H7.57129C6.43205 39.375 5.67256 38.625 5.67256 37.5V24.375C5.67256 23.25 6.43205 22.5 7.57129 22.5H11.3688V39.375ZM34.7222 39.3746C35.6716 39.3746 36.4311 38.8121 36.6209 37.8746L39.469 20.8121C39.469 20.4371 39.469 19.8746 39.0893 19.4996C38.7095 19.1246 38.3298 18.7496 37.7602 18.7496H37.3804H26.5576C25.4184 18.7496 24.6589 17.9996 24.6589 16.8746V9.37456C24.6589 7.68706 23.5197 6.37456 22.0007 5.81206L15.1652 20.9996V39.3746H34.7222Z" fill="white"/> </mask> <g mask="url(#mask0)"> <path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H45V45H0V0Z" class="fill-color-primary"/> </g> </svg> </div> <div class="text-center"> <h3 class="rmt-3 mb-0">Your application is complete</h3> <%if data.jobMainInfo && data.jobMainInfo.title %> <h6 class="font-weight-normal text-muted rmt-2">Your application for <b><%: data.jobMainInfo.title %></b> was successfully submitted.</h6> <%/if %> </div> <%else%> <div class="text-center"> <svg width="56" height="42" viewBox="0 0 56 42" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M54.2626 17.9804L33.6406 0.795486C31.428 -1.04116 28.0018 0.494749 28.0018 3.43767V37.8076C28.0018 40.7505 31.428 42.2972 33.6406 40.4498L54.2626 23.2648C55.9059 21.89 55.9059 19.3552 54.2626 17.9804ZM26.7666 17.9804L6.14467 0.795486C3.93211 -1.04116 0.505859 0.494749 0.505859 3.43767V37.8076C0.505859 40.7505 3.93211 42.2972 6.14467 40.4498L26.7666 23.2648C28.4099 21.89 28.4099 19.3552 26.7666 17.9804Z" fill="#007BFF"/> </svg> </div> <div class="text-center ml-auto mr-auto" style="max-width: 400px;"> <h3 class="rmt-3 mb-0">You are being redirected to complete your application</h3> <h6 class="font-weight-normal text-muted rmt-2">If a new window did not open in your browser, please disable any popup blockers.</h6> </div> <%/if %> <hr class="full-width-hr mt-2 rmb-3"> <div class="apply-agent-form-wrap"></div> </div> <%else%> <%if data.error && data.error.responseJSON %> <div class="alert alert-danger alert-fixed-top"> <p> <strong><%: data.error.responseJSON.message %></strong> </p> <%props data.error.responseJSON.errors %> <p><%: prop %></p> <%/props %> </div> <%/if %> <form class="apply-form js-form-validation"> <div class="captcha-container"></div> <%if data.jobMainInfo && data.jobAdditionalInfo %> <div class="apply-post-info"> <div class="d-flex align-items-sm-center"> <%if 1 && data.jobAdditionalInfo.company && data.jobAdditionalInfo.company.logo %> <div class="company-logo d-flex flex-column flex-shrink-0 justify-content-center"> <img src="<%: data.jobAdditionalInfo.company.logo %>" alt="<%: data.jobAdditionalInfo.company.name %>" class="img-fluid img-responsive"> </div> <%/if%> <div class="short-info flex-grow-1"> <%if data.jobMainInfo %> <h5 class="apply-job-title text-wrap-anywhere mt-0 rmb-2" data-job-id="<%: data.jobMainInfo.id %>"><%: data.jobMainInfo.title %></h5> <%/if%> <div class="short-info-items d-flex flex-wrap flex-sm-nowrap align-items-center"> <%if 1 && data.jobAdditionalInfo.company %> <div class="short-info-item text-muted"> <%if data.jobAdditionalInfo.company.url %> <a href="<%: data.jobAdditionalInfo.company.url %>" target="_blank" class="btn btn-link pl-0 rpy-0 rpy-sm-1 d-flex align-items-center" > <i class="fas fa-building icon"></i><%:data.jobAdditionalInfo.company.name%> </a> <%else%> <span class="btn-span pl-0 rpy-0 rpy-sm-1"><i class="fas fa-building icon"></i><%: data.jobAdditionalInfo.company.name %></span> <%/if%> </div> <%/if%> <%if data.jobMainInfo.location %> <div class="short-info-item text-muted"> <span class=" pl-0 rpt-1 rpy-sm-1"><i class="fas fa-map-marker-alt icon"></i> <%: data.jobMainInfo.location %></span> </div> <%/if%> </div> </div> </div> </div> <hr class="full-width-hr"> <%/if%> <%if data.user && data.user.email === null && data.jobAdditionalInfo && data.jobAdditionalInfo.apply %> <h6 class="mt-0 mb-1">Your Information</h6> <%if data.jobAdditionalInfo.apply.registration_required === true %> <div class="d-lg-flex flex-lg-nowrap"> <div class="form-group flex-grow-1 mr-lg-1"> <label class="control-label font-weight-normal" for="apply-form_first-name" > First Name<i class='required'>*</i> </label> <input name="first_name" id="apply-form_first-name" type="text" class="form-control" maxlength="255" required > </div> <div class="form-group flex-grow-1"> <label class="control-label font-weight-normal" for="apply-form_last-name" > Last Name<i class='required'>*</i> </label> <input name="last_name" id="apply-form_last-name" type="text" class="form-control" maxlength="255" required > </div> </div> <div class="form-group"> <label class="control-label font-weight-normal" for="apply-form_email" > Email<i class='required'>*</i> </label> <input name="email" type="email" id="apply-form_email" class="form-control" maxlength="255" required > </div> <%/if%> <%/if%> <%if data.user && data.user.email !== null %> <div class="apply-user-info d-inline-block form-group"> <div class="d-flex align-items-center mb-05"> <h6 class="font-weight-bold my-0">Your Information</h6> <a href="/edit-seeker2?edit-main-info" class="d-inline-block ml-auto icon text-dark small"><i class="fas fa-pencil-alt"></i></a> </div> <div class="user-name mb-05"> <%: data.user.first_name %> <%: data.user.last_name %> </div> <div class="user-email"> <%: data.user.email %> </div> </div> <%/if%> <%if data.jobAdditionalInfo && data.jobAdditionalInfo.apply %> <%if data.jobAdditionalInfo.apply.type !== "external" %> <div class="apply-job-panel apply-job-panel-resume"> <input type="hidden" name="apply_f" value="2" checked class="apply-job-type-radio" > <div class="d-flex flex-wrap justify-content-between align-items-center"> <div class="flex-grow-1 flex-shrink-0 mr-1"> <label class="control-label font-weight-normal" for="resume_upload"> Upload a new resume<i class='required'>*</i> </label> <span class="upload-file-tooltip small" title="Your resume must be in PDF, Word(.rtf, .doc, or .docx), or text format and no more than 20MB." data-toggle="tooltip" data-placement="bottom"> <i class="fas fa-question-circle"></i> </span> </div> <%if data.user && data.user.email !== null %> <%if data.user.resumes && data.user.resumes.length %> <div class="flex-shrink-0"> <div class="dropdown select-dropdown rmy-3" data-apply-type="3"> <button class="btn btn-success dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <span class="dropdown-selected-item" data-init-text=" Use a saved resume" > Use a saved resume </span> <span class="caret"></span> </button> <ul class="dropdown-menu"> <%for data.user.resumes %> <li> <a href="#<%: id %>" data-id="<%: id %>"> <%: name %> </a> </li> <%/for%> </ul> <input type="text" name="resume_id" class="hidden-option hidden"> </div> </div> <%/if%> <%/if%> </div> <div class="form-group mb-0" data-apply-type="2"> <div class="upload-file"> <input name="resume_upload" id="resume_upload" data-section-type="resume_upload" type="file" data-orig-name="" class="file-upload-input" required accept=".doc,.docx,.rtf,.pdf,.txt" > <div class="upload-panel d-flex flex-wrap flex-column"> <img class="upload-img-preview " src="" data-default-src="" /> <div class="upload-panel-body d-flex flex-wrap flex-column justify-content-center align-items-center flex-grow-1 pt-2 pb-1"> <div class="upload-box-svg-wrapper"> <svg xmlns="http://www.w3.org/2000/svg" width="44" height="33" viewBox="0 0 44 33" fill="none" class="upload-panel-svg" > <path xmlns="http://www.w3.org/2000/svg" d="M39.875 33H4.125C1.8468 33 0 31.1532 0 28.875V4.125C0 1.8468 1.8468 0 4.125 0H39.875C42.1532 0 44 1.8468 44 4.125V28.875C44 31.1532 42.1532 33 39.875 33ZM9.625 4.8125C6.96712 4.8125 4.8125 6.96712 4.8125 9.625C4.8125 12.2829 6.96712 14.4375 9.625 14.4375C12.2829 14.4375 14.4375 12.2829 14.4375 9.625C14.4375 6.96712 12.2829 4.8125 9.625 4.8125ZM5.5 27.5H38.5V17.875L30.9792 10.3542C30.5765 9.95148 29.9235 9.95148 29.5207 10.3542L17.875 22L13.1042 17.2292C12.7015 16.8265 12.0485 16.8265 11.6457 17.2292L5.5 23.375V27.5Z" fill="#DFDFDF"/> </svg> <svg class="uploaded-panel-svg d-none" xmlns="http://www.w3.org/2000/svg" width="45" height="34" viewBox="0 0 45 34" fill="none"> <g clip-path="url(#clip0)"> <path d="M11.9531 13.8888L-8.49944e-07 13.8888L-9.10654e-08 31.2499C-4.06e-08 32.4044 0.94043 33.3333 2.10938 33.3333L42.8906 33.3333C44.0596 33.3333 45 32.4044 45 31.2499L45 2.08325C45 0.928739 44.0596 -7.82199e-05 42.8906 -7.81688e-05L14.0625 -7.69086e-05L14.0625 11.8055C14.0625 12.9513 13.1133 13.8888 11.9531 13.8888ZM10.7139 -7.67623e-05L11.25 -7.67857e-05L11.25 11.111L-9.71364e-07 11.111L-9.9451e-07 10.5815C-1.01879e-06 10.026 0.219726 9.49645 0.615233 9.10582L9.22851 0.607563C9.62402 0.216938 10.1602 -7.67381e-05 10.7139 -7.67623e-05Z" fill="#007BFF"/> </g> <defs> <clipPath id="clip0"> <rect width="33.3333" height="45" fill="white" transform="translate(0 33.3333) rotate(-90)"/> </clipPath> </defs> </svg> </div> <div class="text-center upload-file-placeholder text-muted small">Upload a file with your resume</div> <div class="text-center uploaded-file-name small"></div> </div> <div class="upload-panel-footer d-flex flex-wrap justify-content-end align-items-center visibility-hidden"> <div class="d-flex justify-content-end action-buttons mt-1 mt-md-0 ml-1"> <a href="javascript:void(0);" class="action-link replace-link small"> <i class="fas fa-pencil-alt link-icon-left"></i> Edit </a> <a href="javascript:void(0);" class="action-link delete-link ml-1 small"> <i class="fas fa-trash-alt link-icon-left"></i> Delete </a> </div> </div> </div> </div> </div> </div> <div class="apply-job-panel apply-job-panel-cover include-cover-wrapper"> <input type="hidden" name="cover_f" value="2" class="apply-job-type-radio" > <div class="d-flex justify-content-between align-items-center"> <div class="checkbox flex-grow-1 mr-1 rmb-1"> <label class="confirm-cover-label pl-0 control-label font-weight-normal rmb-3" for="confirm_cover_letter"> <a class="add-cover-letter cursor-pointer"> <i class="fas fa-clipboard-list add-cover-icon mr-05"></i>Add cover letter </a> </label> <input type="checkbox" name="confirm_cover_letter" id="confirm_cover_letter" value="1" class="d-none" > </div> <%if data.user && data.user.email !== null %> <%if data.user.covers && data.user.covers.length %> <div class="flex-shrink-0"> <div class="dropdown select-dropdown rmy-3" style="display: none;" data-apply-type="3"> <button class="btn btn-success dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <span class="dropdown-selected-item" data-init-text="Use a saved cover letter" > Use a saved cover letter </span> <span class="caret"></span> </button> <ul class="dropdown-menu"> <%for data.user.covers %> <li> <a href="#<%: id %>" data-id="<%: id %>"> <%: name %> </a> </li> <%/for%> </ul> <input type="text" name="cover_id" class="hidden-option hidden"> </div> </div> <%/if%> <%/if%> </div> <div class="include-cover-content" style="display: none;"> <div class="d-flex flex-wrap"> <div class="flex-grow-1 mr-sm-1 rmb-3"> <a href="#new-cover-letter" data-toggle="tab" class="btn btn-success btn-block" data-active-button="true" data-apply-type="2" > Upload new cover letter </a> </div> <div class="flex-grow-1 rmb-3 copy-paste-cover-letter"> <a href="#copy-paste-cover-letter" data-toggle="tab" class="btn btn-outline-success btn-block" data-active-button="false" data-apply-type="1" > Copy and paste cover letter </a> </div> </div> <div class="tab-content position-relative"> <div class="tab-pane fade active in" id="new-cover-letter" data-apply-type="2"> <div class="upload-file"> <input name="cover_upload" id="cover_upload" data-section-type="cover_upload" type="file" data-orig-name="" class="file-upload-input cover-option" accept=".doc,.docx,.rtf,.pdf,.txt" > <div class="upload-panel d-flex flex-wrap flex-column"> <img class="upload-img-preview " src="" data-default-src="" /> <div class="upload-panel-body d-flex flex-wrap flex-column justify-content-center align-items-center flex-grow-1 pt-2 pb-1"> <div class="upload-box-svg-wrapper"> <svg xmlns="http://www.w3.org/2000/svg" width="44" height="33" viewBox="0 0 44 33" fill="none" class="upload-panel-svg" > <path xmlns="http://www.w3.org/2000/svg" d="M39.875 33H4.125C1.8468 33 0 31.1532 0 28.875V4.125C0 1.8468 1.8468 0 4.125 0H39.875C42.1532 0 44 1.8468 44 4.125V28.875C44 31.1532 42.1532 33 39.875 33ZM9.625 4.8125C6.96712 4.8125 4.8125 6.96712 4.8125 9.625C4.8125 12.2829 6.96712 14.4375 9.625 14.4375C12.2829 14.4375 14.4375 12.2829 14.4375 9.625C14.4375 6.96712 12.2829 4.8125 9.625 4.8125ZM5.5 27.5H38.5V17.875L30.9792 10.3542C30.5765 9.95148 29.9235 9.95148 29.5207 10.3542L17.875 22L13.1042 17.2292C12.7015 16.8265 12.0485 16.8265 11.6457 17.2292L5.5 23.375V27.5Z" fill="#DFDFDF"/> </svg> <svg class="uploaded-panel-svg d-none" xmlns="http://www.w3.org/2000/svg" width="45" height="34" viewBox="0 0 45 34" fill="none"> <g clip-path="url(#clip0)"> <path d="M11.9531 13.8888L-8.49944e-07 13.8888L-9.10654e-08 31.2499C-4.06e-08 32.4044 0.94043 33.3333 2.10938 33.3333L42.8906 33.3333C44.0596 33.3333 45 32.4044 45 31.2499L45 2.08325C45 0.928739 44.0596 -7.82199e-05 42.8906 -7.81688e-05L14.0625 -7.69086e-05L14.0625 11.8055C14.0625 12.9513 13.1133 13.8888 11.9531 13.8888ZM10.7139 -7.67623e-05L11.25 -7.67857e-05L11.25 11.111L-9.71364e-07 11.111L-9.9451e-07 10.5815C-1.01879e-06 10.026 0.219726 9.49645 0.615233 9.10582L9.22851 0.607563C9.62402 0.216938 10.1602 -7.67381e-05 10.7139 -7.67623e-05Z" fill="#007BFF"/> </g> <defs> <clipPath id="clip0"> <rect width="33.3333" height="45" fill="white" transform="translate(0 33.3333) rotate(-90)"/> </clipPath> </defs> </svg> </div> <div class="text-center upload-file-placeholder text-muted small">Upload a file with your cover letter</div> <div class="text-center uploaded-file-name small"></div> </div> <div class="upload-panel-footer d-flex flex-wrap justify-content-end align-items-center visibility-hidden"> <div class="d-flex justify-content-end action-buttons mt-1 mt-md-0 ml-1"> <a href="javascript:void(0);" class="action-link replace-link small"> <i class="fas fa-pencil-alt link-icon-left"></i> Edit </a> <a href="javascript:void(0);" class="action-link delete-link ml-1 small"> <i class="fas fa-trash-alt link-icon-left"></i> Delete </a> </div> </div> </div> </div> </div> <div class="tab-pane fade" id="copy-paste-cover-letter" data-apply-type="1"> <textarea name="cover_textarea" class="form-control text-editor cover-option" rows="15" cols="50" ></textarea> </div> </div> </div> </div> <%/if%> <div class="checkbox"> <label> <input type="checkbox" name="create_alert" value="1" > <span>I want jobs like this one emailed to me</span> </label> </div> <%if data.jobAdditionalInfo.apply.portfolio_enabled %> <div class="checkbox"> <label> <input type="checkbox" name="show_portfolio" value="1" > <span>Show portfolio</span> </label> </div> <%/if%> <%if data.jobAdditionalInfo.apply.type !== "external" %> <%if data.jobAdditionalInfo.apply.resume_access_enabled %> <div class="checkbox"> <label> <input type="checkbox" name="resume_public" value="1" <%if data.jobAdditionalInfo.apply.resume_public %>checked<%/if%> > <span>Allow employers to search for my resume</span> </label> </div> <%/if%> <%/if%> <hr class="full-width-hr rmt-3 mb-1"> <div class="d-flex align-items-center submit-block"> <div class="flex-grow-1 mr-1"> <p class="privacy-text text-muted my-0"> By clicking the button, you agree to the <a href="http://www.webscribble.com/tos" target="_blank">terms of use</a> and <a href="http://www.webscribble.com/privacy-policy" target="_blank">privacy policy</a> </p> </div> <div class="flex-shrink-0"> <button type="button" class="btn btn-secondary rmr-1" data-dismiss="modal"> Close </button> <button type="submit" class="btn btn-success"> <%if data.jobAdditionalInfo.apply.type === "external" %> Continue Application <%else%> Apply <%/if%> </button> </div> </div> <%if data.jobAdditionalInfo.apply.apply_guest %> <div class="d-flex align-items-center justify-content-end mt-1"> <a href="<%: data.jobAdditionalInfo.apply.apply_guest %>">Skip to company's web site</a> </div> <%/if %> <%/if%> </form> <%/if%> </div> <div class="col-md-6 col-xs-12 ai-suggestions-block border-left d-none d-flex flex-column mt-1 mt-md-0 px-2 pt-2 border-xs-top border-xs-left-0"> <div class="ai-suggestions-alert alert alert-danger d-none" role="alert"> <span class='error-list-header'> The following error(s) were found: </span> <ul class="alert-messages-list list-unstyled my-0"></ul> </div> <div class="d-flex align-items-center pb-2"> <img src="themes/nextgen/images/ai-suggestion-icon.png" alt="AI Suggestion Icon" width=24 height=24 /> <h5 class="ai-suggestion-title m-0"></h5> </div> <div class="bg-light p-1 rounded"> <div class="ai-suggestions-text"></div> </div> </div> <%if data.trackingCode %> <div class="apply-tracks hide" id="apply-tracks"> <%: data.trackingCode %> </div> <%/if%> </script> <script src="themes/nextgen/js/pages/_apply.js?1729250448"></script> <script> let mapLanguages = { openPositions: "Open positions", viewAll: "View All", clickToSeeDetails: "", pay: "Salary", education: "Education", position_type: "Type", jobs: "jobs", }; </script> <div class="map-widget-wrapper"> <style> #locationsMap { width: 100%; height: 500px; } </style> <script> let obj = {}; let cookies = document.cookie.split(/;/); for (let i = 0, len = cookies.length; i < len; i++) { let cookie = cookies[i].split(/=/); obj[cookie[0]] = cookie[1]; } document.addEventListener('jqueryReady', function () { $('.map-warning-alert').on('closed.bs.alert', function () { document.cookie = 'map_warning_disabled=true' }); }); </script> </div> <style> html .clients-header { position: static !important; } </style> <div class="ws-footer" id="ws-footer"> <div class="bg-darken footer mt-2 py-2"> <div class="container"> <div class="row"> <div class="col-md-12 text-center text-white copyrights"> <p>Powered by <a href="https://www.webscribble.com" target="_blank" class="underline text-white">Web Scribble Solutions</a>, Inc.</p> </div> </div> </div> </div> </div> <footer id="ws-custom-footer"> <footer class="custom-footer py-2 border-top border-dark"> <div class="container"> <nav class="d-flex justify-content-between flex-wrap footet-links"> <ul class="d-flex flex-column"> <h5><a href="https://www.slas.org/" target="_blank">FOR RESEARCHERS</a></h5> <li class="mt-2"><a href="https://www.slas.org/footer-nav-links/for-researchers/find-collaborators/" target="_blank">Find Collaborators</a></li> <li><a href="https://www.slas.org/footer-nav-links/for-researchers/slas-discovery/" target="_blank">SLAS Discovery</a></li> <li><a href="https://www.slas.org/footer-nav-links/for-researchers/slas-technology/" target="_blank">SLAS Technology</a></li> <li><a href="https://www.slas.org/footer-nav-links/for-researchers/conferences/" target="_blank">Conferences</a></li> </ul> <ul class="d-flex flex-column"> <h5><a href="https://www.slas.org/" target="_blank">FOR PARTNERS</a></h5> <li class="mt-2"><a href="https://www.slas.org/footer-nav-links/for-partners/boost-your-brand/" target="_blank">Boost Your Brand</a></li> <li><a href="https://www.slas.org/footer-nav-links/for-partners/slas-event-sponsorship/" target="_blank">SLAS Event Sponsorship</a></li> <li><a href="https://www.slas.org/footer-nav-links/for-partners/advertise/" target="_blank">Advertise</a></li> </ul> <ul class="d-flex flex-column"> <h5><a href="https://www.slas.org/" target="_blank">FOR AUTHORS</a></h5> <li class="mt-2"><a href="https://www.slas.org/footer-nav-links/for-authors/share-your-science/" target="_blank">Share Your Science</a></li> <li><a href="https://www.slas.org/footer-nav-links/for-authors/share-your-technology/" target="_blank">Share Your Technology</a></li> <li><a href="https://www.slas.org/footer-nav-links/for-authors/present-your-work/" target="_blank">Present Your Work</a></li> </ul> <ul class="d-flex flex-column"> <h5><a href="https://www.slas.org/" target="_blank">STUDENTS & EARLY CAREER</a></h5> <li><a href="" target="_blank"></a></li> <li><a href="https://www.slas.org/footer-nav-links/students-early-career/student-resources/" target="_blank">Student Resources</a></li> <li><a href="https://www.slas.org/footer-nav-links/students-early-career/become-a-member/" target="_blank">Become a Member</a></li> <li><a href="https://www.slas.org/footer-nav-links/students-early-career/awards-and-grants/" target="_blank">Awards and Grants</a></li> <li><a href="https://www.slas.org/footer-nav-links/students-early-career/find-a-job/" target="_blank">Find a Job</a></li> <li><a href="https://www.slas.org/footer-nav-links/students-early-career/find-a-mentor/" target="_blank">Find a Mentor</a></li> </ul> <ul class="d-flex flex-column"> <h5><a href="https://www.slas.org/" target="_blank">GET INVOLVED</a></h5> <li class="mt-2"><a href="https://www.slas.org/footer-nav-links/get-involved/become-a-member/" target="_blank">Become a Member</a></li> <li><a href="https://www.slas.org/footer-nav-links/get-involved/give-back/" target="_blank">Give Back</a></li> <li><a href="https://www.slas.org/footer-nav-links/get-involved/volunteer-opportunities/" target="_blank">Volunteer Opportunities</a></li> <li><a href="https://www.slas.org/footer-nav-links/get-involved/get-connected/" target="_blank">Get CONNECTED</a></li> <li><a href="https://www.slas.org/footer-nav-links/get-involved/contact-slas/" target="_blank">Contact SLAS</a></li> </ul> </nav> <div class="d-flex flex-column align-items-center mt-2"> <ul class="custom-social-links d-flex "> <li class="mr-1"><a href="https://www.facebook.com/SocietyforLaboratoryAutomationandScreening?v=wall" target="_blank"><i class="fab fa-facebook-f"></i></a></li> <li class="mr-1"><a href="https://twitter.com/SLAS_Org" target="_blank"><i class="fab fa-twitter"></i></a></li> <li class="mr-1"><a href="https://www.linkedin.com/groups/3363923/" target="_blank"><i class="fab fa-linkedin-in"></i></a></li> <li class="mr-1"><a href="https://www.instagram.com/slas_org/" target="_blank"><i class="fab fa-instagram"></i></a></li> <li class="mr-1"><a href="http://www.youtube.com/SLASvideo" target="_blank"><i class="fab fa-youtube"></i></a></li> </ul> </div> </div> </footer> <div class="custom-bottom-footer py-2"> <div class="container"> <p> <a href="https://www.slas.org/terms-of-use/" target="_blank">SLAS Terms of Use</a> | <a href="https://www.slas.org/privacy-notice-non-eu/" target="_blank">Privacy Notice (non-EU / UK residents)</a> | <a href="https://www.slas.org/privacy-notice-eu/" target="_blank">Privacy Notice (EU / UK residents)</a> </p> <p>漏 2024 Society for Laboratory Automation and Screening</p> </div> </div> </footer> <script defer src="themes/nextgen/js/main.min.js?1728058776"></script> <!-- NG-3557 --> <!-- NG-3557 --> <script> </script> <div id="alert-popus-container" class="sticky-alert-container position-fixed fixed-bottom"> <div class="container-fluid"> <div class="row"> <div id="cookieconsent-wrapper"></div> </div> </div> </div> <script> window.FontAwesomeConfig = { autoReplaceSvg: "nest", autoA11y: true, autoAddCss: true, keepOriginalSource: false } </script> <script async src="https://use.fontawesome.com/releases/v5.15.3/js/all.js"></script> <script> const templates = document.querySelectorAll('template'); function processTemplate(element) { const parents = document.querySelectorAll(element.dataset.parent); const position = element.dataset.position ? element.dataset.position : 'afterend'; parents.forEach(function(parent){ if(position === 'instead'){ parent.outerHTML = element.innerHTML; }else{ parent.insertAdjacentHTML(position, element.innerHTML); } }); if ( typeof element.dataset.cleanup === 'undefined' || element.dataset.cleanup === true || element.dataset.cleanup === 'true' ) { element.remove(); } } function addXMLRequestCallback(callback){ let nativeOpen = XMLHttpRequest.prototype.open; let callbacks = XMLHttpRequest.callbacks = []; XMLHttpRequest.prototype.open = function () { callbacks.forEach(callback => callback.apply(this, arguments)); nativeOpen.apply(this, arguments); }; XMLHttpRequest.callbacks.push(callback); } templates.forEach(function(element){ if ( !element.dataset.parent ) { console.warn('Wrong syntax, ignoring this template', element); return false; } if ( !element.dataset.trigger || element.dataset.trigger === 'instant' ) { setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 ); } else if ( element.dataset.trigger === 'event' ) { if ( !element.dataset.event ){ console.warn('Wrong syntax, absent event name to listen, ignoring this template', element); return false; } document.addEventListener( element.dataset.event, () => { setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 ); }); } else if ( element.dataset.trigger === 'xhr' ) { addXMLRequestCallback( function( method, url ) { if ( element.dataset.url || element.dataset.method ) { if ( element.dataset.url && element.dataset.method ) { if ( element.dataset.method === method && url.toString().includes(element.dataset.url) ) { setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 ); } } else if ( element.dataset.url && url.includes(element.dataset.url) ) { setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 ); } else if ( element.dataset.method && element.dataset.method === method ){ setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 ); } } else { setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 ); } }); } }); </script> <link rel="stylesheet" href="css/configuration.css"> </body> </html> <script type="text/javascript"> var Ziggy = { namedRoutes: {"api.credentials":{"uri":"api\/v1\/auth\/client-credentials","methods":["POST"],"domain":null},"api.user.credentials":{"uri":"api\/v1\/auth\/user-credentials","methods":["POST"],"domain":null},"api.user.profile":{"uri":"api\/v1\/user\/profile\/my","methods":["GET","HEAD"],"domain":null},"api.notifications.send_at_list":{"uri":"api\/v1\/notifications\/send-at-list","methods":["POST"],"domain":null},"api.agents.search.store":{"uri":"api\/v1\/agents\/search\/store","methods":["POST"],"domain":null},"api.agents.search.update":{"uri":"api\/v1\/agents\/search\/{agentId}\/update","methods":["POST"],"domain":null},"api.career-guide.salary":{"uri":"api\/v1\/career-guide\/{job_title}\/salary","methods":["GET","HEAD"],"domain":null},"api.career-guide.salary.states":{"uri":"api\/v1\/career-guide\/{job_title}\/salary\/states","methods":["GET","HEAD"],"domain":null},"api.career-guide.skills":{"uri":"api\/v1\/career-guide\/{job_title}\/skills","methods":["GET","HEAD"],"domain":null},"api.career-guide.normalize":{"uri":"api\/v1\/career-guide\/normalize","methods":["GET","HEAD"],"domain":null},"api.articles.category":{"uri":"api\/v1\/articles\/category\/{category}","methods":["GET","HEAD"],"domain":null},"api.articles.latest":{"uri":"api\/v1\/articles\/latest","methods":["GET","HEAD"],"domain":null},"api.articles.available_feed_tags":{"uri":"api\/v1\/articles\/available-feed-tags","methods":["POST"],"domain":null},"api.articles.categories.store":{"uri":"api\/v1\/articles\/categories","methods":["POST"],"domain":null},"api.career-paths.index":{"uri":"api\/v1\/career-paths","methods":["GET","HEAD"],"domain":null},"api.jobs.index":{"uri":"api\/v1\/jobs","methods":["GET","HEAD"],"domain":null},"api.jobs.sponsored":{"uri":"api\/v1\/jobs\/sponsored","methods":["GET","HEAD"],"domain":null},"api.jobs.map":{"uri":"api\/v1\/jobs\/map","methods":["GET","HEAD"],"domain":null},"api.jobs.show":{"uri":"api\/v1\/jobs\/{job}","methods":["GET","HEAD"],"domain":null},"api.jobs.additional":{"uri":"api\/v1\/jobs\/{job}\/additional","methods":["GET","HEAD"],"domain":null},"api.jobs.recs.hl":{"uri":"api\/v1\/jobs\/recs\/hl","methods":["GET","HEAD"],"domain":null},"api.jobs.save":{"uri":"api\/v1\/jobs\/{job}\/save","methods":["POST"],"domain":null},"api.saved-jobs.delete":{"uri":"api\/v1\/jobs\/{job}\/delete_saved","methods":["DELETE"],"domain":null},"api.jobs.apply.local":{"uri":"api\/v1\/jobs\/apply\/{job}\/local","methods":["POST"],"domain":null},"api.jobs.apply.email":{"uri":"api\/v1\/jobs\/apply\/{job}\/email","methods":["POST"],"domain":null},"api.jobs.apply.external":{"uri":"api\/v1\/jobs\/apply\/{job}\/external","methods":["POST"],"domain":null},"api.resume.labels.index":{"uri":"api\/v1\/resume\/labels","methods":["GET","HEAD"],"domain":null},"api.resume.labels.show":{"uri":"api\/v1\/resume\/{resume}\/labels","methods":["GET","HEAD"],"domain":null},"api.resume.labels.store":{"uri":"api\/v1\/resume\/{resume}\/labels","methods":["POST"],"domain":null},"api.resume.labels.destroy":{"uri":"api\/v1\/resume\/{resume}\/labels\/{label}","methods":["DELETE"],"domain":null},"api.resume.show":{"uri":"api\/v1\/resume\/{resume}","methods":["GET","HEAD"],"domain":null},"api.portfolio.preview":{"uri":"api\/v1\/job-seeker\/{portfolio}\/preview","methods":["GET","HEAD"],"domain":null},"api.system.events.jobs.search":{"uri":"api\/v1\/system\/events\/jobs\/search","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"domain":null},"api.system.events.jobs.search_appeared":{"uri":"api\/v1\/system\/events\/jobs\/search_appeared","methods":["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS"],"domain":null},"api.system.events.jobs.view":{"uri":"api\/v1\/system\/events\/jobs\/view\/{job}","methods":["GET","HEAD"],"domain":null},"api.system.events.agents.created":{"uri":"api\/v1\/system\/events\/agents\/{agent}\/created","methods":["GET","HEAD"],"domain":null},"api.system.events.saved_jobs.created":{"uri":"api\/v1\/system\/events\/saved-jobs\/{saved_job}\/created","methods":["GET","HEAD"],"domain":null},"api.system.captcha.code":{"uri":"api\/v1\/system\/captcha\/{page_name}","methods":["GET","HEAD"],"domain":null},"api.location.state":{"uri":"api\/v1\/location\/state","methods":["GET","HEAD"],"domain":null},"api.location.city":{"uri":"api\/v1\/location\/city","methods":["GET","HEAD"],"domain":null},"api.events.exhibitors.available":{"uri":"api\/v1\/events\/{event}\/exhibitors\/available","methods":["GET","HEAD"],"domain":null},"api.events.interview.slots":{"uri":"api\/v1\/events\/{event}\/interview\/slots\/{interview?}","methods":["GET","HEAD"],"domain":null},"api.events.interview.store":{"uri":"api\/v1\/events\/{event}\/interview\/store","methods":["POST"],"domain":null},"api.events.interview.update":{"uri":"api\/v1\/events\/{event}\/interview\/{interview}\/update","methods":["POST"],"domain":null},"api.events.interview.schedule.employer":{"uri":"api\/v1\/events\/{event}\/interview\/{interview}\/schedule","methods":["GET","HEAD"],"domain":null},"api.events.interview.schedule.seeker":{"uri":"api\/v1\/events\/{event}\/interview\/schedule","methods":["GET","HEAD"],"domain":null},"api.events.interview.get_open_slots":{"uri":"api\/v1\/events\/{event}\/interview\/{interview}\/open-slots","methods":["GET","HEAD"],"domain":null},"api.events.reservation.list.for.seeker":{"uri":"api\/v1\/events\/{event}\/reservation\/list\/for\/seeker","methods":["GET","HEAD"],"domain":null},"api.events.reservation.rsvp":{"uri":"api\/v1\/events\/{event}\/reservation\/rsvp","methods":["POST"],"domain":null},"api.events.reservation.invite":{"uri":"api\/v1\/events\/{event}\/reservation\/invite","methods":["POST"],"domain":null},"api.events.reservation.accept":{"uri":"api\/v1\/events\/{event}\/reservation\/{reservation}\/accept","methods":["POST"],"domain":null},"api.events.reservation.decline":{"uri":"api\/v1\/events\/{event}\/reservation\/{reservation}\/decline","methods":["POST"],"domain":null},"api.events.reservation.change":{"uri":"api\/v1\/events\/{event}\/reservation\/{reservation}\/change\/{slot}","methods":["POST"],"domain":null},"api.mentorship.members.index":{"uri":"api\/v1\/mentorship\/members","methods":["GET","HEAD"],"domain":null},"api.mentorship.members.show":{"uri":"api\/v1\/mentorship\/members\/{member}","methods":["GET","HEAD"],"domain":null},"api.mentorship.members.compare":{"uri":"api\/v1\/mentorship\/members\/{member}\/compare","methods":["GET","HEAD"],"domain":null},"api.mentorship.members.matches.request":{"uri":"api\/v1\/mentorship\/members\/{member}\/matches\/request","methods":["POST"],"domain":null},"api.mentorship.members.matches.accept":{"uri":"api\/v1\/mentorship\/members\/{member}\/matches\/accept","methods":["POST"],"domain":null},"api.mentorship.members.matches.reject":{"uri":"api\/v1\/mentorship\/members\/{member}\/matches\/reject","methods":["POST"],"domain":null},"api.suggest.employer":{"uri":"api\/v1\/suggest\/employer","methods":["GET","HEAD"],"domain":null},"api.suggest.sanitize_string":{"uri":"api\/v1\/suggest\/sanitize-string","methods":["POST"],"domain":null},"api.chat.direct_conversations.index":{"uri":"api\/v1\/chat\/direct-conversations","methods":["GET","HEAD"],"domain":null},"api.chat.direct_conversations.get":{"uri":"api\/v1\/chat\/direct-conversations\/{partner}","methods":["GET","HEAD"],"domain":null},"api.chat.direct_conversations.messages.index":{"uri":"api\/v1\/chat\/direct-conversations\/{conversation}\/messages","methods":["GET","HEAD"],"domain":null},"api.chat.direct_conversations.messages.store":{"uri":"api\/v1\/chat\/direct-conversations\/{conversation}\/messages","methods":["POST"],"domain":null},"api.chat.direct_conversations.messages.read":{"uri":"api\/v1\/chat\/direct-conversations\/{conversation}\/messages\/{message}","methods":["GET","HEAD"],"domain":null},"api.ai.improvement.resume":{"uri":"api\/v1\/ai\/improvement\/resume\/{model?}","methods":["POST"],"domain":null},"api.ai.improvement.cover":{"uri":"api\/v1\/ai\/improvement\/cover\/{model?}","methods":["POST"],"domain":null},"api.billing.invoices.index":{"uri":"api\/v1\/billing\/invoices","methods":["GET","HEAD"],"domain":null},"api.listings":{"uri":"api\/v1\/listings","methods":["GET","HEAD"],"domain":null},"api.common.select_boxes.index":{"uri":"api\/v1\/fields\/{group_name}","methods":["GET","HEAD"],"domain":null},"api.agency.auth.credentials":{"uri":"api\/v1\/agency\/auth\/credentials","methods":["POST"],"domain":null},"api.agency.select_boxes.index":{"uri":"api\/v1\/agency\/fields\/{group_name}","methods":["GET","HEAD"],"domain":null},"api.agency.companies.index":{"uri":"api\/v1\/agency\/companies","methods":["GET","HEAD"],"domain":null},"api.agency.companies.update":{"uri":"api\/v1\/agency\/companies\/{company}","methods":["PUT","PATCH"],"domain":null},"api.agency.companies.destroy":{"uri":"api\/v1\/agency\/companies\/{company}","methods":["DELETE"],"domain":null},"api.agency.companies.store":{"uri":"api\/v1\/agency\/companies\/create","methods":["POST"],"domain":null},"api.agency.packages.index":{"uri":"api\/v1\/agency\/packages","methods":["GET","HEAD"],"domain":null},"api.agency.jobs.update":{"uri":"api\/v1\/agency\/jobs\/{job}","methods":["PUT","PATCH"],"domain":null},"api.agency.jobs.destroy":{"uri":"api\/v1\/agency\/jobs\/{job}","methods":["DELETE"],"domain":null},"api.agency.jobs.store":{"uri":"api\/v1\/agency\/jobs\/create","methods":["POST"],"domain":null},"api.employer.auth.credentials":{"uri":"api\/v1\/employer\/auth\/credentials","methods":["POST"],"domain":null},"api.employer.select_boxes.index":{"uri":"api\/v1\/employer\/fields\/{group_name}","methods":["GET","HEAD"],"domain":null},"api.employer.companies.index":{"uri":"api\/v1\/employer\/companies","methods":["GET","HEAD"],"domain":null},"api.employer.companies.update":{"uri":"api\/v1\/employer\/companies\/{company}","methods":["PUT","PATCH"],"domain":null},"api.employer.companies.destroy":{"uri":"api\/v1\/employer\/companies\/{company}","methods":["DELETE"],"domain":null},"api.employer.companies.store":{"uri":"api\/v1\/employer\/companies\/create","methods":["POST"],"domain":null},"api.employer.packages.index":{"uri":"api\/v1\/employer\/packages","methods":["GET","HEAD"],"domain":null},"api.employer.jobs.update":{"uri":"api\/v1\/employer\/jobs\/{job}","methods":["PUT","PATCH"],"domain":null},"api.employer.jobs.destroy":{"uri":"api\/v1\/employer\/jobs\/{job}","methods":["DELETE"],"domain":null},"api.employer.jobs.store":{"uri":"api\/v1\/employer\/jobs\/create","methods":["POST"],"domain":null},"api.careercenter.auth.credentials":{"uri":"api\/v1\/careercenter\/auth\/credentials","methods":["POST"],"domain":null},"api.careercenter.select_boxes.index":{"uri":"api\/v1\/careercenter\/fields\/{group_name}","methods":["GET","HEAD"],"domain":null},"api.careercenter.jobs.index":{"uri":"api\/v1\/careercenter\/jobs","methods":["GET","HEAD"],"domain":null},"api.careercenter.seekers.index":{"uri":"api\/v1\/careercenter\/job-seekers","methods":["GET","HEAD"],"domain":null},"api.careercenter.seekers.show":{"uri":"api\/v1\/careercenter\/job-seekers\/{seeker}","methods":["GET","HEAD"],"domain":null},"api.careercenter.employers.index":{"uri":"api\/v1\/careercenter\/employers","methods":["GET","HEAD"],"domain":null},"api.careercenter.employers.show":{"uri":"api\/v1\/careercenter\/employers\/{employer}","methods":["GET","HEAD"],"domain":null},"api.higherlogic.auth.credentials":{"uri":"api\/v1\/higherlogic\/auth\/credentials","methods":["POST"],"domain":null},"api.higherlogic.jobs.recs":{"uri":"api\/v1\/higherlogic\/jobs\/recs","methods":["GET","HEAD"],"domain":null}}, baseUrl: 'https://careers.slas.org/', baseProtocol: 'https', baseDomain: 'careers.slas.org', basePort: false, defaultParameters: [] }; !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("route",[],t):"object"==typeof exports?exports.route=t():e.route=t()}(this,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=5)}([function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,o=Array.isArray,i=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),a=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r};e.exports={arrayToObject:a,assign:function(e,t){return Object.keys(t).reduce(function(e,r){return e[r]=t[r],e},e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var i=t[n],a=i.obj[i.prop],u=Object.keys(a),c=0;c<u.length;++c){var l=u[c],s=a[l];"object"==typeof s&&null!==s&&-1===r.indexOf(s)&&(t.push({obj:a,prop:l}),r.push(s))}return function(e){for(;e.length>1;){var t=e.pop(),r=t.obj[t.prop];if(o(r)){for(var n=[],i=0;i<r.length;++i)void 0!==r[i]&&n.push(r[i]);t.obj[t.prop]=n}}}(t),e},decode:function(e,t,r){var n=e.replace(/\+/g," ");if("iso-8859-1"===r)return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch(e){return n}},encode:function(e,t,r){if(0===e.length)return e;var n=e;if("symbol"==typeof e?n=Symbol.prototype.toString.call(e):"string"!=typeof e&&(n=String(e)),"iso-8859-1"===r)return escape(n).replace(/%u[0-9a-f]{4}/gi,function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"});for(var o="",a=0;a<n.length;++a){var u=n.charCodeAt(a);45===u||46===u||95===u||126===u||u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122?o+=n.charAt(a):u<128?o+=i[u]:u<2048?o+=i[192|u>>6]+i[128|63&u]:u<55296||u>=57344?o+=i[224|u>>12]+i[128|u>>6&63]+i[128|63&u]:(a+=1,u=65536+((1023&u)<<10|1023&n.charCodeAt(a)),o+=i[240|u>>18]+i[128|u>>12&63]+i[128|u>>6&63]+i[128|63&u])}return o},isBuffer:function(e){return!(!e||"object"!=typeof e||!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e)))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,r,i){if(!r)return t;if("object"!=typeof r){if(o(t))t.push(r);else{if(!t||"object"!=typeof t)return[t,r];(i&&(i.plainObjects||i.allowPrototypes)||!n.call(Object.prototype,r))&&(t[r]=!0)}return t}if(!t||"object"!=typeof t)return[t].concat(r);var u=t;return o(t)&&!o(r)&&(u=a(t,i)),o(t)&&o(r)?(r.forEach(function(r,o){if(n.call(t,o)){var a=t[o];a&&"object"==typeof a&&r&&"object"==typeof r?t[o]=e(a,r,i):t.push(r)}else t[o]=r}),t):Object.keys(r).reduce(function(t,o){var a=r[o];return n.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t},u)}}},function(e,t,r){"use strict";var n=String.prototype.replace,o=/%20/g,i=r(0),a={RFC1738:"RFC1738",RFC3986:"RFC3986"};e.exports=i.assign({default:a.RFC3986,formatters:{RFC1738:function(e){return n.call(e,o,"+")},RFC3986:function(e){return String(e)}}},a)},function(e,t,r){"use strict";var n=r(3),o=r(4),i=r(1);e.exports={formats:i,parse:o,stringify:n}},function(e,t,r){"use strict";var n=r(0),o=r(1),i=Object.prototype.hasOwnProperty,a={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},u=Array.isArray,c=Array.prototype.push,l=function(e,t){c.apply(e,u(t)?t:[t])},s=Date.prototype.toISOString,f=o.default,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:n.encode,encodeValuesOnly:!1,format:f,formatter:o.formatters[f],indices:!1,serializeDate:function(e){return s.call(e)},skipNulls:!1,strictNullHandling:!1},d=function e(t,r,o,i,a,c,s,f,d,y,h,m,b){var g,v=t;if("function"==typeof s?v=s(r,v):v instanceof Date?v=y(v):"comma"===o&&u(v)&&(v=v.join(",")),null===v){if(i)return c&&!m?c(r,p.encoder,b):r;v=""}if("string"==typeof(g=v)||"number"==typeof g||"boolean"==typeof g||"symbol"==typeof g||"bigint"==typeof g||n.isBuffer(v))return c?[h(m?r:c(r,p.encoder,b))+"="+h(c(v,p.encoder,b))]:[h(r)+"="+h(String(v))];var O,w=[];if(void 0===v)return w;if(u(s))O=s;else{var j=Object.keys(v);O=f?j.sort(f):j}for(var P=0;P<O.length;++P){var x=O[P];a&&null===v[x]||(u(v)?l(w,e(v[x],"function"==typeof o?o(r,x):r,o,i,a,c,s,f,d,y,h,m,b)):l(w,e(v[x],r+(d?"."+x:"["+x+"]"),o,i,a,c,s,f,d,y,h,m,b)))}return w};e.exports=function(e,t){var r,n=e,c=function(e){if(!e)return p;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=o.default;if(void 0!==e.format){if(!i.call(o.formatters,e.format))throw new TypeError("Unknown format option provided.");r=e.format}var n=o.formatters[r],a=p.filter;return("function"==typeof e.filter||u(e.filter))&&(a=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:void 0===e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:void 0===e.delimiter?p.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:p.encode,encoder:"function"==typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:a,formatter:n,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"==typeof c.filter?n=(0,c.filter)("",n):u(c.filter)&&(r=c.filter);var s,f=[];if("object"!=typeof n||null===n)return"";s=t&&t.arrayFormat in a?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var y=a[s];r||(r=Object.keys(n)),c.sort&&r.sort(c.sort);for(var h=0;h<r.length;++h){var m=r[h];c.skipNulls&&null===n[m]||l(f,d(n[m],m,y,c.strictNullHandling,c.skipNulls,c.encode?c.encoder:null,c.filter,c.sort,c.allowDots,c.serializeDate,c.formatter,c.encodeValuesOnly,c.charset))}var b=f.join(c.delimiter),g=!0===c.addQueryPrefix?"?":"";return c.charsetSentinel&&("iso-8859-1"===c.charset?g+="utf8=%26%2310003%3B&":g+="utf8=%E2%9C%93&"),b.length>0?g+b:""}},function(e,t,r){"use strict";var n=r(0),o=Object.prototype.hasOwnProperty,i={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:n.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},a=function(e){return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(parseInt(t,10))})},u=function(e,t,r){if(e){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/g,a=r.depth>0&&/(\[[^[\]]*])/.exec(n),u=a?n.slice(0,a.index):n,c=[];if(u){if(!r.plainObjects&&o.call(Object.prototype,u)&&!r.allowPrototypes)return;c.push(u)}for(var l=0;r.depth>0&&null!==(a=i.exec(n))&&l<r.depth;){if(l+=1,!r.plainObjects&&o.call(Object.prototype,a[1].slice(1,-1))&&!r.allowPrototypes)return;c.push(a[1])}return a&&c.push("["+n.slice(a.index)+"]"),function(e,t,r){for(var n=t,o=e.length-1;o>=0;--o){var i,a=e[o];if("[]"===a&&r.parseArrays)i=[].concat(n);else{i=r.plainObjects?Object.create(null):{};var u="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,c=parseInt(u,10);r.parseArrays||""!==u?!isNaN(c)&&a!==u&&String(c)===u&&c>=0&&r.parseArrays&&c<=r.arrayLimit?(i=[])[c]=n:i[u]=n:i={0:n}}n=i}return n}(c,t,r)}};e.exports=function(e,t){var r=function(e){if(!e)return i;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?i.charset:e.charset;return{allowDots:void 0===e.allowDots?i.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:i.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:i.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:i.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:i.comma,decoder:"function"==typeof e.decoder?e.decoder:i.decoder,delimiter:"string"==typeof e.delimiter||n.isRegExp(e.delimiter)?e.delimiter:i.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:i.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:i.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:i.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:i.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:i.strictNullHandling}}(t);if(""===e||null==e)return r.plainObjects?Object.create(null):{};for(var c="string"==typeof e?function(e,t){var r,u={},c=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,l=t.parameterLimit===1/0?void 0:t.parameterLimit,s=c.split(t.delimiter,l),f=-1,p=t.charset;if(t.charsetSentinel)for(r=0;r<s.length;++r)0===s[r].indexOf("utf8=")&&("utf8=%E2%9C%93"===s[r]?p="utf-8":"utf8=%26%2310003%3B"===s[r]&&(p="iso-8859-1"),f=r,r=s.length);for(r=0;r<s.length;++r)if(r!==f){var d,y,h=s[r],m=h.indexOf("]="),b=-1===m?h.indexOf("="):m+1;-1===b?(d=t.decoder(h,i.decoder,p),y=t.strictNullHandling?null:""):(d=t.decoder(h.slice(0,b),i.decoder,p),y=t.decoder(h.slice(b+1),i.decoder,p)),y&&t.interpretNumericEntities&&"iso-8859-1"===p&&(y=a(y)),y&&t.comma&&y.indexOf(",")>-1&&(y=y.split(",")),o.call(u,d)?u[d]=n.combine(u[d],y):u[d]=y}return u}(e,r):e,l=r.plainObjects?Object.create(null):{},s=Object.keys(c),f=0;f<s.length;++f){var p=s[f],d=u(p,c[p],r);l=n.merge(l,d,r)}return n.compact(l)}},function(e,t,r){"use strict";function n(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}r.r(t);var o=function(){function e(t,r,n){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t,this.ziggy=n,this.route=this.ziggy.namedRoutes[this.name],void 0===this.name)throw new Error("Ziggy Error: You must provide a route name");if(void 0===this.route)throw new Error("Ziggy Error: route '".concat(this.name,"' is not found in the route list"));this.absolute=void 0===r||r,this.domain=this.setDomain(),this.path=this.route.uri.replace(/^\//,"")}var t,r;return t=e,(r=[{key:"setDomain",value:function(){if(!this.absolute)return"/";if(!this.route.domain)return this.ziggy.baseUrl.replace(/\/?$/,"/");var e=(this.route.domain||this.ziggy.baseDomain).replace(/\/+$/,"");return this.ziggy.basePort&&e.replace(/\/+$/,"")===this.ziggy.baseDomain.replace(/\/+$/,"")&&(e=this.ziggy.baseDomain+":"+this.ziggy.basePort),this.ziggy.baseProtocol+"://"+e+"/"}},{key:"construct",value:function(){return this.domain+this.path}}])&&n(t.prototype,r),e}(),i=r(2);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e){var t="function"==typeof Map?new Map:void 0;return(l=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,r){return(function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&s(o,r.prototype),o}).apply(null,arguments)}(e,arguments,f(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),s(n,e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}r.d(t,"default",function(){return d});var p=function(e){function t(e,r,n){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(i=function(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}(this,f(t).call(this))).name=e,i.absolute=n,i.ziggy=a||Ziggy,i.urlBuilder=i.name?new o(e,n,i.ziggy):null,i.template=i.urlBuilder?i.urlBuilder.construct():"",i.urlParams=i.normalizeParams(r),i.queryParams={},i.hydrated="",i}var r,n;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(t,l(String)),r=t,(n=[{key:"normalizeParams",value:function(e){return void 0===e?{}:((e="object"!==u(e)?[e]:e).hasOwnProperty("id")&&-1==this.template.indexOf("{id}")&&(e=[e.id]),this.numericParamIndices=Array.isArray(e),a({},e))}},{key:"with",value:function(e){return this.urlParams=this.normalizeParams(e),this}},{key:"withQuery",value:function(e){return a(this.queryParams,e),this}},{key:"hydrateUrl",value:function(){var e=this;if(this.hydrated)return this.hydrated;var t=this.template.replace(/{([^}]+)}/gi,function(t,r){var n,o,i=e.trimParam(t);if(e.ziggy.defaultParameters.hasOwnProperty(i)&&(n=e.ziggy.defaultParameters[i]),n&&!e.urlParams[i])return delete e.urlParams[i],n;if(e.numericParamIndices?(e.urlParams=Object.values(e.urlParams),o=e.urlParams.shift()):(o=e.urlParams[i],delete e.urlParams[i]),void 0===o){if(-1===t.indexOf("?"))throw new Error("Ziggy Error: '"+i+"' key is required for route '"+e.name+"'");return""}return o.id?encodeURIComponent(o.id):encodeURIComponent(o)});return null!=this.urlBuilder&&""!==this.urlBuilder.path&&(t=t.replace(/\/+$/,"")),this.hydrated=t,this.hydrated}},{key:"matchUrl",value:function(){var e=window.location.hostname+(window.location.port?":"+window.location.port:"")+window.location.pathname,t=this.template.replace(/(\/\{[^\}]*\?\})/g,"/").replace(/(\{[^\}]*\})/gi,"[^/?]+").replace(/\/?$/,"").split("://")[1],r=this.template.replace(/(\{[^\}]*\})/gi,"[^/?]+").split("://")[1],n=e.replace(/\/?$/,"/"),o=new RegExp("^"+r+"/$").test(n),i=new RegExp("^"+t+"/$").test(n);return o||i}},{key:"constructQuery",value:function(){if(0===Object.keys(this.queryParams).length&&0===Object.keys(this.urlParams).length)return"";var e=a(this.urlParams,this.queryParams);return Object(i.stringify)(e,{encodeValuesOnly:!0,skipNulls:!0,addQueryPrefix:!0,arrayFormat:"indices"})}},{key:"current",value:function(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=Object.keys(this.ziggy.namedRoutes),o=n.filter(function(r){return-1!==e.ziggy.namedRoutes[r].methods.indexOf("GET")&&new t(r,void 0,void 0,e.ziggy).matchUrl()})[0];if(r){var i=new RegExp("^"+r.replace("*",".*").replace(".",".")+"$","i");return i.test(o)}return o}},{key:"check",value:function(e){return Object.keys(this.ziggy.namedRoutes).includes(e)}},{key:"extractParams",value:function(e,t,r){var n=this,o=e.split(r);return t.split(r).reduce(function(e,t,r){return 0===t.indexOf("{")&&-1!==t.indexOf("}")&&o[r]?a(e,(i={},u=n.trimParam(t),c=o[r],u in i?Object.defineProperty(i,u,{value:c,enumerable:!0,configurable:!0,writable:!0}):i[u]=c,i)):e;var i,u,c},{})}},{key:"parse",value:function(){this.return=this.hydrateUrl()+this.constructQuery()}},{key:"url",value:function(){return this.parse(),this.return}},{key:"toString",value:function(){return this.url()}},{key:"trimParam",value:function(e){return e.replace(/{|}|\?/g,"")}},{key:"valueOf",value:function(){return this.url()}},{key:"params",get:function(){var e=this.ziggy.namedRoutes[this.current()];return a(this.extractParams(window.location.hostname,e.domain||"","."),this.extractParams(window.location.pathname.slice(1),e.uri,"/"))}}])&&c(r.prototype,n),t}();function d(e,t,r,n){return new p(e,t,r,n)}}]).default}); </script><script type="text/javascript"> (function() { var routes = {"front::resumes.show":{"uri":"view-resume\/{resume_id}\/{hash?}","methods":["GET","HEAD"],"domain":null}}; for (var name in routes) { Ziggy.namedRoutes[name] = routes[name]; } })(); </script> <script> loadScripts('themes/nextgen/plugins/file-upload.min.js?1728058777'); </script> <script> document.addEventListener('jqueryReady', function () { loadScripts( "themes/nextgen/plugins/autocomplete/dist/jquery.autocomplete.min.js?1549902715", initAutocomplete ) }) // Editing location function loadAutocomplete () { let $input = $('input.location-input'), $parent = $input.parent().parent(), $locationInputData = $('<input type="hidden" name="location_autocomplete_data">'); // disabling autocomplete input to prevent appearing key/value in search $locationInputData.prop('disabled', true); // Append data hidden input $parent.prepend($locationInputData); $input.on('keyup', function () { // Reset autocomplete data if ($(this).val().length < 3) { $locationInputData.val(''); ['country', 'state', 'city', 'zip', 'longitude', 'latitude'].forEach(function(value) { $parent.closest('form').find('input[name=' + value + ']').val('') }) } }); $input.devbridgeAutocomplete({ minChars: 1, deferRequestBy: 250, appendTo: $parent, showNoSuggestionNotice: true, tabDisabled: true, noSuggestionNotice: "Location not found", lookup: function (query, done) { if (query.length > 2) { $('.' + this.containerClass) .show() .html('<div class="autocomplete-notices">Searching...</div>'); $.ajax({ url: 'ajax.php', dataType: 'json', data: { page: 'index', action: 'location_autocomplete', q: query, return: 'city, state', unique: 1, states: 1, } }).done(function (response) { done({ suggestions: response.data }); }); } else { $('.'+this.containerClass) .show() .html('<div class="autocomplete-notices">Enter more characters</div>'); } }, onSelect: function (suggestion) { for (const [key, value] of Object.entries(suggestion.data)) { $parent.closest('form').find('input[name=' + key + ']').val(value) } }, }).on("focus", function () { if (!$(this).val()) { $(this) .next() .show() .html('<div class="autocomplete-notices">Enter location</div>'); } }).attr('autocomplete', 'off'); } function initAutocomplete () { loadAutocomplete(); } </script> <script defer src="themes/nextgen/plugins/simple-scrollbar/simple-scrollbar.min.js?1665575574"></script> <link rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" href="themes/nextgen/plugins/simple-scrollbar/simple-scrollbar.min.css?1665575574"> <script> document.addEventListener('bootstrapReady', function () { loadScripts( "themes/nextgen/plugins/jsxss/xss.min.js?1665575574", initSanitizer ) }); function sanitizeHTML($collection) { $collection.each(function () { var $input = $(this); const clearValue = filterXSS($input.val(), { // empty, means filter out all tags whiteList: [], // filter out all HTML not in the whitelist stripIgnoreTag: true, // the script tag is a special case, we need // to filter out its content stripIgnoreTagBody: ['script'] }); $input.val(clearValue.trim()); }); } function initSanitizer() { let $forms = $('form'); if ($forms.length) { $forms.each(function () { let $inputs = $(this).find('input:not([type="file"])'); sanitizeHTML($inputs); }); } $(document).on('submit', 'form', function (e) { let $inputs = $(e.target).find('input:not([type="file"])'); sanitizeHTML($inputs); }); } </script> <script src="themes/nextgen/plugins/jsrender/jsrender.min.js?1665575573"></script> <script type="text/javascript"> $.views.settings.delimiters("<%", "%>"); $.views.settings.allowCode(true); </script> <script> function replaceSymbols(str, val) { if (str !== undefined && str !== null) { return str.toString().replace(/[^a-zA-Z0-9]/g, val); } } function setJsonScriptContent(content) { if (!content) { return; } let script = $('#jsonScript'), innerJS = content.toString(); if(script.length) { script.text(innerJS); } else { $("body").append(`<script id="jsonScript" type="application/ld+json">${innerJS}<\/script>`); } } function formatSalary(salary, currency) { var x = salary.split('.'), x1 = x[0], x2 = x.length > 1 ? '.' + x[1] : '', rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return currency + x1; } // Helpers registering $.views.helpers({ replaceSymbols: replaceSymbols, setJsonScriptContent: setJsonScriptContent, formatSalary: formatSalary, }); </script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBcRq0TjEy1LMjq1jpXHsL3UsU73c9JX0s&libraries=places&language=en&callback=Function.prototype"></script> <script src="themes/nextgen/js/_includes/_commute_time.js?1728058776"></script> <script> function gmapReady(){ triggerEvent('gmapReady'); } $(function () { let commuteTimeProto = commuteTime({ fromInput: 'commute_from_location', toInput: 'commute_to_location', languages: { no_results: "No Results", }, type: 'panel', }); }); </script> <script> let pageTemplates = { list: '#pv_searchItem', view: "#pv_viewItem", viewPlaceholder: '#pv_viewPlaceholder', filter: "#pv_searchFilter", listings: "#pv_listings", agentForm: '#pv_agentForm', careerPaths: '#pv_careerPaths', applyPopup: '#pv_applyPopup', articles: '#pv_Articles', }; let pv_banners = { frequency: 6, list: [], topBanner: [] } $.ajaxSetup({ headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')} }); </script> <script src="themes/nextgen/js/pages/jobs.js?1728058777"></script> <script> let pageLangs = { an_error_occurred: "An error occurred", no_connect: "No connect. <br> Verify Network.", this_job_is_unavailable: "This job is unavailable. You're unable to submit an application.", internal_server_error: "Internal Server Error.", requested_JSON_parse_failed: "Requested JSON parse failed.", time_out_error: "Time out error.", ajax_request_aborted: "Ajax request aborted.", uncaught_error: "Uncaught Error.", }; page = new JobsPage(); $(document).on('submit', 'form[name="pane-search"]', function (e) { e.preventDefault(); if (page.map) { page.map.allowLocationsFitBounds(); } page.processFormSubmit(); }).on('change', '.js-search-filter', function () { if (page.map) { page.map.allowLocationsFitBounds(); } page.processChangeFilter(this); }).on('click', '.search-item', function (e) { e.preventDefault(); page.renderJob($(this).data('id')); }).on('click', '[data-action="view-all-jobs"]', function (e) { let $this = $(this), latlng = JSON.parse(decodeURIComponent($this.attr('data-latlng'))); page.clearViewItem(true); page.map.toggleCheckbox.trigger('click'); page.update('latitude=' + latlng.lat + '&longitude=' + latlng.lng + '&radius=1&backfl=0&natw=0&remote=0'); }).on('click', '.js-search-sort', function (e) { e.preventDefault(); $('form[name="pane-search"]') .find('input[name="sort"]') .val($(this).data('sort')); page.clearViewItem(true); page.renderPlaceholders(); page.update('sort=' + $(this).data('sort')); }).on('click', '.js-view-item-close', function (e) { e.preventDefault(); page.clearViewItem(true); }).on('click', '.js-load-more', function (e) { e.preventDefault(); page.processLoadMore(); }).on('click', '.js-search-load-omitted', function (e) { e.preventDefault(); e.stopPropagation(); page.$_topBanner.html(''); page.showOmittedJobs($(this).attr('data-omitted')); page.scroll('html, body', '.content-block'); }).on('submit', '.subscribe-form-wrap .agent-form', function (e) { e.preventDefault(); page.agentForm.subscribe(); return false; }).on('click', '.subscribe-form-wrap .js-change-freq', function (e) { e.preventDefault(); page.agentForm.updateFreq($('.subscribe-form-wrap select[name="new_freq"]').children("option:selected").val()); return false; }).on('submit', '.apply-agent-form-wrap .agent-form', function (e) { e.preventDefault(); page.applyForm.agentSubscribe(); return false; }).on('click', '.apply-agent-form-wrap .js-change-freq', function (e) { e.preventDefault(); page.applyForm.agentUpdateFreq($('.apply-agent-form-wrap select[name="new_freq"]').children("option:selected").val()); return false; }).on('click', '.apply-link', function (e) { e.preventDefault(); page.applyForm.renderPlaceholder(); page.showApply(); }).on('submit', '.apply-form', function (e) { e.preventDefault(); page.applyForm.initCaptchaAndApply(); return false; }).on('close.bs.alert', '.js-alert-container', function (e) { page.processCloseAlert(); }).on('hidden.bs.modal', '.apply-popup', function (e) { page.applyForm.clearApplyPopup(); }).on('click', '.js-back-button', function (e) { e.preventDefault(); page.$_topBanner.html(''); page.removeOmittedJobs(); }).on('click', '.js-save-link', function (e) { e.preventDefault(); page.processSaveButton(); }).on('click', '.sort-by-wrap .dropdown-menu a', function (e) { let $this = $(this), selectedItemText = $this.text(), currentItem = $this.closest('.dropdown').find('.sort-current'); currentItem.text(selectedItemText); }); $(window).on('popstate', function (e) { page.update(e.originalEvent.state, true); }); $(function () { $('.ws-footer').removeClass('mt-2').addClass('mt-0'); }); (function () { $(document).on('show.bs.collapse hidden.bs.collapse', '.panel-collapse', function (e) { $(e.currentTarget).parent().toggleClass('active'); }); })(); </script> <script>var scriptLang = 'en-US'</script> <script> function loadSummernote (){ loadStyles('themes/nextgen/plugins/WYSIWYG/summernote.css?1572269691'); loadScripts( [ 'themes/nextgen/plugins/WYSIWYG/summernote.min.js?1728058777' ], asyncSummernoteInit ) } function asyncSummernoteInit() { loadScripts( [ 'themes/nextgen/plugins/WYSIWYG/plugin/summernote-striptags.min.js?1728058777', 'themes/nextgen/plugins/WYSIWYG/plugin/summernote-chars-limit.min.js?1665575572', ], () => { let charsLimit = {}; charsLimit[window.scriptLang] = { charslimit: { 'buttonContents': "<span class='chars-left'></span> of <span class='chars-total'></span> characters used", 'buttonTooltip': "Click for more information", 'infoPopupTitle': "Your job posting is limited.", 'infoPopupText': "Your job posting is limited to <span class='max-chars-text'></span> characters in the job description.<br/><br/> Want to upgrade your job to unlimited characters? Call 518-818-6108 to speak to a recruitment specialist.", 'warningPopupTitle': "You've reached the character limit!", 'warningPopupText': "Your job posting is limited to <span class='max-chars-text'></span> characters in the job description.<br/><br/> Want to upgrade your job to unlimited characters? Call 518-818-6108 to speak to a recruitment specialist.", 'errorCodeAfterEditor': "<div class='alert alert-danger mt-1 js-wysiwyg-chars-limit-error' role='alert'><strong>Your job posting is limited in the job description.</strong><br/><br> Your job posting is limited to <span class='max-chars-text'></span> characters in the job description.<br/> Want to upgrade your job to unlimited characters? Call 518-818-6108 to speak to a recruitment specialist.</div>" } } $.extend(true, $.summernote.lang, charsLimit); if ($('.text-editor').length) { $('.text-editor').each(function () { var $el = $(this); initializeSummernote($el); }); } } ); } function initializeSummernote($el) { if ($el.data('summernote')) { $el.off('summernote.paste').summernote('destroy'); } if ($.summernote) { $el.summernote({ height: 250, minHeight: 250, toolbar: [ ['cleaner', ['striptags']], ['font', ['bold', 'italic', 'underline', 'clear']], ['para', ['ul', 'ol', 'paragraph']], ['view', ['fullscreen']], ], popover: { image: [], link: [], air: [] }, charslimit: { max: $el.data('max-chars') || window.summernoteMaxChars || null }, callbacks: { onInit: function() { $(function () { if (isMSIE() && !$el.prev().hasClass('.old-browser-alert')) { let oldBrowserAlert = $('<div class="alert alert-danger mb-1 old-browser-alert">Warning: You are using Internet Explorer, which is an outdated browser and no longer supports some modern functions. This could affect style formatting, copying and pasting, and job posting ability. We recommend using a different browser, like Google Chrome or Firefox, for the best experience.</div>'); $(oldBrowserAlert).insertBefore($el); } }); }, onKeyup: function (contents, $editable) { // trick for jQuery.Validation $el.trigger('change').blur(); } }, lang: scriptLang, disableDragAndDrop: true }); if ($el.prop('disabled')) { $el.summernote('disable'); } } } document.addEventListener('jqueryReady', function () { loadSummernote(); <!-- WYSIWYG Editor After Ajax Queries --> $(document).ajaxComplete(function () { setTimeout(function() { $('.text-editor').each(function () { var $el = $(this); if (!$el.next().hasClass('note-editor')) { initializeSummernote($el); } }); }, 500) }); }) </script> <script> function initValidation() { loadScripts( [ 'themes/nextgen/plugins/jquery-validation/jquery.validate.min.js?1665575572', ], processInitValidation ) } function processInitValidation() { let $form = $('form.js-form-validation'); if ($form.length) { $form.each(function () { $(this).validate({ focusInvalid: false, focusCleanup: true, validClass: 'form-control-valid', errorClass: 'form-control-invalid', ignore: ':hidden, [contenteditable="true"]:not([name])', onfocusout: function (element) { if (element.type !== 'file') { this.element(element); } }, errorPlacement: function (error, element) { if (element.hasClass('file-upload-input') || element.hasClass('text-editor')) { error.insertAfter(element.next()); } else { error.insertAfter(element); } } }); }); } } </script> <script> function loadSelect2 (){ loadStyles('themes/nextgen/plugins/selects/css/select2.min.css?1665575574'); loadScripts( [ 'themes/nextgen/plugins/selects/select2.full.min.js?1549902716' ], asyncSelect2Init ) } function asyncSelect2Init() { var $focusedNameAttr, ajaxInProgress = false; loadScripts('themes/nextgen/plugins/selects/i18n/en.js?1549902716'); triggerEvent('select2Ready'); if( $('.auto-complete').length ){ $('.auto-complete').each(function(){ let that = $(this); $(this).select2({ language: 'en', width: '100%', dropdownParent: that.attr('dropdownparent') ? $(`${that.attr('dropdownparent')}`) : '' }); }); } <!-- Auto Complete After Ajax Queries --> $(document).ajaxComplete(function() { $('.auto-complete').each(function(){ let that = $(this); if ( $(this).hasClass('select2-hidden-accessible') ){ $(this).select2('destroy'); } $(this).select2({ language: 'en', width: '100%', dropdownParent: that.attr('dropdownparent') ? $(`${that.attr('dropdownparent')}`) : '' }); if( $('select[name="'+ $focusedNameAttr +'"]').length ){ setTimeout(function(){ $('select[name="'+ $focusedNameAttr +'"]').focus(); bindKeyEvents(); }, 100); } ajaxInProgress = false; }); }); <!-- Multiple --> if( $('.multiple-select').length ){ $('.multiple-select').each(function(){ let that = $(this); $(this).select2({ tags: true, tokenSeparators: [',', ' '], language: 'en', width: '100%', dropdownParent: that.attr('dropdownparent') ? $(`${that.attr('dropdownparent')}`) : '' }); }); } <!-- Auto Complete After Ajax Queries --> $(document).ajaxComplete(function() { $('.multiple-select').each(function(){ let that = $(this); if ( $(this).hasClass('select2-hidden-accessible') ){ $(this).select2('destroy'); } $(this).select2({ tags: true, tokenSeparators: [',', ' '], language: 'en', width: '100%', dropdownParent: that.attr('dropdownparent') ? $(`${that.attr('dropdownparent')}`) : '' }); if( $('select[name="'+ $focusedNameAttr +'"]').length ){ setTimeout(function(){ $('select[name="'+ $focusedNameAttr +'"]').focus(); bindKeyEvents(); }, 100); } ajaxInProgress = false; }); }); $("body").on('keydown', ".select2", function (e) { var KEYS = [ 38, 40, 13 ], $sel2 = $(this); var $sel = $sel2.data("element"); if ($sel.length) { if ( KEYS.includes(e.keyCode) ) { e.preventDefault(); if (e.originalEvent && !ajaxInProgress) { $(this).siblings('select').select2('open'); } } } }).on('change', ".auto-complete", function (e) { $focusedNameAttr = $(this).attr('name'); }).on('change', ".auto-complete[onchange*='submit_ajax_form']", function (e) { ajaxInProgress = true; }).on('focus', "input:not(.auto-complete), select:not(.auto-complete), div, body", function (e) { $focusedNameAttr = ''; }); function bindKeyEvents(){ $('select').on('select2:close', function(){ $(this).focus(); }).on('select2:open', function(){ var self = $(this); if( ajaxInProgress ){ self.select2('close'); } }); } } loadSelect2(); </script>