Искусственно-интеллектуальная сваха

Здесь в Кракове я вписался в новый проект и начал набирать людей в новую команду. Например, сейчас нужен Frontend Developer, расскажите знакомым. Как только опубликовал вакансию в X, сразу повалили боты. Больше сотник документов, резюме и сопроводительных писем люди прислали. Как водится, часть из них совсем никуда не годится и отправлена наобум и на авось. Так появилась идея написать штуку, которая могла бы резюме оценивать и ранжировать с учётом компанейских «красных флагов» и хотелов.

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

Я не программист, поэтому воспользовался cursor.com, эта штуковина умеет конвертировать желания продуктово-настроенного человека в код. Говоришь, мол, так и так, напиши, проверь, работает ли — и пишет, и проверяет. Один из новых, довольно популярных инструментов, ничего особенного. Через год все только в таких и будут программировать.

Набросал схему решения в голове:

  • Вытащить из PDF текст
    • Просто чтением текста из PDF, если не получается, то…
    • Попробовать разобрать с помощью pytesseract, банального OCR то есть. Если не получается, то…
    • Конвертировать в картинки и послать в мультимодальную модель Сomputer Vision.
  • Сопоставить с помощью «умной» нейронной сетки требования из моего объявления о работе в job_description.txt и получить:
    • Оценку совпадений: я чуть ниже опишу, как это оценивалось.
    • Краткий, с личными деталями ответ кандидату на всякий случай
    • Коротенькое объяснение, почему именно этот кандидат именно так «замэтчился»?
    • Ссылка на его вебсайт, если есть
  • Отдельный (не обязательный) запрос проверяет файлы на бонус-очки и «красные флаги»:
    • опечатки,
    • грамматические ошибки,
    • дырки в карьере
    • явные противоречия
  • Результаты двух оценок сливаются в экстазе: пропорция 80/20 по-умолчанию, но можно подкрутить и в другую сторону.
    • 80% финальной оценки — это конкретно сватовство: насколько резюме подходит вакансии
    • 20% — это личные ощущения, желания и персональные «красные флаги» стороны нанимающей. Там же, кстати, про diversity и inclusion написано.
  • Отдельная функция, насколько это возможно, бегает «посмотреть», что на сайте-портфолио. Если там ошибка (самое печальное), это не добавляет очков кандидату.
  • После этого стоит задача: сортировать по результатам и вывести всё со смешными эмоджиками и титулами вроде «Unicorn Candidate»
  • Написать для всех отзывы с учётом полученной оценки. Позвать кого-то на собеседования. Письма никто не отправляет, но, когда их нужно будет отправлять — тексты будут уже готовы.

На этом скрипт заканчивает свою работу и откланивается. Дальше решать придётся человеку.

Что там в кишках?

Далее, по порядку. Откуда взялась схема оценки и сватовства? Самая свежая, самая тормозная, самая умная нейронная сеть от OpenAI o1-preview помогла разработать структурированную схему. Как одна идей из улучшения — для каждого пункта делать отдельный запрос с помощью ультра-дешёвой и глупой модели вроде gpt-4o-mini, вполне возможно, что так результат окажется точнее. Он точно будет прозрачнее.

Схема выглядит приблизительно так, многое происходит «в уме»:

Резюме и описание вакансии подгоняются под единую понятийную систему, приводятся к общему знаменателю.

Искусственный интеллект рассчитывает параметры и выдаёт одну цифру от 0 до 100. Это базовый рейтинг: индикатор того, насколько близко подходит кандидат.

Сердце скрипта — интеграция с API мощной языкового модели Anthropic Claude. Кроме того, я только что добавил поддержку OpenAI. Модель использует передовые методы обработки естественного языка для глубокого анализа резюме и описания вакансии. Теперь Resume Job Matcher может:

  • Ускорить подбор персонала: Автоматизируя рутинные задачи, вы сможете сосредоточиться на стратегических решениях. Это 100% так, уже проверил на себе.
  • Улучшить качество найма: Отсев совсем «левых» кандидатов — снижает риски неправильного выбора.
  • Создать положительный имидж: Персонализированные ответы и профессиональный подход к каждому кандидату укрепят репутацию вашей компании. Эта часть отнимает куууучу времени при каждом найме.

Скачать, дополнить, улучшить скрипт — это здесь: Resume Job Matcher.

Нежданчик

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

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

Комментарии

 

Скелеты России

Музей в Стокгольме

Здесь в Стокгольме задумался, почему я больше не доначу ФБК?..

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

Это как раковому больному насморк лечить. Тоже надо, наверное, но я на химиотерапию всё потратил, сорри.

Пока идёт война, выборов не будет, и не будет никакой русской политики. Надо делать всё возможное для поражения путинской России в этой войне. Телемарафон ФБК — безвредная, но малополезная затея: в пользу бедных, не для улучшения России.

Признаюсь, то, как тусовка ФБК выбирает сраться друг с другом и с Ходорковскими комсомольцами из 90-ых вместо поддержки ВСУ, дополнительно отвращает. Склочность (?) и грёзы о будущих избирателях мешают. Не будет никаких избирателей… Помощь политзаключённым — да, важно, да, надо. Но недавнее видео ж не про них почему-то было.

И в этом плане я, пожалуй, поддерживаю @pepel_klaasa, которая прямо утверждает, что ФБК недооценивает глубину разверзнувшейся пропасти, в которую провалилась Россия после вторжения в Украину.

Если Россия проиграет, процесс восстановления займёт десятилетия. Если проиграет Украина, и века не хватит, чтобы Россия стала нормальной страной с выборами, правами и свободами. Кто эти люди, которые при самом лучшем раскладе в 2050 будут голосовать за вернувшихся из изгнания политиков, YouTube-скелетов из бурных 2010-х? Они ещё не родились, эти избиратели.

Фонд борьбы с коррупцией проиграл и растрачивает медиаресурс, часто воюя не в ту сторону. Возможно, эти талантливые, образованные и опытные люди могли бы организовать «Фонд помощи политзаключённым» или «Фонд помощи ВСУ» — оба названия выглядят логичнее и актуальнее сегодня, чем «ФБК», в брендинге я не силён.

Комментарии

 

Лёгкий видео-формат: разговор о переездах, детях, школах и обустройстве

Здесь в Познани я узнал, что вышел очередной болтологический видео-выпуск, в котором я поделился своим опытом жизни в разных странах. В частности — в Новой Зеландии и Польше. Больше двух лет уже живём в центральной Европе и накопились кой-какие наблюдения.

Мы с Димой из ReLife обсудили, как после 20 лет в Новой Зеландии я решил переехать в Европу: какие проблемы решил и какие возможности открыл для себя и своей семьи.

Формат лёгкий, ничего особенного нового в интервью вы не услышите, как мне кажется. Традиционно, одной из ключевых тем разговора стала предсказуемость жизни в Новой Зеландии и желание перемен — этого я никогда не скрывал. Несмотря на комфорт и стабильность, я ощущал потребность в новых впечатлениях и возможностях для роста: личностного и в плане бизнеса. Это привело нас сначала в Чили, а затем в Польшу. И там, и там пришлось столкнуться с новыми культурными и языковыми вызовами.

Как молодые (всё ещё!) родители, поговорили о влиянии переездов на детей. С одной стороны, частые перемены могут быть стрессовыми, но с другой — и за эту позицию я беру ответственность на себя — они открывают ребенку мир во всем его многообразии. Я поделился своими наблюдениями о том, как именно наш сын адаптируется к новым школам и друзьям, и как мы стараемся сделать этот процесс менее болезненным. Всегда есть плюсы, всегда есть минусы.

В заключение мы обсудили важность иммиграционного статуса и долгосрочных планов. Я подчеркнул необходимость иметь четкий путь к постоянному проживанию или гражданству в выбранной стране, чтобы обеспечить стабильность и безопасность для семьи. В эпоху «релоканства» (ненавижу этот новояз), это особенно важный момент, о котором может соберусь написать отдельный пост.

