משרה פתוחה
Senior Backend Developer
חזרה לחיפוש משרות

שליחת קורות חיים

מלאו את הפרטים והעלו קובץ קורות חיים. ההגשה תישלח אליכם וגם אל מפרסם המשרה אם הוגדר מייל במשרה.

ניתן להעלות קבצים מסוג PDF, DOC או DOCX בלבד.

פרטי המשרה

תיאור המשרה:
פיתוח שירותי Backend מתקדמים, עבודה עם מערכות מבוזרות, ביצועים וסקייל גבוה, ושיפור מתמיד של תשתיות קיימות.

דרישות התפקיד:
ניסיון של 5 שנים ומעלה בפיתוח Backend
ניסיון בעבודה עם Cloud ו־Microservices
שליטה במסדי נתונים
יכולת פתרון בעיות מורכבות

סוג משרה: מלאה

תאריך פרסום המשרה
(function() { // לוקח את תאריך הפרסום מתוך המטא של וורדפרס const metaTag = document.querySelector('meta[property="article:published_time"]'); if (!metaTag) { document.getElementById("job-date").innerText = "לא נמצא"; return; } const originalDateStr = metaTag.getAttribute("content").split("T")[0]; const originalDate = new Date(originalDateStr); const today = new Date(); const cycleDays = 21; // כל כמה ימים התאריך "מתאפס" const diffTime = today - originalDate; const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); const cycles = Math.floor(diffDays / cycleDays); const newDisplayDate = new Date(originalDate); newDisplayDate.setDate(originalDate.getDate() + cycles * cycleDays); const options = { day: "2-digit", month: "2-digit", year: "numeric" }; const formatted = newDisplayDate.toLocaleDateString("he-IL", options); document.getElementById("job-date").innerText = formatted; })(); /* אפקט ריחוף נקי ומקצועי */ #job-date-wrapper:hover { box-shadow: 0 6px 18px rgba(59, 85, 255, 0.22); transform: translateY(-2px); }
#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; } }

בדקו האם הקורות חיים שלכם מתאימים למשרה וגם קבלו תחזית איך תתפתח הקריירה שלכם אם תעבדו במשרה הזאת

תחזית קריירה: ---
ציון התאמה: --/100
מיומנויות:
---
מעלה קובץ… אנא המתן
בחרו קובץ קורות חיים (Word בלבד):
(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 — דוח התאמה

TheJob.co.il — דוח התאמה למשרה

תאריך: ${new Date(last.timestamp).toLocaleString()}

ציון התאמה: ${last.score}/100

מיומנויות נמצאו: ${last.found.join(", ")||"לא נמצאו"}
מיומנויות חסרות: ${last.missing.join(", ")||"כל המיומנויות נמצאות"}
תחזית קריירה: ${last.forecast}
`; w.document.write(html); w.document.close(); setTimeout(()=>w.print(),500); }); })();

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *