SQLLab
Все статьи

Метрики технического скрининга: как измерить эффективность

Как измерить эффективность SQL-скрининга кандидатов: ключевые метрики, benchmarks и способы улучшения воронки найма.

9 марта 2026 г.·4 мин чтения·

Большинство HR-команд оценивают кандидатов на скрининге, но не оценивают сам процесс скрининга. Без метрик невозможно понять: хорошо ли работает наш тест? Правильно ли мы установили порог прохождения? Не теряем ли мы сильных кандидатов?

Основные метрики SQL-скрининга

1. Completion Rate (Процент завершения)

Сколько кандидатов, получивших тест, действительно его прошли?

Completion Rate = (кандидаты, сдавшие тест / кандидаты, получившие приглашение) × 100%

Benchmark: 50–70% — нормально, меньше 40% — тест слишком длинный или сложный, либо процесс отправки неудобный.

Что делать при низком CR: сократить тест, упростить первые задачи, добавить тренировочное задание.

2. Pass Rate (Процент прохождения)

Сколько кандидатов, завершивших тест, набрали проходной балл?

Pass Rate = (кандидаты с баллом ≥ порога / всего сдавших) × 100%

Benchmark: 30–50% — нормально. Ниже 20% — либо задачи слишком сложные, либо вы привлекаете нерелевантных кандидатов. Выше 70% — задачи слишком лёгкие, тест не фильтрует.

3. Time-to-Screen

Среднее время от отправки теста до получения результата.

Benchmark: 3–5 дней при дедлайне 5 рабочих дней. Если большинство сдаёт в последний момент — дедлайн слишком длинный или кандидаты не чувствуют срочности.

4. Predictive Validity

Коррелирует ли балл на скрининге с качеством работы после найма?

Это самая важная метрика, но требует данных после найма. Через 6–12 месяцев сравните:

  • Балл на скрининге
  • Оценку на испытательном сроке
  • Производительность за первый год

Если корреляции нет — тест измеряет не то, что важно в работе.

5. Interview-to-Hire Rate

Сколько кандидатов, прошедших скрининг и приглашённых на интервью, получили оффер?

Interview-to-Hire = (офферы / интервью) × 100%

Benchmark: 20–40%. Если ниже — скрининг пропускает слабых кандидатов. Если выше — возможно, порог скрининга слишком высокий и вы отсеиваете хороших.

Как построить дашборд метрик скрининга в SQL

Если вы храните данные о скрининге в базе данных, можно построить автоматический отчёт:

-- Таблицы: screening_invitations(id, candidate_id, sent_at, test_id)
--          screening_results(id, invitation_id, completed_at, score, max_score)
--          interview_outcomes(candidate_id, status, offer_extended)

WITH screening_stats AS (
    SELECT
        DATE_TRUNC('month', si.sent_at)                   AS month,
        COUNT(DISTINCT si.id)                             AS invitations,
        COUNT(DISTINCT sr.id)                             AS completions,
        COUNT(DISTINCT CASE WHEN sr.score::FLOAT / sr.max_score >= 0.7
                            THEN sr.id END)               AS passed
    FROM screening_invitations si
    LEFT JOIN screening_results sr ON sr.invitation_id = si.id
    GROUP BY 1
)
SELECT
    month,
    invitations,
    completions,
    passed,
    ROUND(100.0 * completions / invitations, 1)  AS completion_rate,
    ROUND(100.0 * passed / NULLIF(completions, 0), 1) AS pass_rate
FROM screening_stats
ORDER BY month;

Анализ качества заданий

Используйте Item Analysis для оценки каждой задачи в тесте:

Difficulty Index (индекс сложности):

P = (число верных ответов / всего ответов) × 100%
  • P < 20% — задача слишком сложная
  • P > 80% — задача слишком лёгкая
  • P = 40–60% — оптимально для дифференциации

Discrimination Index (дискриминативность):

D = P_top - P_bottom

где P_top — процент верных ответов среди топ-27% по общему баллу, P_bottom — среди нижних 27%.

D > 0.3 — задача хорошо дифференцирует кандидатов.

-- Анализ сложности задач
WITH task_stats AS (
    SELECT
        task_id,
        COUNT(*)                                       AS total_attempts,
        SUM(CASE WHEN is_correct THEN 1 END)           AS correct_attempts
    FROM task_responses tr
    JOIN screening_results sr ON sr.id = tr.result_id
    WHERE sr.completed_at >= CURRENT_DATE - 90
    GROUP BY task_id
)
SELECT
    task_id,
    total_attempts,
    correct_attempts,
    ROUND(100.0 * correct_attempts / total_attempts, 1) AS difficulty_pct,
    CASE
        WHEN 100.0 * correct_attempts / total_attempts < 20 THEN 'Слишком сложная'
        WHEN 100.0 * correct_attempts / total_attempts > 80 THEN 'Слишком лёгкая'
        ELSE 'Оптимально'
    END AS assessment
FROM task_stats
ORDER BY difficulty_pct;

Частые ошибки при анализе метрик

Ошибка 1: Смотреть только на Pass Rate. Высокий Pass Rate может означать, что тест слишком лёгкий, а не что кандидаты хорошие.

Ошибка 2: Не связывать результаты скрининга с результатами работы. Без этой связи нельзя понять, предсказывает ли тест успех.

Ошибка 3: Менять тест без измерений до/после. Любое изменение — это эксперимент. Зафиксируйте базовые метрики, введите изменение, измерьте результат.

Ошибка 4: Игнорировать completion rate. Если кандидаты не завершают тест, вы теряете кандидатов ещё до оценки.

Чеклист оптимизации скрининга

  • Задокументирован проходной балл и обоснование порога
  • Completion Rate измеряется ежемесячно
  • Pass Rate в диапазоне 30–50%
  • Каждые 6 месяцев проводится Item Analysis
  • Есть данные о корреляции балла с результатами найма
  • Обратная связь кандидатам об уровне сложности

Хотите дать кандидатам качественную практику перед скринингом? SQLlab.ru — это платформа с сотнями задач и аналитикой прогресса.

Похожие статьи

Попробуй на практике

Тренажёр с реальными задачами — бесплатно и без регистрации

Открыть тренажёр →