Несмотря на все трудности, я считаю, что опыт жизни в разных странах обогащает нас и открывает новые перспективы. Ну и как бы — нет больше ничего. Прожив в тихом и уютном местечке всю жизнь, не будет второго шанса переиграть и попробовать жить по-другому. Это мой двигатель, моё основное «зачем?»

Спасибо Дмитрию и ReLife за предоставленную возможность.

Двухчасовой разговор с Дмитрием из ReLife.

P.S.: Поделюсь небольшой радостью, мой телеграм-канал ИИзвестия про достижения ИИ дорос до 227 читателей — огромное всем спасибо!

Комментарии

 

Эффект бабочки-матрёшки: как зарабатывать в IT?

Антикварный магазин в Кракове

Здесь в Кракове, пару месяцев назад, если не ошибаюсь, я снова засветился в подкасте. На этот раз в выпуске «Мы обречены» с Андреем и Антоном. Болтали про альтернативные способы заработка в IT, помимо работы по найму и создания классических стартапов. Обсуждали консалтинг, преподавание и, конечно же, инди-хакинг — мою любимую тему.

Инди-хакинг — это про создание небольших, но прибыльных проектов, которые приносят пассивный доход и дают тебе свободу.

Звучит заманчиво, правда? Но как это работает на практике? Как раз это я и хочу рассказать сегодня подробнее.

Идея: дёшево, быстро, много

Главное в инди-хакинге — это скорость. Не нужно тратить месяцы на проработку идеи и создание идеальной архитектуры. Лучше быстро сделать MVP (минимально работающий продукт) и вбросить его на рынок.

Вот как это делаю я:

  • Ищу простые идеи, которые решают конкретные проблемы. Часто это проблемы, с которыми я сам сталкиваюсь в своей работе.
  • Не боюсь делать «говнокод». Главное, чтобы продукт работал и решал задачу.
    • Красота кода не важна, если его никто не видит.
    • Проще потом переписать, если проект выстрелит. А потом переписать ещё.
  • Делаю ставку на количество. Чем больше проектов запущу, тем выше шансы, что какой-то из них выстрелит.
    • Из 60-70 моих проектов «выжили» и приносят хоть какой-то доход только 5-6.
    • Но этого достаточно, чтобы обеспечить финансовую независимость.
    • Доход распределён приблизительно так (в год): $500000, $20000, $5000, $1000, $200 — буквально обратная геометрическая прогрессия.

Пассивный доход: миф или реальность?

Пассивный доход – это миф, не халява. Даже если ты создал продукт, который работает сам по себе, тебе всё равно нужно его поддерживать, обновлять, искать новых пользователей. Постоянно что-то отваливается. Всегда, каждый день, если не стараться держать своё душевное состояние в балансе, найдётся пожар для тушения.

Вот с какими сложностями я сталкиваюсь:

  • Платформы меняют правила игры. То, что работало вчера, может не работать сегодня.
    • Например, Google Chrome может изменить API, и твой плагин перестанет работать.
    • Или Apple App Store может ужесточить правила, и твоё приложение удалят.
  • Появляются конкуренты. Кто-то может сделать продукт лучше, чем твой.
    • Но если ты был первым, у тебя, конечно, всё равно есть небольшое преимущество. Его важно не проэтовать.
    • Ты уже занял нишу и получил первых пользователей. Это очень ценно, потому что мир технологий по-прежнему растёт.
  • Нужно постоянно искать новые идеи. Рынок не стоит на месте, нужно быть в тренде.

Инди-хакинг: образ жизни

Инди-хакинг – это не просто способ заработка, это образ жизни: свобода, независимость, возможность заниматься тем, что тебе нравится и исключать то, что не нравится. Очень подходит для метода ICE, кстати.

