У меня есть проекты, на который я привлекаю инвестиции. Потому что эти инвестиции помогут проектам масштабироваться, привлечь больше юзеров, выполнять задачи большего масштаба и тд и тп - в общем все, что будет приносить этим проектам больше денег. Соответственно, инвесторы с этого получат хороший процент прибыли.

Я автоматизировал почти всю цепочку действий по фандрейзингу: сбор инвесторов из источников, отбор, отправку им сообщений через свою CRM, отслеживание ответов и вывод на звонок.

Чуть ниже описываю, как делал и какие цифры получились. Ну и где не получилось так, как мне бы хотелось.


Из чего складывается воронка

У меня пять ступеней, и на каждой стоит свой счётчик:
1.источники инвесторов
2.единая база + граф связей
3.скоринг и шорт-лист
4.отправка через CRM (лимиты, пауза, проверка доставки)
5.ответ → ссылка на звонок → звонок

На каждую ступень я ставлю счетчики. Просто иначе я не знаю, где теряю людей.

Откуда брать инвесторов

Первый источник у меня был свой. За несколько лет накопились таблицы Airtable с фондами, ангелами, экспертами и раундами. В свое время я много парсил в том числе из линкедин, раньше там было меньше мусора и данные собирались точно.

Второй источник это архив раундов: кто в какой проект заходил и с кем вместе. Фонды в архиве записаны текстом, поэтому я склеивал их с базой по нормализованному названию. По состоянию на сентябрь 2026 у меня получилось 49 056 совпадений с уже известными фондами и 1 761 новый фонд.

Третий источник это мои переписки в Telegram. По ним видно, с кем из мира фондов я уже знаком.

Почему я строил граф

Я отказался от того, чтобы делать просто списки. Список фондов отвечает на вопрос «кому писать». Мне важнее был вопрос через кого в этот фонд можно быть представленным.

Поэтому моя база стала графом. В нём 118 222 узла (фонды, люди, проекты, раунды) и 239 670 связей. Надёжными я считаю связи, подтверждённые раундом с датой, публичным анонсом или другим проверенным мной источником, - таких 60 388.

Стартовые точки графа это люди, с которыми я уже знаком. Кандидатов по совпадению имени было больше, но имена совпадают у разных людей, поэтому каждое такое совпадение в свое время я перепроверял вручную - подтвердилось 3 564.

Я беру фонды, где соинвесторов менее 100, так как иначе это не фонд, а сообщество инвесторов.

from collections import deque

HUB_DEG = 100  # фонд с сотней соинвесторов не даёт тёплого интро

def intro_paths(graph, warm_starts, target, max_hops=3):
    queue = deque([(s, [s]) for s in warm_starts])
    seen = set(warm_starts)
    while queue:
        node, path = queue.popleft()
        if node == target:
            yield path
            continue
        if len(path) > max_hops:
            continue
        for nxt in graph[node]:
            if nxt in seen:
                continue
            # хаб можно сделать целью, но идти через него нельзя
            if len(graph[nxt]) > HUB_DEG and nxt != target:
                continue
            seen.add(nxt)
            queue.append((nxt, path + [nxt]))

Константа HUB_DEG появилась у меня позже, когда я стал видеть в данных, что у фондов бывает более 1К соинвесторов. Если не ставить ограничения, то логика была бы просить, чтобы меня представил фонду каждый из этих 1К+ соинвесторов, а, как правило, большинство из них не имеют близкой связи с фондом, и не могут сделать теплое интро. Когда соинвесторов меньше, у них теснее связи друг с другом.

На самом деле, количество можно уменьшать и до 50, но я не стал сильнее сокращать воронку.


Как выбрать, кому писать

Мой выбор строится на основании скоринга, который считается запросом к базе (модель тут не нужна):

SELECT p.id, p.name, p.handle,
       ( 3 * (p.role LIKE '%partner%' OR p.role LIKE '%angel%')
       + 2 * (p.bio  LIKE '%pre-seed%' OR p.bio LIKE '%seed%')
       + 2 * (p.focus LIKE '%AI%' OR p.focus LIKE '%infra%')
       + 1 * (p.last_contact > date('now','-365 day'))
       ) AS fit
FROM people p
WHERE p.kind = 'investor'
  AND p.id NOT IN (SELECT person_id FROM pitched)
ORDER BY fit DESC
LIMIT 50;

Первая версия скоринга считала слова по всей карточке человека, результат давала нерелевантный, тк в карточке лежат и мои собственные сообщения, а в них есть «seed», «AI» и «invest». Получилось, что наверх поднимались не подходящие инвесторы, а те, кому я больше всего писал. Это неправильно, мне надо было сразу это учесть. Исправил, чтобы скоринг учитывал только профиль самого человека: роль, компанию, описание, фокус.


Как отправлять сообщения и не получить бан


