How I Turned My Resume Into a Chatbot
It is clear that the bots have a moment. Even before the announcement of Facebook Bots for Messenger at the developer conference, there was already a flood of investment , controversy and criticism . So I wanted to learn how to create my own bot – and make it work!
On the one hand, chatbots are nothing new. They have been around since the 1960s and since the days of ELIZA . But suddenly, the tools for creating meaningful, personalized conversations were easy enough to deploy on a large scale. We have APIs, the ability to continually track and analyze messages for relevance, and huge messaging platforms to distribute – which people spend most of their time on these days.
To understand the world of bots, I decided to try my hand at creating it.
Introducing EstherBot: my resume as a bot
My goal was to create something simple, so I decided that I would go for a subject that I know very well – myself!
LinkedIn profiles have n’t changed much over the past decade. Sure, they are more attractive than resumes, but not much more interesting. Basically, it’s just a list of dates, titles, and buzzwords that’s perfect for 90% of the candidates weeding out. But if you find an interesting candidate, how do you know if she is looking for a job? How to determine if it fits the culture ? What if you want to see examples of their work?
I figured a bot might intervene at this stage of the hiring process because bots can easily answer repetitive questions (let’s face it: all recruiters basically ask the same questions). Bots can also provide more context for resume positions and give an idea of someone’s personality. There is a ton of information about yourself that you can use to unlock the best opportunities for you, such as your hobbies, values, location preferences, multimedia samples of your work, and more. A resume cannot contain it all, but a bot can . I was hoping that EstherBot would be able to showcase some of my unusual interests and discuss my personal values.
Looking for a non-technical solution
I’m not a developer and only know the basics of HTML, CSS and JS, so I needed to find a simple method to create a bot. Developers like Howdy’s BotKit , Microsoft Bot Framework , Kik Bot Kit , Gupshup , Api.ai, and Wit.ai offer more features but were mostly not involved in the launch due to their technical requirements.
I was able to get going pretty quickly with several other messaging services, including TextIt (whose visual editor I loved), Sonar , and decided to cuddle . There are several alternatives: Telegram is the simplest platform to create a bot today, and with Bot Platform 2.0 you can set up a basic bot in minutes thanks to BotFather .
I used Smooch because they make it easy to send images, GIFs, and action buttons across multiple platforms. In addition, they had the key integrations I needed – Twilio (for SMS / MMS), Messenger, Telegram, and Slack (for tracking conversations). I didn’t want any other integrations with them, but I liked that I could change my mind and add other platforms in the future if I wanted to.
Under the hood, Smooch connects to a variety of other channels: Android, iOS, Facebook, Shopify, Telegram, WordPress, and the web. You can accept payments using Stripe, or choose from a variety of other services to optimize your customer support experience by including Front, Help Scout, HipChat, or Zendesk. Since all conversations are automatically synced and routed through Slack, I can connect and say hello in real time as my bot presents.
How to make your own bot
I made a few changes to the Smooch sample code and simplified the instructions . Even if you are not a programmer, don’t be intimidated by the fact that you will be using GitHub . Here’s how to get started:
- Create a free Smooch account. Use the dropdown menu on the left and create a new app. Determine which messaging channel to use and connect it. In my case, I was using Twilio.
- Login to GitHub and go toEstherBot . Click Fork (it just means you copy the files to your account so you can edit the files as needed).
Building this version will give you a web chat application. With a few integrations inside Smooch (like Twilio), your bot can talk to other platforms as well, including SMS, Facebook, and Telegram. We then set up our new Smooch app (these instructions are adapted from Smooch ‘s own example ):
- Once you’ve created a new Smooch app, go to the settings tab and write down your app token. Also, generate a new private key and write down the key ID and secret.
- From your forked EstherBot on GitHub, deploy your application to Heroku. (You will find the deploy button in the ReadMe .) This is a service for hosting applications, so registering if you don’t already have an account is free. You need to specify the application token, key ID, and secret in the application configuration parameters
SMOOCH_APP_TOKEN
,SMOOCH_KEY_ID
andSMOOCH_SECRET
. - Your application should now be running on Heroku, but you’re not done yet. Take note of the URL that your Heroku app is running at, for example:
https://foo-bar-4242.herokuapp.com
. You will need to specify this in theSERVICE_URL
configuration variable of your Heroku application. You can do this in your Heroku dashboard under Settings > Configuration Variables . (If you don’t see a variable there, add “Service_URL” as the key and your app url as the value). - While still on Heroku, remember to go to the Deploy section and connect to your GitHub account. Then turn on “Auto Deploy” on the master branch (this means that every time you make a change to your bot script, it will automatically update and speak as intended in a matter of seconds).
- You should have everything ready. Open the Heroku app and start chatting with your new bot!
Teach your bot to speak
Now that you have a bot, you need to decide what it says. Here comes to help file script.json. This is the document you need to edit in order for your bot to speak.
Edit your GitHub document by clicking the pencil icon. The keywords are on the left, and the bot’s response is on the right. For example, if the user types “hello”, then the bot will say “Sweet, let’s do this …”
Keywords are not case sensitive for users. The only two keywords that you do not want to change are “CONNECT ME” and “DISCONNECT”. CONNECT ME disables automatic chat, so the bot will stop responding to keywords. DISCONNECT will turn the bot back on. In addition, the initial script begins with the words “So you want to know about Esther? … ”, but of course you want to change that. You can edit it in your script.js file.
Unsurprisingly, creating compelling conversations is really hard. Probably the hardest part of the whole process. The ability to add flair, intrigue and personality is a different skill set than building a bot. I started by displaying the conversation tree on paper, but you should use a more complex tool, perhaps something like MindMup if your interaction is more complex. And with the Bot UI Kit, I played around with what the end-user conversation would look like with images, GIFs, and buttons. (You can download my real Sketch file for free .)
If you’d like to customize your posts a bit with line breaks, images, and clickable buttons, check out my ReadMe on GitHub.
Voila! You have added another bot to the Internet.
Spoiler alert: my bot is killing him as a recruiter. He spoke to people from all industries and introduced me to people from Facebook, Microsoft and Google, as well as half a dozen smaller and more attractive teams. What do you think? Are bots and conversational interfaces the “most exciting” thing since the App Store revolution? Will the time come when we all have bots as intermediaries?