משרה פתוחה
Software Architect
חזרה לחיפוש משרות

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

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

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

פרטי המשרה

תיאור המשרה:
לחברת טכנולוגיה מובילה בחולון דרוש/ה ארכיטקט/ית תוכנה לתכנון והובלת ארכיטקטורת מערכות מורכבות בקנה מידה גדול.
התפקיד כולל קבלת החלטות טכנולוגיות, הגדרת סטנדרטים, עבודה צמודה עם צוותי פיתוח, מוצר ותשתיות, וליווי פרויקטים מקצה לקצה.

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

סוג משרה: מלאה
ניסיון: בכיר

תאריך פרסום המשרה
(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); }); })();

כתיבת תגובה

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