While forming teams, we realized how tedious the entire process was. Depending on the hackathon, forming teams involves some combination of scrolling through an endless list of posts on a #team-forming slack channel, google sheet, or awkwardly being directed to some corner of the room to meet others. Not only does this waste precious time and is inefficient, many of the postings on the google sheet or slack channel look the same after scrolling through for some time.

FriendlyBot solves all these problems and provides a platform for limitless other opportunities through its highly advanced, custom-built-from-ground-up learning algorithms.

What it does

Through FriendlyBot, teams can seamlessly find individuals to recruit to their team based on the skills they need. For individuals looking for teams, FriendlyBot enables them to discover teams to join based on their skill-set and projects they are most likely to be interested in, determined through FriendlyBot's advanced algorithms.

How we built it

FriendlyBot's is a Facebook Messenger bot. While traditional messenger bots are built with some flavor of JavaScript, FriendlyBot is built using Ruby on Rails, with the server deployed to Heroku's cloud platform.

FriendlyBot's NLU backend parses structured data from user queries by generating embedding representations of user queries using a siamese LSTM (deep recurrent neural networks). It is optimized for GPU computing, with computing costs lowered to the extent that it can in fact be run on a 14 year old's laptop.

Challenges we ran into

We ran into various challenges while building FriendlyBot. The first set of issues were setting up the webhooks to work with our local development environment. While we tried popular tunneling solution ngrok, it served to no avail, and we were resorted to keeping it deployed on the Heroku platform. In addition, the Facebook Graph API was challenging to use, particularly Facebook Auth.

Challenges while building the natural language understanding engine involved dealing with managing high-dimensional spaces and mapping out boundaries for clusters required for classification. Because of the length of the average human sentence, we had to account for exploding and disappearing gradients by using a special variation of a recurrent neural network that was a siamese LSTM first implemented by a MIT professor just a few months ago.

Accomplishments that we're proud of

  • Building a highly intelligent messenger bot
  • Building a messenger bot using Ruby
  • Building a custom natural language understanding engine developed from the ground up using the latest advancements in theoretical computer science

What we learned

  • How to build FB bots, especially with Ruby
  • Improved NLP understanding and experience

What's next for FriendlyBot

  • Generalizing it to make it able to answer any queries related to hackathons
  • Generalizing it to make it able to serve as an intelligent bot for any event
  • Be able to intelligently connect people at these events

Built With

Share this project: