Клиент и контекст
Компания из США разрабатывала HR information system (HRIS), чтобы централизовать данные о кандидатах, вакансиях и откликах, и использовать LLM для поддержки оценки кандидатов. Их данные частично находились в legacy Ruby system, а частично — в загружаемых резюме и документах, обрабатываемых Python/OCR pipeline.
Я присоединился как кросс-функциональный software engineer, чтобы помочь связать эти части и сделать LLM workflows надежными и пригодными для использования в production.
Проблемы
- Legacy data, заблокированные в Ruby system и недоступные в удобном виде для нового HRIS.
- Python-based resume/OCR/LLM pipeline, которому требовались более качественная обработка ошибок и устойчивость.
- Необходимость per-job configuration LLM-запросов (разные роли требуют разных prompts и rate limits).
- Отсутствие структурированного feedback loop для улучшения оценки кандидатов со временем.
- Требования по GDPR compliance, обработке данных и документации.
- HRIS и LLM services должны были надежно работать в staging и production AWS environments.
Что я сделал
1. Импорт данных из legacy Ruby system
- Создал Laravel command для импорта данных о кандидатах, вакансиях и откликах из legacy Ruby system, содержащей полный набор данных, в новый HRIS.
- Обеспечил, чтобы модель данных в Laravel поддерживала будущие возможности, такие как аналитика и отчетность.
2. Усиление надежности OCR и LLM pipeline
- Исправил и улучшил Python-логику обработки резюме, включая:
- Более надежную обработку ошибок.
- Fallback на другие OCR engines при сбое одного из них.
- Улучшенные rate limiting и load balancing для LLM/API calls.
- Снизил количество сценариев отказа и сделал систему более предсказуемой под нагрузкой.
3. Настраиваемая LLM attestation для каждой вакансии
- Добавил опции конфигурации, чтобы команда HR могла управлять параметрами LLM request per job:
- Разные prompts для разных job families.
- Настраиваемые пороги и критерии скоринга.
- Обеспечил более контекстно-зависимую оценку вместо универсального prompt для всех случаев.
4. Feedback loop для оценки кандидатов
- Реализовал feedback mechanism, чтобы пользователи могли отмечать LLM-оценки как положительные или отрицательные.
- Feedback сохранялся и становился доступным для:
- Улучшения prompts и конфигурации.
- Понимания, где выводы LLM требовали человеческой корректировки.
5. Отчетность через Slack и поддержка окружений
- Реализовал интеграцию Slack bot, чтобы отправлять ежедневные отчеты пользователям tenant, включая:
- Сводки по новым кандидатам и откликам.
- Статус processing jobs и любые проблемы.
- Участвовал в управлении AWS staging и production environment, помогая:
- Диагностировать и устранять инфраструктурные проблемы.
- Поддерживать окружения согласованными и документированными.
Результаты
- HRIS получил надежный data import pipeline из legacy Ruby system.
- OCR + LLM обработка резюме стала более устойчивой и операционно безопасной.
- Рекрутеры и hiring managers смогли использовать job-specific LLM assessments с понятными feedback loops.
- Отчетность в Slack улучшила видимость того, что делает система и где требуется внимание.
- Платформа приблизилась к production-ready, интеллектуальному HRIS, а не экспериментальному прототипу.
Технологии и обязанности
- Роль: Кросс-функциональный software engineer для HRIS на базе LLM
- Технологии: Laravel, Ruby, PostgreSQL, Python, OCR engines, LLM APIs, Slack API, AWS (staging & production)
- Область работ: Импорт данных, усиление надежности pipeline, настраиваемые LLM flows, feedback mechanisms, Slack reporting и поддержка окружений
Если вы разрабатываете HRIS или аналогичную систему и хотите использовать LLM контролируемо и в production-ready формате, я могу помочь спроектировать и реализовать необходимые интеграции и меры защиты.
Назад ко всем кейсам