משרה פתוחה
דרוש/ה איש/אשת בקרה על מצלמות אבטחה לחברה קמעונאית בבני ברק
שליחת קורות חיים
מלאו את הפרטים והעלו קובץ קורות חיים. ההגשה תישלח אליכם וגם אל מפרסם המשרה אם הוגדר מייל במשרה.
פרטי המשרה
תחום: ביטחון ואבטחה
מיקום: משרדי החברה בני ברק
סוג משרה: מלאה חלקית משמרות
מתאים גם לסטודנטים
תיאור המשרה
לחברה קמעונאית מובילה דרוש/ה איש/אשת בקרה על מצלמות אבטחה.
התפקיד כולל צפייה רציפה במצלמות אבטחה, בקרה ומעקב אחר פעילות חריגה, ודיווח בהתאם לנהלים הקבועים בחברה.
העבודה מתבצעת בישיבה, בסביבה נוחה וממוזגת, ומתאימה גם לסטודנטים המחפשים עבודה במשמרות בתחום הביטחון.
דרישות התפקיד
אחריות וריכוז גבוה
יכולת תשומת לב לפרטים
ניסיון קודם בתחום האבטחה או הבקרה יתרון אך לא חובה
יכולת עבודה עצמאית ובמשמרות
פרטי המשרה
מיקום העבודה משרדים בבני ברק
היקף המשרה מלאה חלקית או משמרות
המשרה מתאימה לסטודנטים
ניסיון שנה יתרון
כמות הצפיות למשרה: 157
תאריך פרסום המשרה
#instant-fit { font-family: Heebo,Arial; direction: rtl; max-width: 900px; margin: 20px auto; padding: 25px; border-radius: 16px; border: 1px solid #0b84ff; background: linear-gradient(180deg,#f6fbff,#eaf6ff); box-shadow: 0 6px 18px rgba(0,0,0,0.08); }
#instant-fit h3 { margin: 0 0 10px 0; font-weight: 700; font-size: 22px; color:#0b3c8a; }
#instant-fit .forecast { font-weight: 700; font-size: 16px; color: #2ecc71; margin: 6px 0 14px 0; }
#instant-fit input[type=file], #instant-fit textarea { display:none; }
#instant-fit .meter { height: 24px; border-radius: 999px; background: #eef6ff; overflow: hidden; margin-top: 12px; border: 1px solid #cce0ff; }
#instant-fit .meter-fill { height: 100%; width: 0%; background: linear-gradient(90deg,#0b84ff,#2ecc71); transition: width 0.8s ease; }
.badge { display: inline-block; padding: 6px 12px; border-radius: 999px; font-weight: 700; background: #ffefc2; color: #7a5f00; margin: 4px; font-size: 13px; }
.badge.found { background: #c2ffe8; color: #007a5f; }
.score-label { font-weight: 700; font-size: 18px; margin-left: 8px; }
.small { font-size: 13px; color: #556677; margin-top: 6px; }
#paste-container { display:none; margin-top:10px; }
#paste-container textarea { display:block; width:100%; min-height:120px; padding:10px; border-radius:8px; border:1px solid #cce0ff; font-family:Heebo,Arial; font-size:14px; resize:vertical; }
#fit-alert { color:#d84315; font-weight:700; margin-top:10px; display:none; }
#fit-loading { color:#0b84ff; font-weight:700; margin-top:10px; display:none; }
#instant-fit .button-group {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 12px;
}
#instant-fit label.upload-btn,
#instant-fit button,
#instant-fit button.secondary {
flex: 1 1 160px;
display: flex;
align-items: center;
justify-content: center;
padding: 12px 0;
font-size: 16px;
font-weight: 700;
background: #0b84ff;
color: #fff;
border-radius: 8px;
border: none;
cursor: pointer;
text-align: center;
text-decoration: none;
transition: background 0.3s;
box-sizing: border-box;
}
#instant-fit label.upload-btn:hover,
#instant-fit button:hover,
#instant-fit button.secondary:hover {
background: #0961b3;
}
@media (max-width: 480px){
#instant-fit { padding:15px; }
#instant-fit h3 { font-size:18px; }
#instant-fit label.upload-btn,
#instant-fit button,
#instant-fit button.secondary { flex: 1 1 100%; padding: 10px 0; font-size: 14px; }
.meter { height:20px; }
.badge { font-size:12px; padding:4px 8px; }
}
(async function(){
const scoreEl = document.getElementById('fit-score');
const missingEl = document.getElementById('fit-missing');
const futureEl = document.getElementById('forecast-title');
const meterEl = document.getElementById('fit-meter');
const commentEl = document.getElementById('fit-comment');
const alertEl = document.getElementById('fit-alert');
const loadingEl = document.getElementById('fit-loading');
const calcBtn = document.getElementById('fit-calc');
const exportBtn = document.getElementById('fit-export');
const fileInput = document.getElementById('cv-file');
const showPasteBtn = document.getElementById('show-paste');
const pasteContainer = document.getElementById('paste-container');
const pasteTextarea = document.getElementById('cv-paste');
const possibleHeaders = [
"מה אנחנו מחפשים",
"דרישות המשרה",
"דרישות",
"מיומנויות נדרשות",
"כישורים נדרשים"
];
const stopWords = [
"עם","של","על","ה","ו","בתוך","ל","מה","או","כ","יש","כן","לא","את","זה","זהו","זהה","היה","היו","היא",
"the","and","or","in","of","for","with","a","an","to","is","are","on","at","by","from","that","this"
];
function careerForecast(score){
if(score>=85) return "קידום מהיר אפשרי: ביניים → בכיר בתוך שנה";
if(score>=65) return "קידום אפשרי תוך 2‑3 שנים";
return "מומלץ להתחיל עם קורסים/פרויקטים משלימים";
}
function extractSkillsFromJob(text){
const lines = text.split(/\r?\n/).map(l=>l.trim()).filter(l=>l.length>0);
let skills = [];
for(let i=0;iline.includes(h))){
let j=i+1;
while(j0)){
skills.push(lines[j].replace(/^•\s*/,'').trim());
j++;
}
break;
}
}
return skills;
}
function filterMeaningfulWords(text){
return text.toLowerCase().split(/\s+/).filter(w=>!stopWords.includes(w)).map(w=>w.replace(/[^\p{L}\p{N}]/gu,'')).filter(w=>w.length>1);
}
function analyze(jobSkills, cvText){
cvText = filterMeaningfulWords(cvText).join(" ");
let score = 30;
let missing = [];
let found = [];
if(jobSkills.length===0) return {score:30,missing:["לא נמצאו מיומנויות במשרה"],found:[]};
jobSkills.forEach(skill=>{
const skillWords = filterMeaningfulWords(skill);
let matched = false;
skillWords.forEach(sw=>{
if(cvText.includes(sw)){
matched = true;
}
});
if(matched){
found.push(skill);
score += Math.floor(70/jobSkills.length);
} else {
missing.push(skill);
}
});
score = Math.min(100,score);
if(found.length===0) score = 30;
return {score,missing,found};
}
function loadJobText(){
const selectors = [
'.elementor-widget-text-editor .elementor-text-editor',
'.elementor-widget-text-editor',
'article',
'.job-description',
'.entry-content'
];
for(const sel of selectors){
const el = document.querySelector(sel);
if(el && el.innerText.trim().length>30) return el.innerText.trim();
}
return "";
}
async function readWord(file){
loadingEl.style.display="block";
const arrayBuffer = await file.arrayBuffer();
const result = await mammoth.extractRawText({arrayBuffer});
loadingEl.style.display="none";
return result.value;
}
function commentForScore(score){
if(score>=95) return "מעולה! הציון כמעט מושלם!";
if(score>=85) return "מדהים! התאמה גבוהה מאוד!";
if(score>=75) return "מצוין! התאמה טובה!";
if(score>=65) return "טוב מאוד! קצת מקום לשיפור";
return "טוב! אפשר לשפר עוד קצת";
}
function isTextMeaningful(text){
const words = filterMeaningfulWords(text);
return words.length >= 5;
}
showPasteBtn.addEventListener('click', ()=>{ pasteContainer.style.display = pasteContainer.style.display==='none'?'block':'none'; });
calcBtn.addEventListener('click', async()=>{
alertEl.style.display="none";
const jobText = loadJobText();
if(!jobText){ alert("לא נמצא טקסט משרה בעמוד"); return; }
let cvText = "";
if(fileInput.files.length>0){
cvText = await readWord(fileInput.files[0]);
} else if(pasteTextarea.value.trim()!==""){
cvText = pasteTextarea.value.trim();
} else {
alert("אנא העלה קובץ Word או הדבק קורות חיים.");
return;
}
if(!isTextMeaningful(cvText)){
alertEl.textContent = "הקורות חיים שהזנתם קצרים מדי או אינם קריאים. אנא הזינו קובץ אמיתי או הדביקו קורות חיים מלאים.";
alertEl.style.display="block";
scoreEl.textContent = "--";
meterEl.style.width = "0%";
commentEl.textContent = "";
missingEl.textContent = "---";
futureEl.textContent = "תחזית קריירה: ---";
return;
}
const jobSkills = extractSkillsFromJob(jobText);
const res = analyze(jobSkills, cvText);
scoreEl.textContent = res.score;
meterEl.style.width = res.score+"%";
commentEl.textContent = commentForScore(res.score);
let badges = [];
if(res.found.length>0) badges.push(...res.found.map(m=>`${m}`));
if(res.missing.length>0) badges.push(...res.missing.map(m=>`${m}`));
missingEl.innerHTML = badges.length ? badges.join(' ') : "כל המיומנויות נמצאות";
futureEl.textContent = careerForecast(res.score);
localStorage.setItem('instant-fit-last', JSON.stringify({
timestamp:new Date().toISOString(),
score:res.score,
missing:res.missing,
found:res.found,
forecast:careerForecast(res.score)
}));
});
exportBtn.addEventListener('click', ()=>{
const last = JSON.parse(localStorage.getItem('instant-fit-last')||"null");
if(!last){ alert("לא נמצא ניתוח"); return; }
const w=window.open('','_blank','width=800,height=900');
const html = `TheJob.co.il — דוח התאמה
בדקו האם הקורות חיים שלכם מתאימים למשרה וגם קבלו תחזית איך תתפתח הקריירה שלכם אם תעבדו במשרה הזאת
תחזית קריירה: ---
ציון התאמה: --/100
מיומנויות:
---
מעלה קובץ… אנא המתן
בחרו קובץ קורות חיים (Word בלבד):
TheJob.co.il — דוח התאמה למשרה
תאריך: ${new Date(last.timestamp).toLocaleString()}
ציון התאמה: ${last.score}/100
מיומנויות נמצאו: ${last.found.join(", ")||"לא נמצאו"}
מיומנויות חסרות: ${last.missing.join(", ")||"כל המיומנויות נמצאות"}
מיומנויות חסרות: ${last.missing.join(", ")||"כל המיומנויות נמצאות"}
תחזית קריירה: ${last.forecast}
`;
w.document.write(html); w.document.close();
setTimeout(()=>w.print(),500);
});
})();