Find Your Next Job in Canada 🍁

Thousands of jobs. Zero hassle. Start your career today.

📂 Browse by Category

⭐ Latest Jobs

`);w.document.close();w.focus();setTimeout(()=>{w.print()},500)} function uploadResume(e){const f=e.target.files[0];if(!f)return;document.getElementById('resumeStatus').textContent=`✅ "${f.name}" ready! Attach it when applying to jobs.`;setTimeout(()=>document.getElementById('resumeStatus').textContent='',4000)} function submitJob(e){e.preventDefault(); if(document.getElementById('f_website').value){closeModal('postModal');return} const desc=val('f_desc'),req=val('f_req'); const scamPat=/(pay.*fee|fee.*required|send.*money|wire.*transfer|bitcoin|crypto.*payment|processing fee|upfront.*payment)/i; if(scamPat.test(desc+' '+req)){alert('⚠️ This listing looks suspicious (mentions fees/payments). Please revise or contact us.');return} const lastPost=parseInt(localStorage.getItem('lj_lastpost')||'0'); if(Date.now()-lastPost<60000){alert('⏳ Please wait a minute before posting again.');return} localStorage.setItem('lj_lastpost',Date.now().toString()); const j={title:val('f_title'),company:val('f_company'),location:val('f_location'),salary:val('f_salary'),type:val('f_type'),cat:val('f_cat'),desc:desc,req:req,apply:val('f_apply'),date:new Date().toISOString().slice(0,10)}; jobs.push(j);persist();renderCats();renderJobs([...jobs].reverse());closeModal('postModal');e.target.reset(); alert('🎉 Job published! It is now live on Latest Jobs.')} function val(id){return document.getElementById(id).value.trim()} window.onclick=function(e){if(e.target.className==='modal')e.target.style.display='none'}; load();renderCats();renderJobs([...jobs].reverse());document.getElementById('savedCount').textContent=saved.length;injectJobSchema();