Отправку делает моя CRM, которая знает только ограничения канала:

def send_pitch(person, text):
    if not budget.can_send(account):          # общий лимит на аккаунт в день
        return "LIMIT_REACHED"
    if already_pitched(person):               # журнал отправленных
        return "DUPLICATE"
    live = resolve_username(person.handle)
    if live.name_mismatch(person.name):       # хендл ведёт на другого человека
        return "IDENTITY_MISMATCH"
    result = send_with_jitter(text, pause=(40, 110))  # FloodWait → ждать и повторить
    log(person, "SENT" if result.message_id else "ATTEMPT")

Лимит у меня 5 холодных сообщений (то есть первых сообщений тем людям, с которыми у меня нет переписки) в день на аккаунт. У меня стоит проверка имени лида, тк иначе есть риск, что лиды получили бы письмо с чужим именем в первой строке.

Сколько ответили

У меня достаточно высокая конверсия: 12% ответов на холодный питч. Надо учитывать, что я много внимания уделял формулировкам текста, делал A/B тесты и уже знаю, как лучше привлечь внимание к своим сообщениям.

Какая база дала точные контакты

Самые хорошие результаты ожидаемо дает мой нетворк, те лиды, которых я сам копил в свою CRM почти 10 лет. По хендлу Telegram из моих собственных переписок - очень высокая точность.

С email из купленных и открытых датасетов всё намного хуже, много писем возвращаются с формулировкой “адресат не найден”. Да и к email-рассылке я сам отношусь плохо.
Но эти данные мне помогают устанавливать связи и предполагать, кто с кем знаком и кто к кому может в дальнейшем меня представить.

Я также различаю статусы при отправке сообщений, тк часто отправка прошла, а доставки не было.

ATTEMPT   → система попробовала отправить
SENT      → почтовый сервер принял
DELIVERED → за сутки не пришёл отказ (bounce)

Ответ ждём только от DELIVERED. Фоллоуап на SENT без DELIVERED не планируется.

Где автоматизация не пошла нормально

Я неправильно вел журнал отправленных. Теперь сделал так, чтобы волна записывалась в журнал сразу после отправки, а перед следующей отправкой каждая переписка перечитывалась.

У меня были наложения действий. То есть лиду писалось сообщение с просьбой посмотреть питч. И другим процессом питчился поверх - новый проект.

Неверно проставлялись статусы. Я писал об этом в предыдущей своей статье про CRM - тут тоже самое. Если лиду я когда-то писал - у него проставлялся статус NEW и этот статус сохранялся за ним, даже когда я возвращался к нему позже и у нас с ним уже была история диалога.

Конечно были лиды, которые меня сразу банили.
Но тем не менее

Итого

Если собрать всю систему в одну картинку:

  • База пополняется сама, каждый день. У меня есть агент, который держит нетворк в актуальном состоянии. Каждый день часть лидов, независимо от того, насколько давно я с ними знаком, получает автоматическое сообщение вида «чем я могу быть тебе сейчас полезен». Если лиду нужен человек, который есть у меня в базе - и оба согласны - агент делает между ними интро. У меня это называется matchmaking, что-то вроде клуба знакомств по интересам. В ответ я прошу человека, которого свёл, познакомить меня с тем, кто нужен мне или может быть мне полезен. Такие обратные интро приходят каждый день и расширяют базу без моего участия в переписке. Всего таким образом было создано 5 928 групп между людьми, которых я представил друг другу. Лиды сами потом взаимодействуют друг с другом. Кто-то более успешно, кто-то менее.

5928 интро
5928 интро
  • Публичные источники парсятся непрерывно. Отдельно у меня постоянно пополняются базы из открытых источников - Pitchbook, AngelList, Signal и похожих.

  • Фильтрация, скоринг и рассылка делаются автоматически. Лиды фильтруются и скорятся так, как описано выше. Рассылки уходят с учётом температуры общения, предмета разговора и того, чем мы можем быть друг другу полезны.

  • Звонки сами попадают в календарь. Если лид готов - звонок автоматически планируется и ставится мне в календарь.

  • Когда живой разговор состоялся, дальше идут автоматизированные фоллоуапы, отправка обещанных материалов, доотправка данных, которые нужны инвестору по проекту. Агент подключает меня только в двух случаях: когда ответа на вопрос нет в его базе, или - чаще - когда разговор доходит до конкретных денег.

Что я буду менять
Буду делать живой дашборд учета конверсий и буду масштабировать только те шаги, которые в моменте дают результат. То есть если мне на проекты дают деньги лиды с определенной конференции, значит я в момент, когда дашборд показывает мне эту конверсию, уменьшаю действия по питчингу других лидов и отправляю сообщения и питчи в первую очередь только лидам, с кем были касания именно на этой конференции.

Комментарии (0)