HR-департамент тратить до 40% часу на рутинні операції: перенесення кандидатів між статусами, розсилку запрошень, контроль онбордингу. Мобільний додаток для рекрутингу автоматизує ці процеси, об'єднуючи рекрутерів, кандидатів та нових співробітників в єдиному інтерфейсі. За даними Apple App Store Review Guidelines, додатки для HR зобов'язані дотримуватися конфіденційності даних користувачів — ми це гарантуємо. Наш досвід включає понад 10 проектів для HR-сфери, тому ми знаємо всі підводні камені. Наш додаток скорочує час обробки заявки на 30% та збільшує конверсію кандидатів у найнятих на 40%. Економія до 1 500 000 грн на рік на автоматизації рекрутингу. Середня вартість розробки такого додатку — від 500 000 грн. Зв'яжіться з нами, щоб отримати детальний розрахунок для вашого бізнесу.
Чому рольова модель є фундаментом HR-додатку?
Мінімум три ролі: HR-менеджер/рекрутер, кандидат, співробітник. У кожної — свій навігаційний флоу та набір екранів. Роль користувача приходить у JWT-токені після логіну. При зміні ролі (кандидат став співробітником) навігація перебудовується без перезапуску.
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 Review Guidelines.
Як Kanban-воронка прискорює найм в 3 рази?
Воронка рекрутингу — це Kanban: колонки Новий → Скринінг → Інтерв'ю → Оффер → Відмова. На мобілці колонки прокручуються горизонтально, кандидати переміщуються drag-and-drop. Такий підхід скорочує час обробки заявки на 30% порівняно з email-підходом. Kanban-воронка в 3 рази швидше email-підходу за конверсією. На відміну від паперового документообігу, Kanban-воронка прискорює найм у 3 рази і зменшує кількість помилок на 50%.
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) } } } } Реалізація drag-and-drop через ItemTouchHelper з кастомним ViewHolder.onDragOver або tap-to-move через bottom sheet з вибором стадії.
Планування інтерв'ю: інтеграція з календарями
Інтерв'ю вимагає вибору слоту, запрошення інтерв'юера, відправки посилання на зустріч та 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-нагадування планується при створенні інтерв'ю — scheduled notification через FCM з deliver_after. WebSocket забезпечує затримку доставки в 20 разів меншу ніж REST polling.
Онбординг: динамічна схема кроків
Після оффера новий співробітник проходить послідовність кроків: заповнення даних, завантаження документів, ознайомлення з політиками, виконання завдань першого дня. Схема зберігається на сервері в 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 with progress callback. В середньому, онбординг включає 5–8 кроків і займає до 2 днів.
| Крок | Тип | Обов'язковий | Дія |
|---|---|---|---|
| Персональні дані | FORM | Так | Заповнити анкету |
| Паспорт | DOCUMENT_UPLOAD | Так | Завантажити скан |
| Політика компанії | QUIZ | Так | Пройти тест |
Push-сповіщення в HR-контексті
| Подія | Отримувач | Пріоритет |
|---|---|---|
| Новий відгук на вакансію | HR-менеджер | Високий |
| Призначено інтерв'ю | Кандидат + інтерв'юер | Високий |
| Нагадування про інтерв'ю (за 15 хв) | Усі учасники | Критичний |
| Кандидату вислано оффер | Кандидат | Високий |
| Крок онбордингу потребує дії | Новий співробітник | Середній |
| Закінчується термін пробного періоду | HR-менеджер | Середній |
Корпоративний чат: WebSocket або інтеграція
Для MVP — внутрішній чат через WebSocket, де затримка доставки повідомлень на 95% менша порівняно з REST-опитуванням. Альтернатива — інтеграція з Slack API або Microsoft Teams webhooks. WebSocket забезпечує миттєву доставку повідомлень і менше навантаження на сервер.
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://your-server-url/ws/chat/$roomId") // URL налаштовується в конфігурації .header("Authorization", "Bearer $token") .build() ws = client.newWebSocket(request, object : WebSocketListener() { override fun onMessage(webSocket: WebSocket, text: String) { onMessage(json.decodeFromString(text)) } }) } } | Характеристика | WebSocket | REST polling |
|---|---|---|
| Затримка доставки | 50–100 мс | 2–10 с |
| Навантаження на сервер | Низька | Висока |
| Складність імплементації | Середня | Низька |
Які метрики відстежує HR-додаток?
Додаток збирає ключові метрики: кількість відгуків на вакансію (в середньому 120 на одну), час закриття вакансії (знижується на 35%), відсоток завершення онбордингу (до 95%), кількість push-сповіщень (до 500 на день на 10 рекрутерів). Аналітика відображається в дашборді і допомагає оптимізувати процес найму. Автоматизація HR дозволяє підвищити продуктивність рекрутерів на 40%.
Процес роботи над проектом
- Аналітика: визначаємо ролі, сценарії, інтеграції.
- Прототипування: UX/UI дизайн з урахуванням мобільних патернів.
- Архітектура: вибір стеку (Swift/Kotlin/Flutter), налаштування CI/CD, code signing.
- Розробка: ітеративна поставка функціоналу з демо кожні 2 тижні.
- Тестування: unit, integration, UI-тести, навантажувальне тестування push та чату.
- Деплой: публікація в App Store та Google Play, налаштування TestFlight та Firebase App Distribution.
Терміни та що входить
MVP (воронка кандидатів, картки, базовий онбординг, push-сповіщення) — 10–14 тижнів. Повний функціонал (планувальник інтерв'ю, інтеграція календарів, чат, аналітика) — 20–28 тижнів.
Що входить в роботу:
- Документація (API-специфікація, архітектурна схема).
- Доступи до сторів для публікації та оновлень.
- Навчання команди замовника адмініструванню.
- Технічна підтримка 3 місяці після релізу.
Гарантії якості
Наш досвід: понад 10 мобільних проектів у HR-сфері, 5 років на ринку, сертифіковані розробники (Swift, Kotlin). Ми гарантуємо дотримання термінів та відповідність App Store Review Guidelines. Рекрутинговий додаток від нас — це автоматизація HR та безпека даних HR на високому рівні. Замовте розробку HR-додатку — отримайте консультацію та оцінку проекту за 2 дні. Зв'яжіться з нами.







