Вместо агента: разработчик создал Slack-бота для поиска жилья в Сан-Франциско
Разработчик из Бостона Вик Паручури описал в своем блоге процесс поиска жилья в Сан-Франциско. Чтобы не тратить время на сортировку объявлений на различных сайтах недвижимости, программист создал Slack-бота, который следил за новыми объявлениями и проверял их на соответствие критериям поиска.
Разработчик Вик Паручури переехал из Бостона в Кремниевую долину весной 2016 года. «Моя девушка и я слышали все возможные истории ужасов о рынке недвижимости Сан-Франциско. То, что Google по запросу "Как найти жилье в Сан-Франциско" выдает такое множество страниц с советами, только подтверждает это», - пишет Паручури.
Хорошее жилье в Долине долго не пустует - обычно апартаменты достаются первому пришедшему с комплектом документов и предоплатой, обратил внимание разработчик. Сначала он начал поиск с изучения популярных сайтов с предложениями аренды: Padmapper, LiveLovely, Craigslist.
Однако все они не имели онлайн-ленты, в которой бы объявления появлялись по мере их добавления арендодателями, и не предлагали сортировки по необходимым критериям - например, транспортная доступность и район. Помимо этого, многие объявления изначально появлялись на Craigslist, после чего дублировались на других сайтах.
Разработчик решил автоматизировать процесс и составил требования к предполагаемому механизму поиска:
- получать уведомления в реальном времени как только объявление появляется на Craigslist;
- фильтровать объявления по районам;
- фильтровать объявления по транспортной доступности;
- сравнивать объявления;
- иметь возможность сразу связаться с арендодателем.
В результате Паручури приступил к разработке алгоритм для поиска, который будет:
- отслеживать новые публикации на Craigslist;
- проверять публикацию на соответствие необходимым критериям;
- отправлять сообщение в Slack со списком доступных апартаментов.
Сервис Craiglist не имеет собственного API, поэтому разработчик использовал скрипт, который отслеживал новый контент на страницах сервиса и формировал из него записи в таблицу: дата добавления, координаты местоположения, наличие изображения, название, стоимость и URL.
Затем разработанный Паручури скрипт проверял запись на соответствие критериям поиска. Например, разработчик со своей девушкой сформировали список районов, наиболее пригодных для жизни и отметили их на карте в сервисе BoundingBox. Таким образом они получили GPS-координаты, которые и сравнивали с GPS-коордианатами апартаментов на Craigslist.
Часть арендодателей не указывает точный адрес апартаментов, а использует название района. Для таких случаев разработчик также предусмотрел фильтрацию, составив список районов, подходящих для жизни.
Далее Паручури проверял запись на соответствие критерию транспортной доступности. По Google Maps он собрал координаты транспортных узлов Сан-Франциско и затем создал скрипт, который сравнивал расстояние между апартаментами и остановкой общественного транспорта.
Полученный результат отправлялся в виде сообщения через Slack-бота. Каждое сообщение содержало название места расположения апартаментов, стоимость аренды, расстояние до ближайшей остановки транспорта и название объявления со ссылкой.
По словам Паручури, благодаря боту ему удалось найти жилье намного быстрее, чем если бы он занимался сортировкой объявлений вручную. «В результате мы арендовали отличные апартаменты, стоимость которых была выше той, что мы планировали, однако ниже того, что предлагает рынок жилья в Сан-Франциско».
В своем блоге разработчик подробно описал процесс создания бота. Весь код Паручури опубликовал на Github.
Слишком высокая стоимость жилья в Сан-Франциско заставляет сотрудников, начинающих свою карьеру в компаниях Кремниевой долины, искать альтернативные варианты для аренды. Например, некоторые разработчики адаптируют грузовики и микроавтобусы для жизни на парковке рядом с офисом.