מחלקות משאבי אנוש מקדישות עד 40% מזמנן לפעולות שגרתיות: העברת מועמדים בין סטטוסים, שליחת הזמנות, ניהול תהליך קליטה. אפליקציית גיוס למובייל הופכת תהליכים אלה לאוטומטיים, ומאחדת מגייסים, מועמדים ועובדים חדשים בממשק אחד. לפי הנחיות הסקירה של Apple App Store, אפליקציות משאבי אנוש חייבות להבטיח סודיות נתוני משתמשים — אנו מבטיחים זאת. הניסיון שלנו כולל למעלה מ-10 פרויקטים בתחום משאבי האנוש, כך שאנו מכירים את כל המלכודות. האפליקציה שלנו מפחיתה את זמן עיבוד המועמדויות ב-30% ומגדילה את שיעור ההמרה ממועמד למינוי ב-40%. חיסכון של עד 1,500,000 רובל בשנה על אוטומציה של גיוס. צרו קשר לקבלת הערכה מפורטת לעסק שלכם.
מדוע ארכיטקטורה מבוססת תפקידים היא הבסיס לאפליקציית משאבי אנוש
לפחות שלושה תפקידים: מנהל משאבי אנוש/מגייס, מועמד, עובד. לכל אחד יש מסלול ניווט ומערכת מסכים משלו. תפקיד המשתמש מוטמע ב-JWT token לאחר התחברות. כאשר התפקיד משתנה (מועמד הופך לעובד), הניווט נבנה מחדש ללא הפעלה מחדש.
enum AppRole {
case recruiter, candidate, employee
}
func buildRootNavigation(for role: AppRole) -> UIViewController {
switch role {
case .recruiter:
return RecruiterTabBarController()
case .candidate:
return CandidateOnboardingFlow()
case .employee:
return EmployeePortalController()
}
}ללא הפרדת תפקידים ברורה, נוצר בלבול: מועמדים רואים ממשקי מגייסים, מתרחשות דליפות נתונים, תוך הפרת הנחיות הסקירה של App Store.
כיצד משפך Kanban מאיץ את הגיוס פי 3
משפך הגיוס הוא Kanban: עמודות חדש → סינון → ראיון → הצעה → נדחה. במובייל, העמודות נגללות אופקית, מועמדים מועברים באמצעות גרירה ושחרור. גישה זו מפחיתה את זמן עיבוד המועמדויות ב-30% בהשוואה לשיטות מבוססות דוא"ל. משפך Kanban מהיר פי 3 מדוא"ל בהמרה.
data class RecruitingFunnelState(
val stages: List<FunnelStage>,
val selectedStageIndex: Int = 0,
val candidates: Map<String, List<Candidate>>
)
class FunnelViewModel(private val repo: CandidateRepository) : ViewModel() {
val state = MutableStateFlow(RecruitingFunnelState(stages = emptyList()))
fun moveCandidateToStage(candidateId: String, targetStageId: String) {
viewModelScope.launch {
repo.updateCandidateStage(candidateId, targetStageId)
state.update { current ->
val updated = current.candidates.toMutableMap()
// перенос кандидата между списками
current.copy(candidates = updated)
}
}
}
}גרירה ושחרור מיושמת באמצעות enum AppRole { case recruiter, candidate, employee } func buildRootNavigation(for role: AppRole) -> UIViewController { switch role { case .recruiter: return RecruiterTabBarController() case .candidate: return CandidateOnboardingFlow() case .employee: return EmployeePortalController() } } עם data class RecruitingFunnelState( val stages: List<FunnelStage>, val selectedStageIndex: Int = 0, val candidates: Map<String, List<Candidate>> ) class FunnelViewModel(private val repo: CandidateRepository) : ViewModel() { val state = MutableStateFlow(RecruitingFunnelState(stages = emptyList())) fun moveCandidateToStage(candidateId: String, targetStageId: String) { viewModelScope.launch { repo.updateCandidateStage(candidateId, targetStageId) state.update { current -> val updated = current.candidates.toMutableMap() // перенос кандидата между списками current.copy(candidates = updated) } } } } מותאם אישית או הקשה להעברה דרך גיליון תחתון עם בחירת שלב.
תזמון ראיונות: אינטגרציה עם לוח שנה
ראיונות דורשים בחירת משבצת, הזמנת המראיין, שליחת קישור לפגישה ותזכורות push. אינטגרציה עם Google Calendar דרך API או CalDAV, ועם Microsoft דרך Graph API. השרת מאגד משבצות זמינות:
func fetchAvailableSlots(interviewerId: String, date: Date) async throws -> [TimeSlot] {
return try await api.getAvailableSlots(interviewerId: interviewerId, date: date)
}תזכורות push מתוזמנות בעת יצירת הראיון — התראה מתוזמנת דרך FCM עם ItemTouchHelper.
קליטה: סכמת שלבים דינמית
לאחר ההצעה, העובד החדש עובר רצף שלבים: מילוי נתונים, העלאת מסמכים, סקירת מדיניות, השלמת משימות ליום הראשון. הסכמה נשמרת בשרת כ-JSON, והלקוח מציג אותה דינמית:
data class OnboardingStep(
val id: String,
val type: StepType,
val title: String,
val isRequired: Boolean,
val completedAt: Long?
)
enum class StepType {
FORM,
DOCUMENT_UPLOAD,
QUIZ,
VIDEO,
TASK
}ההתקדמות מוצגת ברשימת סימון, כל שלב יכול להיות חובה. העלאת מסמכים משתמשת ב-multipart עם פונקציית התקדמות. בממוצע, הקליטה כוללת 5–8 שלבים ואורכת עד יומיים.
| שלב | סוג | חובה | פעולה |
|---|---|---|---|
| נתונים אישיים | FORM | כן | מילוי טופס |
| דרכון | DOCUMENT_UPLOAD | כן | העלאת סריקה |
| מדיניות חברה | QUIZ | כן | מעבר מבחן |
התראות Push בהקשר משאבי אנוש
| אירוע | נמען | עדיפות |
|---|---|---|
| מועמדות חדשה למשרה | מנהל משאבי אנוש | גבוהה |
| ראיון נקבע | מועמד + מראיין | גבוהה |
| תזכורת ראיון (15 דקות לפני) | כל המשתתפים | קריטית |
| הצעה נשלחה למועמד | מועמד | גבוהה |
| שלב קליטה דורש פעולה | עובד חדש | בינונית |
| תקופת ניסיון מסתיימת | מנהל משאבי אנוש | בינונית |
צ'אט ארגוני: WebSocket או אינטגרציה
ל-MVP, צ'אט פנימי דרך WebSocket. לחלופין, אינטגרציה עם Slack API או webhooks של Microsoft Teams. WebSocket מבטיח מסירה מיידית ועומס שרת נמוך יותר בהשוואה לבדיקות REST.
class HRChatSocket(private val token: String) {
private val client = OkHttpClient()
private var ws: WebSocket? = null
fun connect(roomId: String, onMessage: (ChatMessage) -> Unit) {
val request = Request.Builder()
.url("wss://api.yourhr.app/ws/chat/$roomId")
.header("Authorization", "Bearer $token")
.build()
ws = client.newWebSocket(request, object : WebSocketListener() {
override fun onMessage(webSocket: WebSocket, text: String) {
onMessage(json.decodeFromString(text))
}
})
}
} | מאפיין | WebSocket | בדיקות REST |
|---|---|---|
| זמן השהיה במסירה | 50–100 אלפיות שנייה | 2–10 שניות |
| עומס שרת | נמוך | גבוה |
| מורכבות יישום | בינונית | נמוכה |
אילו מדדים אפליקציית משאבי האנוש עוקבת אחריהם?
האפליקציה אוספת מדדים מרכזיים: מספר מועמדויות למשרה (ממוצע 120), זמן לאיוש (מופחת ב-35%), שיעור השלמת קליטה (עד 95%), מספר התראות push (עד 500 ליום עבור 10 מגייסים). הניתוחים מוצגים בלוח בקרה ועוזרים לייעל את תהליך הגיוס.
תהליך העבודה בפרויקט
- ניתוח: הגדרת תפקידים, תרחישים, אינטגרציות.
- אב-טיפוס: עיצוב UX/UI עם דפוסי מובייל.
- ארכיטקטורה: בחירת מחסנית (Swift/Kotlin/Flutter), הגדרת CI/CD, חתימת קוד.
- פיתוח: מסירת תכונות אינקרמנטלית עם הדגמות כל שבועיים.
- בדיקות: בדיקות יחידה, אינטגרציה, בדיקות UI, בדיקות עומס עבור push וצ'אט.
- פריסה: פרסום ב-App Store וב-Google Play, הגדרת TestFlight ו-Firebase App Distribution.
לוח זמנים ותוצרים
- MVP (משפך מועמדים, כרטיסים, קליטה בסיסית, התראות push) — 10–14 שבועות.
- פונקציונליות מלאה (מתזמן ראיונות, אינטגרציה עם לוח שנה, צ'אט, ניתוחים) — 20–28 שבועות.
מה כלול בעבודה:
- תיעוד (מפרט API, דיאגרמת ארכיטקטורה).
- גישה לחנות האפליקציות לפרסום ועדכונים.
- הכשרת צוות הלקוח בניהול.
- תמיכה טכנית למשך 3 חודשים לאחר השחרור.
הבטחות איכות
הניסיון שלנו: למעלה מ-10 פרויקטים ניידים בתחום משאבי האנוש, 5 שנים בשוק, מפתחים מוסמכים (Swift, Kotlin). אנו מבטיחים עמידה בלוחות זמנים ובהתאם להנחיות הסקירה של App Store. הזמינו פיתוח אפליקציית משאבי אנוש — קבלו ייעוץ והערכת פרויקט תוך יומיים. צרו קשר.