Вот что мне нравится в инди-хакинге:

  • Я сам себе хозяин. Я сам решаю, над чем работать, когда работать и сколько работать.
    • Не нужно отчитываться перед начальником и ходить в офис.
    • Я могу работать из любой точки мира.
    • Нужно отчитываться перед клиентами, конечно.
  • Я занимаюсь тем, что мне интересно. Я сам выбираю проекты, которые мне нравятся.
    • Не нужно делать то, что тебе не нравится.
    • Я могу реализовывать свои идеи. Разобраться, что именно хочется делать — это, пожалуй, самая большая проблема. Ощущение отсутствия фокуса или разбегающихся тараканов в голове — есть такой побочный эффект.
  • Я постоянно учусь новому. Инди-хакинг — это постоянное развитие.
    • Нужно быть в курсе новых технологий, новых трендов, новых возможностей.
    • Новый виток развития технологий, который мы переживаем сейчас — очень держит в тонусе и добавляет стресс от упущенных возможностей, не без этого.

Инди-хакинг: не для всех

Инди-хакинг — это не для всех. Это не волшебная красная таблетка, которая сделает тебя богатым и счастливым. Я, например, ничего толком не знаю: не могу назваться специалистом ни в одной из областей. Знаю, где найти ответы на вопросы и вижу множество параллелей в самых разных областях быта, науки и техники. Но я не складирую и оттого не обладаю никакими узко-специальными, знаниями. Генералист — так называется проклятье.

Вот кому не стоит заниматься инди-хакингом:

  • Тем, кто боится рисковать. В инди-хакинге нет гарантий успеха.
    • Ты можешь потратить много времени и сил, и ничего не заработать. Вообще ничего. Даже если измерял и прям шёл по стопам самых умных и удачливых.
    • Нужно быть готовым к неудачам. Динамика помогает в этом: к моменту, когда проект «флопнулся», шлёпнулся и разбился в лепёшку, я уже скорее всего занят чем-то новым.
  • Тем, кто не умеет работать самостоятельно. В инди-хакинге ты сам себе начальник.
    • Нужно уметь организовывать своё время, ставить задачи, мотивировать себя. Огромная работа идёт над содержанием кукушки в порядушке.
    • Нужно быть дисциплинированным и не забывать о глобальной цели: взбивать лапками сливки, пока хватает сил, чтобы получилось масло, на которое можно опереться и выпрыгнуть наконец-то из кувшина.
  • Тем, кто не любит учиться новому. Инди-хакинг — это постоянное развитие.
    • Нужно быть готовым к тому, что придётся постоянно осваивать новые технологии, новые инструменты, новые подходы.
    • Нужно быть любознательным.
    • Это очень ОК не знать, не понимать. Но очень не ОК не пытаться разобраться.

Инди-хакинг: стоит попробовать?

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

  • Начни с малого. Не нужно сразу пытаться создать «убийцу» OpenAI.
    • Посмотри на готовые решения, которые работают. Найди в них проблемы. Сделай версию попроще, которая решает конкретную проблему.
    • Сделай мини-продукт и выброси его на рынок.
  • Не бойся ошибаться. Ошибки – это естественная, если не основная, часть процесса.
    • Учись на своих ошибках и двигайся дальше.
    • Не сдавайся после первой неудачи.
    • Из ста проектов сработает один, и это прекрасно!
  • Будь настойчивым. Инди-хакинг — это марафон, а не спринт.
    • Не жди быстрых результатов. Радуйся, если получилось.
    • Продолжай учиться и пробовать, продолжай работать, и скорее всего что-то да получится. Гарантий нет никаких. И никогда не было.

Такова линия моих рассуждений. Разумеется, это не единственный вариант развития событий. Здесь можно посмотреть двухчасовой выпуск «Как ещё зарабатывать в IT», в котором ребята обсудили как минимум две другие стратегии.

Спасибо Андрею и Антону, и всем, кто причастен к проекту «Мы обречены», было интересно.

