To Create A Chatbot

Scott Morris
Voice Tech Podcast
Published in
6 min readMar 24, 2020

Chatbots are now a common feature in our every day lives.

They’re in most of our smartphones, they’re online as consumer assistantship, and even used in our own homes. But while they are useful, at times it can be hard to create conversation with them due to the simple fact that they are not human and won’t understand everything they hear or are told. Our goal was to create a chatbot that could have natural conversation but also create emotional connection with the user. Due to this, we had to come up with a specific topic our chatbot would talk about.

Our group set out to create a chatbot named SIA (Student Interview Assistant), designed to give our user interview tips. The interview process is something that many students will have to experience whether its for an on-campus job or trying to get an internship. Our chatbot helps to solve the problem of users not feeling prepared for the questions they may be asked and constructive advice on how they should answer and talk during an interview.

First off, who is our intended user?

We decided to make our chatbot specifically for students looking to find a job or internship because if our chatbot it is mainly for people who have either never been interviewed before or have little experience.

Chatbot Draft & Script

We started with a general flowchart of how our conversation with our users would flow.

Initial Flowchart

We planned to have our chatbot ask the user for a specific focus they wished to improve and receive advice on before the mock interview started. We would focus on common interview topics such as strengths & weaknesses, past experiences and skills, as well as just general advice. Our responses to the user were receptive and encouraging to make our user feel more encouraged and relaxed during the conversation because the idea of an interview may be nerve-racking for users.

Interview Request

After going through the user’s inputted field of focus, we would then ask the user if they were interested in conducting a mock interview. If accepted, we would then give more instructions for the user on how they should talk during the interview. By reminding the user that they should treat this as if it was a real interview, we aimed to make them more prepared. If the user says no, our chatbot would say “Unfortunately, the best way for me to give you feedback would be through conversation.” and then revert to a finish state saying “If you ever change your mind, feel free to visit me again!”.

Once the interview starts, the chatbot would ask one common interview question at a time:

  • What are your previous experiences?
  • Based on your resume I see you used to do “___”. How do you think that will help you excel at our company?
  • What skills would you add to our company?
  • What are your strengths/weaknesses?
  • Tell me about a personal challenge or one time you struggled?

After each response to a question, the chatbot would give advice on how the user could answer.

Chatbot Advice

To find out what questions and what advice would be most beneficial for our users, we did research to find interview resources such as mock practice scripts and articles on interviews questions.

Build better voice apps. Get more articles & interviews from voice technology experts at voicetechpodcast.com

Following the end of the interview, our chatbot also asks the user how they thought the interview went. Based off of whether the user’s input was positive, negative, or neutral, the chatbot gave out a different final response. These different finish states were implemented to create a sense of feedback from the user on how the interview our chatbot went.

Coding

We coded our chatbot using Python and used Heroku to host our app and connected it to Slack. Our chatbot works with “on_enter” and “respond_from” functions for each specified state. In the on_enter functions, the chatbot would respond to the user and upon user response, execute the respond_from function which led the next state.

At times we used tags to gauge our user’s feelings on a certain topic such as how they felt about the interview and used certain words meant going to a different state.

User Testing

Upon testing our chatbot with students the feedback we received helped us to narrow down on what needs to be improved to better achieve our user goal and create a better conversational user experience.

“I get that it has to be friendly but some comments just feel unnecessary and/or patronizing.” — Tester

In our earlier versions when our chatbot was responding to our user’s input such as what job they were applying for, it would say things like “Wow that sounds like an amazing opportunity!” that were meant to be encouraging after multiple positive affirmations became annoying. This made us go back to our script to make our chatbot’s responses more subtle and direct in guiding the conversation towards the interview. Our users also struggled with realizing they would have to send their whole message at once rather than sending responses through different lines of text as if it were a text conversation.

They did like the overall flow of the conversation and thought that our interview advice was helpful .

Script & Flowchart Revision

After receiving user feedback and reviewing multiple chatbot conversation iterations we decided to make more changes to the way our chatbot responded to the user and also guided the conversation. From our initial design planning, we had also hoped to store the user’s inputted name, company, and desired job so we could refer to them like natural conversation but we ran into challenges implementing it through code and Slack testing.

Revised FlowChart

We then it even further changed our chatbots responses for more natural conversation. Instead of focusing on encouraging the user, we focused more on solving the problem of helping our user prepare for an interview by making the conversation more streamlined.

Final Version & Conclusion

Our final version of SIA, is much more polished in its transition from introduction to interview.

Chatbot Conversation

Throughout the design process, I learned that when it comes to creating chatbot conversation, how it responds and talks can influence the user greatly. A challengenthat was also posed to us was waiting for SIA to respond. At times, it could taske up for a minute for it to respond back, making the user retype or type a new message which caused the chatbot to either go to the next state or revert back to a past one.

If you’d like to test SIA on Slack, click here!

Something just for you

--

--