PageSourceSearch

https://newlocal.ca/assets/job-utils-Te9aVUZq.js

js newlocal.ca collected 2026-10-04 23:45:38 UTC 5,889 bytes, 1 lines download raw bytes

1import{t as e}from"./format-location-Cuu5J-8Q.js";var t={software_engineering:[`software engineer`,`software developer`,`programmer`,`swe `,`full-stack developer`,`web developer`],ai_ml:[`machine learning`,`artificial intelligence`,` ai `,`data scientist`,`ml engineer`,`nlp`,`deep learning`,`computer vision`],cybersecurity:[`security engineer`,`cybersecurity`,`security analyst`,`penetration test`,`infosec`,`soc analyst`],devops:[`devops`,`site reliability`,`sre `,`cloud engineer`,`platform engineer`,`infrastructure engineer`,`cloud architect`],data_engineering:[`data engineer`,`etl`,`data pipeline`,`analytics engineer`,`big data`,`data architect`],mobile:[`ios developer`,`android developer`,`mobile developer`,`react native`,`flutter developer`,`mobile engineer`],frontend:[`frontend`,`front-end`,`front end`,`ui developer`,`react developer`,`vue developer`,`angular developer`],backend:[`backend`,`back-end`,`back end`,`api developer`,`node.js`,`python developer`,`java developer`,`golang`,`ruby developer`],fullstack:[`full stack`,`fullstack`,`full-stack`],blockchain:[`blockchain`,`web3`,`smart contract`,`solidity`,`defi`],qa:[`qa engineer`,`quality assurance`,`test engineer`,`automation engineer`,`sdet`,`qa analyst`],product_management:[`product manager`,`product owner`,`product lead`,`product director`,`head of product`,`vp product`],ux_design:[`ux designer`,`ui designer`,`product designer`,`ux researcher`,`interaction designer`,`visual designer`],graphic_design:[`graphic designer`,`brand designer`,`creative director`,`visual designer`],digital_marketing:[`marketing manager`,`digital marketing`,`growth market`,`marketing lead`,`marketing director`],content_marketing:[`content market`,`content strategist`,`copywriter`,`content manager`,`content writer`],seo_sem:[`seo `,`sem `,`search engine`,`search marketing`],social_media:[`social media`,`community manager`],sales:[`sales manager`,`account executive`,`sales director`,`sales rep`,`sales engineer`,`sales lead`],business_development:[`business development`,`partnerships`,`bd manager`,`strategic partner`],customer_success:[`customer success`,`account manager`,`client success`,`customer experience`],operations:[`operations manager`,`operations lead`,`operations director`,`chief operating`],project_management:[`project manager`,`program manager`,`scrum master`,`agile coach`,`pmo`],supply_chain:[`supply chain`,`logistics`,`procurement`,`warehouse manager`],finance:[`finance manager`,`financial analyst`,`cfo`,`finance director`,`fp&a`,`treasury`],accounting:[`accountant`,`accounting`,`bookkeeper`,`controller`,`auditor`],fintech:[`fintech`,`payments`,`banking engineer`],hr:[`human resources`,`hr manager`,`hr business partner`,`people operations`,`hr director`],recruitment:[`recruiter`,`talent acquisition`,`sourcer`,`recruiting`],healthcare:[`nurse`,`physician`,`doctor`,`healthcare`,`medical`,`clinical`,`pharmacist`,`therapist`],legal:[`lawyer`,`legal counsel`,`attorney`,`general counsel`,`paralegal`],compliance:[`compliance`,`risk manager`,`regulatory`,`audit manager`],education:[`teacher`,`instructor`,`professor`,`training manager`,`learning`],administrative:[`executive assistant`,`office manager`,`administrative`,`coordinator`,`receptionist`],consulting:[`consultant`,`advisory`,`management consultant`,`strategy consultant`],writing:[`technical writer`,`editor`,`documentation`,`content editor`]},n=(e,n)=>{if(n){let e=n.toLowerCase().replace(/[\s&]+/g,`_`);if(Object.keys(t).includes(e))return n}let r=` ${e.toLowerCase()} `;for(let[e,n]of Object.entries(t))for(let t of n)if(r.includes(t.toLowerCase()))return e;return n||`General`},r=e=>{if(!e)return null;let t=e.replace(/,/g,``),n=t.match(/(\d+\.?\d*)\s*[kK]/);if(n)return parseFloat(n[1])*1e3;let r=t.match(/(\d{4,})/g);return r?Math.max(...r.map(Number)):null},i=e=>{if(!e)return`onsite`;let t=e.toLowerCase();return t.includes(`remote`)&&!t.includes(`hybrid`)?`remote`:t.includes(`hybrid`)||t.includes(`flexible`)?`hybrid`:`onsite`},a=e=>{if(!e)return`mid`;let t=e.toLowerCase();return t.includes(`entry`)||t.includes(`junior`)||t.includes(`intern`)?`entry`:t.includes(`senior`)||t.includes(`lead`)?`senior`:t.includes(`executive`)||t.includes(`director`)||t.includes(`head`)?`executive`:`mid`},o=e=>{if(!e)return`permanent`;let t=e.toLowerCase();return t.includes(`contract`)?`contract`:t.includes(`part-time`)||t.includes(`part time`)?`part-time`:t.includes(`intern`)?`internship`:t.includes(`temporary`)||t.includes(`temp`)?`temporary`:`permanent`},s=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,c=e=>{let t=new Set;
1return e.forEach(e=>{let n=e.replace(/^partner-/,``);s.test(n)&&t.add(n)}),[...t]},l=e=>{let t=new Set;return e.forEach(e=>{let n=e.replace(/^partner-/,``).replace(/^emp-/,``);/^emp-/.test(e.replace(/^partner-/,``))&&s.test(n)&&t.add(n)}),[...t]},u=t=>({id:`partner-${t.id}`,title:t.title,category:n(t.title,t.specialty),employer:t.employer,location:{city:e(t.location),country:t.country,countryCode:t.country_code},employmentType:o(t.employment_type),salary:{min:0,max:0,currency:`USD`,period:`month`},salaryText:t.salary_text||t.salary_range||void 0,remoteOption:i(t.remote_option),experienceLevel:a(t.experience_level),housing:!1,postedDate:t.scraped_at,urgentHiring:!1,featured:!1,requirements:t.requirements?t.requirements.split(`,`).map(e=>e.trim()):[],benefits:t.benefits?t.benefits.split(`,`).map(e=>e.trim()):[],description:t.description||``,isPartner:!0,sourceUrl:t.source_url,enrichedDescription:t.description||void 0,enrichedRequirements:t.requirements||void 0,enrichedBenefits:t.benefits||void 0,experienceLevelText:t.experience_level||void 0,remoteOptionText:t.remote_option||void 0,employerLogo:t.employer_logo||void 0,employerWebsite:t.employer_website||void 0}),d=e=>`/jobs/${e.startsWith(`partner-`)?e.replace(`partner-`,``):e}`;export{r as a,d as i,l as n,c as r,u as t};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.