P.S.: Продолжаю обновлять телеграм-канал об развитии искусственного интеллекта и всего, что с ним связано: @aizvestia — присоединяйтесь, пока не поздно.

Комментарии

 

Деды сочетали

Поликлиника в Кракове.

Здесь в Кракове я ввязался в какой-то случайный спор о ценности брака и том, кто может называться семьёй, а кто нет? Например, живут люди вместе, детей нет, не расписались — это семья? Всё эти понятия — социальные конструкции и традиции, которые по всему миру свои. Из них произросли законы. Границы какие-то люди нарисовали карандашами на картах. Порой, дорогу перейди — и «нельзя» стало «можно». Всё зыбко.

Я за органику и аутентичность.

Сейчас мы живём в Польше, здесь традиционная семья, аборты запрещены (невзирая на то, что выиграла прогрессивная партия), всё серьёзно. При этом за несколько часов можно оказаться в Берлине, где совсем всё иначе. В Новой Зеландии было так: два года живёшь вместе, находишься в отношениях — всё, можно идти потом, если разошлись, в суд и оспаривать половину имущества. При этом разойтись просто: разошлись и разошлись, срабатывает сразу. Мы с женой поженились примерно через десять лет после начала отношений, наш самодельный ребёнок нам играл на свадьбе марш Мендельсона. Церемонию провели больше для формальности, чтобы меньше было вопросов у польской иммиграционной службы. И вопросов было меньше.

На свадьбе было прикольно всё, кроме официальной части. Тётка была бестолковая, говорила глупости, нагоняла ненужного пафоса. Ну, расписались и расписались. Я искренне верю, что официальная церемония с кольцами и представителем ЗАГСа — это мужланский пережиток прошлого, культурный балласт, если угодно. Когда-то давно старейшины деревни не хотели заморачиваться и придумали закрепить жён при мужьях, мужей при жёнах, чтобы упростить разборки с имуществом и наследством. А уж однополыми браками, простигосподи, вообще не было желания заниматься: слишкам сложна, влом. Проблемы меньшинства никогда большинство не интересовали. Это, конечно, отдельная история, но суть та же: мужланское, где-то белое, где-то не белое, подавляющее большинство решало, как ему удобнее. Я их понимаю, сам такой. Кому не нравится, им можно и вломить, и на костёр, всякие были варианты.

Сейчас, когда бог мёртв, мы его убили, закопали, выкопали, поизгалялись над трупом, потом объяснили всем, что это не всерьёз, мол, постмодернизм, мета и постирония, и вышло так, что бракосочетание — это неприятная формальность, которая натурально усложняет жизнь, потому что дедовская лень разбираться в чужом семейном соре, внезапно вынесенном из избы, перетекла в законы: брак добавляет концепцию «развода» и всего, что с ним связано. Жили люди и не знали, что сойтись можно после вечеринки или клик-клик в аппликации, ну, потому что «прикольно», а чо нет? А расходиться — эт только по согласию каких-то бабок, дедок и их органов (церковь, суд, это всё).

Без росписи в деревенской летописи живут люди, как могут, подстраиваются друг под друга, радуются, мучаются. Живут — и ладно! Разошлись — ну бывает. Однако, после добавления строчки в каком-то замшелом реестре по закону нельзя просто разойтись. В Новой Зеландии, например, будет дано два года для «separation»: время на передумать, пожить раздельно. И лишь потом можно подать на развод официально. Потом суд какой-то с хуя-то появляется в ваших отношениях. И теперь уже суд — считай, совет старейшин v2.0 — решает одобрить развод или нет. (⊙_⊙’)

Вечеринка для друзей и родственников — нивапрос. Расписываться каждый раз, как в последний — мутота. Никого оно не держит, на самом деле. Как и прежде, половина браков распадается через год. Потому что сложно. Потому что люди сложные. Все. Надо себе и другим сочувствовать и сопереживать: всем и так не легко, нужно ли делать тяжелее?

Я так вижу.

Комментарии