CH.05Как я переписывал матчинговый движок matchpro— Что я понял, три недели наблюдая за кликами рекрутеров.
← все заметки
#0142026-04-188 миндлинный текст

▸ в центре · кейс — № 014 · 18 апр '26 · 8 мин

Как я переписывал матчинговый движок matchpro

Что я понял, три недели наблюдая за кликами рекрутеров.


три года matchpro матчил кандидатов с вакансиями по-ленивому — tf-idf по заголовкам с щепоткой правил. было нормально. не отлично. рекрутеры продолжали присылать мне скриншоты очевидных матчей, которые движок не находил. этой весной я сел и переписал всё целиком.

«матчинг — это не поиск. поиск вознаграждает точность. матчинг вознаграждает интересную близость

  1. выкинуть ранкер — данные оставил, модель удалил. начал с пустого ipynb.
  2. эмбеддить всё — резюме + текст вакансии → небольшая мультиязычная модель, кэш в pg_vector.
  3. пере-ранжировать по сигналам — локация, сениорити, годы в стеке. скучные фичи всё ещё побеждают.
  4. тень-прогон 3 недели — a/b по кликам рекрутеров. смотрел на дашборды больше, чем на семью.

цифры через 11 недель: качество матча 41% → 78%, время до первого клика 9.2с → 3.1с, трудоустройств в неделю 12 → 28, p95 latency 640мс → 180мс.

полный разбор — в /work/matchpro.