Подсказки к ответам прямо во время собеседования
Interview Agent слушает звонок, распознаёт вопрос интервьюера и через пару секунд показывает тезисы ответа. Тезисы строятся из вашего резюме, вакансии и заметок о компании.
Главное окно Транскрипт обеих сторон и подсказки ко всем вопросам сессии.
Оверлей Последняя подсказка поверх звонка. На Windows и macOS не попадает в демонстрацию экрана.
Как это работает
Во время звонка ничего не нужно нажимать.
Слушает обе стороны
Звук из динамиков приложение считает речью интервьюера, микрофон — вашей. Тишину и шум отсекает детектор речи прямо на компьютере, в сеть уходят только фразы.
Распознаёт речь
Через провайдера, которого вы выбрали. Термины из резюме и вакансии передаются ему заранее, поэтому Kafka и gRPC не превращаются в случайные слова.
Понимает, что вопрос закончен
Обычно после 650 мс тишины. Если фраза кончилась вопросительным знаком, ответ начинает генерироваться сразу и обновится, если интервьюер продолжит говорить.
Показывает ответ
Первая строка — фраза, с которой можно начать. Ниже 2–5 тезисов из вашего опыта. Работодателей и цифр, которых нет в материалах, модель не придумывает.
Шесть форматов ответа
Обычно формат выбирает модель. Переключить его можно на ходу: CtrlAltK.
Задачу с кодом или схему пересказывать не нужно: CtrlAltS отправит снимок экрана в модель с компьютерным зрением.
Расскажите о проекте, которым гордитесь.
Миграция биллинга без простоя: 14 месяцев, команда из пяти человек.
- Перевели 2 млн подписок из монолита в отдельный сервис.
- Двойная запись и ночная сверка, расхождения находили до жалоб клиентов.
- Ни одного инцидента с деньгами, релизы стали ежедневными.
Почему вы уходите с текущего места?
Хочу работать с большей нагрузкой, чем есть в текущем продукте.
- Платформу стабилизировали, дальше в основном поддержка.
- У вас масштаб, с которым я ещё не работал.
- С командой расстаюсь в хороших отношениях.
Расскажите о конфликте в команде.
Ситуация. Фронтенд и бэкенд по-разному понимали контракт API, релиз сорвался второй раз подряд.
Задача. Вернуть сроки и не искать виноватых.
Действия. Схема OpenAPI стала единственным источником контракта, клиент генерируется, схема проверяется в CI.
Результат. Шесть следующих релизов вышли в срок.
PostgreSQL или MongoDB для каталога товаров?
Я бы выбрал PostgreSQL и хранил разнородные атрибуты в JSONB.
- Postgres: транзакции между остатками и ценами, зрелые индексы, одна база вместо двух.
- JSONB покрывает характеристики товаров без отдельной схемы на каждую категорию.
- Минус: на сотнях миллионов SKU понадобится шардирование, в Mongo оно встроено.
Найдите в массиве два числа с суммой target.
Подход: один проход со словарём «значение → индекс».
def two_sum(nums, target):
seen = {}
for i, x in enumerate(nums):
if target - x in seen:
return seen[target - x], i
seen[x] = i
return None
Сложность: O(n) по времени и памяти.
Спроектируйте ленту новостей.
Сначала уточню требования.
- Сколько активных пользователей в день и подписок у среднего?
- Лента хронологическая или ранжированная?
- Какая задержка допустима: секунды или минуты?
Подготовка
Материалы. Резюме, вакансия, сайт компании, заметки, истории в формате STAR. Файлом (PDF, DOCX, Markdown и другие), текстом или ссылкой. Вакансию с hh.ru достаточно вставить ссылкой.
Бриф. Модель сжимает всё в одну страницу: опыт, истории, чем вы закрываете требования вакансии и где пробелы. Бриф можно поправить вручную, он уходит в каждый запрос во время звонка.
Репетиция. Приложение готовит 12–16 вероятных вопросов с черновиками ответов и проводит тренировочное интервью голосом, с оценкой каждого ответа.
Разбор после звонка
Сессия сохраняется целиком: транскрипт, вопросы и подсказки. После звонка приложение оценит интервью, покажет сильные и слабые места, предложит более сильные ответы и составит письмо интервьюеру.
Отчёты выгружаются в Markdown, по всем сессиям работает поиск.
Горячие клавиши
Работают, даже когда активно окно звонка. Любое сочетание меняется в настройках.
- Ответить на последний вопрос
- CtrlAltEnter
- Снимок экрана в модель
- CtrlAltS
- Показать или скрыть оверлей
- CtrlAltO
- Пропускать клики сквозь оверлей
- CtrlAltX
- Остановить ответ
- CtrlAlt⌫
- Следующий формат ответа
- CtrlAltK
Данные и приватность
У Interview Agent нет своего сервера и аккаунтов, разработчику приложение ничего не отправляет. Это можно проверить в исходном коде.
Остаётся на компьютере
- Собеседования и материалы
- Резюме, брифы, транскрипты и отчёты лежат в локальной базе SQLite.
- Ключи API
- В системном хранилище: Keychain на macOS, Credential Manager на Windows, Secret Service на Linux.
- Звук без речи
- Детектор речи работает локально, тишина и фоновый шум никуда не отправляются.
Отправляется выбранным провайдерам
- Фразы из звонка
- Провайдеру распознавания речи: OpenRouter, Deepgram или OpenAI-совместимому серверу.
- Текст вопроса и бриф
- Провайдеру языковой модели, чтобы получить подсказку.
- Снимок экрана
- Только по горячей клавише и только модели с компьютерным зрением, не больше 2000 px по длинной стороне.
Чтобы и текст не покидал компьютер, подключите языковую модель через Ollama или LM Studio, а распознавание речи через локальный Whisper.
Открытый исходный код
Interview Agent распространяется под лицензией MIT. Код можно читать, собирать самостоятельно, менять и использовать в своих проектах.
Ядро на Rust, интерфейс на React, оболочка на Tauri 2. Все пять промптов можно переопределить в настройках без пересборки.
# нужны Rust stable, Node.js 22 и pnpm
$ git clone https://gitlab.com/homycoder/interview-agent.git
$ cd interview-agent/app
$ pnpm install
$ pnpm tauri build
Установщики появятся в target/release/bundle. Для разработки: pnpm tauri dev.
- crates/ia-audio
- Захват системного звука и микрофона, детектор речи
- crates/ia-stt
- Распознавание речи: OpenRouter, Deepgram, OpenAI-совместимые API
- crates/ia-llm
- Клиент OpenAI-совместимых моделей со стримингом и запасными моделями
- crates/ia-engine
- Живая сессия, тренировка, диктовка, экспорт
- crates/ia-context
- Импорт файлов, вакансий и сайтов компаний
- crates/ia-core
- Модели данных, промпты, определение конца реплики
- crates/ia-storage
- SQLite и ключи в системном хранилище
- app
- Интерфейс на React и оболочка Tauri
Скачать
Версия 0.1.0. Для Linux есть готовые пакеты, для Windows и macOS приложение пока нужно собрать из исходников.
| Система | Звук собеседника | Оверлей в демонстрации экрана | Установка |
|---|---|---|---|
| Linux x86_64, PulseAudio или PipeWire | Через монитор PulseAudio или PipeWire | Виден, не показывайте этот экран | |
| Windows 10 и 11, x64 | Захватывается без настройки | Скрыт | Собрать из исходников |
| macOS 13 и новее | Нужен BlackHole или Loopback | Скрыт | Собрать из исходников |
Что понадобится. Ключ API. Одного ключа OpenRouter хватает и на языковые модели, и на распознавание речи. Обычное собеседование стоит несколько центов, стоимость каждого ответа видна в приложении. Подойдут и другие провайдеры: OpenAI, Groq, Deepgram, а также локальные модели через Ollama и LM Studio. Все версии и контрольные суммы в релизах на GitLab.
Вопросы
Видит ли интервьюер оверлей?
На Windows и macOS оверлей исключён из демонстрации экрана и записи, его не захватывают Zoom, Meet и Teams. На Linux такой возможности нет, поэтому не показывайте экран, на котором открыт оверлей.
С какими программами для звонков работает?
С любыми. Приложение записывает системный звук, а не подключается к конкретной программе, поэтому Zoom, Google Meet, Teams, Телемост и звонки в браузере работают одинаково.
Может ли модель приписать мне чужой опыт?
Подсказки строятся по резюме, вакансии и брифу. В промпте модели прямо запрещено добавлять работодателей и цифры, которых нет в материалах. Промпт открыт, его можно прочитать и изменить в настройках.
Можно проходить собеседование на английском, а читать подсказки на русском?
Да. Язык собеседования и язык подсказок задаются отдельно для каждого интервью. Поддерживаются английский, русский, немецкий, испанский, французский, украинский, португальский, польский, турецкий и китайский.
Можно ли использовать код в своём проекте?
Да. Лицензия MIT разрешает использование, изменение и распространение кода, в том числе в коммерческих проектах, при сохранении уведомления об авторских правах.