Образование и карьера

Архитектура данных раздела «Образование и карьера»
Раздел реализован как строго типизированное хранилище профессиональных атрибутов профиля. В отличие от общих соцсетей, где поля «образование» и «работа» являются текстовыми строками произвольного формата, здесь каждый элемент имеет фиксированную схему: учебное заведение (справочник вузов/колледжей, обновляемый ежегодно, версия 2026), факультет/специальность (иерархический справочник, интегрированный с государственным классификатором), год начала/окончания (целые числа, валидация на диапазон 1960–2035), форма обучения (перечисляемый тип: очная, заочная, дистанционная, вечерняя).
Спецификация полей карьерного трека
Для раздела «карьера» применяется мультиселект с привязкой к отраслевым таксономиям (ОКВЭД-2, версия 2026 с учётом новых цифровых секторов). Ключевые параметры: организация (привязка к ИНН/ОГРН через API ФНС, ручной ввод запрещён — исключение составляют самозанятые и фрилансеры, для них доступно текстовое поле с ограничением 120 символов), должность (выбор из пресетов «Junior Developer», «Middle QA», «Senior System Architect» и т.д. с возможностью кастомного дополнения, затем проходящего модерацию), период занятости (формат: месяц + год, гранулярность — до одного месяца, минимальный период — 1 месяц).
Критерии фильтрации и ранжирования
В отличие от аналогов (например, LinkedIn), где поиск по навыкам осуществляется по ключевым словам, здесь внедрена векторная индексация компетенций. Каждый навык из профиля преобразуется в вектор (128-мерное эмбеддинговое пространство) с помощью модели FastText, обученной на корпусе технических вакансий. Это позволяет агрегировать близкие термины («Java» и «JVM») и отображать результаты с метрикой косинусного расстояния > 0,85. Фильтры: по году последнего опыта (слайдер, шаг 1 год), по уровню должности (Junior / Middle / Senior / Lead — бинарная классификация на основе нормативов грейдов), по индустрии (фасетный фильтр, до 3 одновременных значений).
Материалы и качество данных
Источник данных — исключительно верифицированные записи. При импорте резюме в PDF/Word применяется собственная OCR-библиотека с точностью распознавания 99,2% (по тесту на 5000 образцов). Отличия от аналогов (HH.ru, SuperJob) — отсутствие автоматического заполнения по умолчанию; пользователь вручную подтверждает каждый фрагмент. Проверка подлинности: для первой записи о последнем месте работы — запрос в систему кадрового учета (через оператора ЭДО) с вероятностью фрода < 0,3%.
Сравнение с альтернативными реализациями
- Текстовые профили (Facebook, VK): нет таксономий, данные неструктурированы, поиск по словам — точность < 40% при поиске «системный аналитик» (выдаёт «аналитик данных», «бизнес-аналитик» без дополнительного веса). В данной реализации — точность 94% за счёт маппинга словаря компетенций.
- Профильные платформы (Behance, Dprofile): ориентированы на портфолио, блок образования — опциональный, без нормализации названий вузов. Здесь — обязательный справочник, не допускающий дублей («МГУ» и «Московский государственный университет» — один ID).
- Профессиональные сети (LinkedIn): закрытая база наименований должностей, подписка на API для фильтрации. На платформе — открытая модель: любой навык можно добавить, но он проходит стемминг и нормализацию (например, «Machine Learning» и «ML engineer» — один класс).
Стандарты и жизненный цикл данных
Каждая запись о карьере содержит таймстемп создания и журнал изменений (версионирование, максимум 10 версий), что отличается от аналогов, где правки хранятся только в логах. Формат хранения — PostgreSQL с JSONB-полями для гибких метаданных (сертификаты, публикации, проекты). Кэширование — Redis TTL 24 часа для страниц поиска. Защита от устаревания: автоматическое уведомление о предложении обновить профиль, если с последнего изменения прошло > 6 месяцев — в ответ на это создаётся черновик с пометкой «потенциально устаревшие данные» (отображается в результатах поиска серым цветом).
- Всегда присутствует идентификатор записи (UUID v4), что позволяет избежать коллизий при параллельном обновлении.
- Для каждой точки карьерного пути — обязательное поле «тип занятости»: полный день, частичная, проектная, стажировка.
- Невозможно сохранить две записи с пересекающимися датами в одном профиле — блокировка на уровне триггера БД.
- При удалении записи о работе или образовании из профиля она архивируется в отдельной таблице (hard delete запрещён) — период хранения архива 3 года.
Добавлено: 08.05.2026
