Scurtu Ioan -Adrian UNIVERSITY POLITEHNICA OF BUCHAREST [618326]
1 | P a g e
PROJECT COORDINATOR:
Conf. Dr. Maria -Iuliana DASCĂLU
STUDENT: [anonimizat] “POLITEHNICA” OF BUCHAREST
FACULTY OF ENGINEERING IN FOREIGN LANGUAGES
COMPUTERS AND INFORMATION TECHNOLOGY
DIPLOMA PROJECT
Bucharest
2018
2 | P a g e
UNIVERSITY “POLITEHNICA” OF BUCHAREST
FACULTY OF ENGINEERING
IN FOR EIGN LANGUAGES
COMPUTERS AND INFORMATION TECHNOLOGY
Interviews Sync Solution
Project coordinator Student: [anonimizat] -Iuliana
Dascalu Scurtu Ioan -Adrian
Bucharest
2018
3 | P a g e
Academic Honesty Statement
I, Scurtu Ioan -Adrian, hereby declare that the work with the title ―Interviews Sync
Solution‖, to be openly defended in front of the diploma theses examination commission at the
Faculty of Engineering in Foreign Languages, University "Politehnica" of Bucharest, as parti al
requirement for obtaining the title of Engineer is the result of my own work, based on my
research.
The thesis, simulations, experiments and measurements that are presented are made
entirely by me under the guidance of the scientific adviser, without t he implication of persons
that are not cited by name and contribution in the Acknowledgements part.
The thesis has never been presented to a higher education institution or research board in
the country or abroad.
All the information used, including the Internet, is obtained from sources that were cited
and indicated in the notes and in the bibliography, according to ethical standards. I understand
that plagiarism is an offense and is punishable under law.
The results from the simulations, experiments an d measurements are genuine.
I understand that the falsification of data and results constitutes fraud and is punished according
to regulations.
Scurtu Ioan -Adrian 02.07.2018
4 | P a g e
Table of Contents
1. Introduction ………………………….. ………………………….. ………………………….. ………………………….. ……………………. 5
1.1. What is a chatbot?. ………………………….. ………………………….. ………………………….. ………………………….. ………. 5
1.2.Domains influenced by chatbots. ………………………….. ………………………….. ………………………….. ………………… 5
1.3. Objectives of the paper. ………………………….. ………………………….. ………………………….. ………………………….. .. 7
1.4. Benefits of using chatbots in HR . ………………………….. ………………………….. ………………………….. ………………. 9
2. State of the Art ………………………….. ………………………….. ………………………….. ………………………….. ………………. 11
2.1. Chatbots History ………………………….. ………………………….. ………………………….. ………………………….. …………… 12
2.2. Similar applications ………………………….. ………………………….. ………………………….. ………………………….. ………. 19
3. Research methodology ………………………….. ………………………….. ………………………….. ………………………….. ……. 27
3.1. Statistics ………………………….. ………………………….. ………………………….. ………………………….. ………………………. 32
3.2. Requirements ………………………….. ………………………….. ………………………….. ………………………….. ……………….. 19
4. Interviews Sync Solution ………………………….. ………………………….. ………………………….. ………………………….. … 34
4.1. Problem statement ………………………….. ………………………….. ………………………….. ………………………….. …….. 34
4.2. Business modeling ………………………….. ………………………….. ………………………….. ………………………….. …….. 35
4.3. The flow of the application ………………………….. ………………………….. ………………………….. ……………………… 60
4.4. Software U se-case Description ………………………….. ………………………….. ………………………….. ………………… 38
4.5. Architecture ………………………….. ………………………….. ………………………….. ………………………….. ……………… 56
4.6. System Functionalities ………………………….. ………………………….. ………………………….. ………………………….. .. 58
4.7. Technologies used ………………………….. ………………………….. ………………………….. ………………………….. …….. 59
4.8. The database ………………………….. ………………………….. ………………………….. ………………………….. …………….. 61
4.9. The chatbot ………………………….. ………………………….. ………………………….. ………………………….. ………………. 64
4.10. The administration center ………………………….. ………………………….. ………………………….. ……………………… 70
5. The matching algorithm ………………………….. ………………………….. ………………………….. ………………………….. …. 71
6. Conclusions and future work ………………………….. ………………………….. ………………………….. ………………………. 75
7. References ………………………….. ………………………….. ………………………….. ………………………….. …………………….. 78
5 | P a g e
1. Introduction
1.1. What is a c hatbot?
You have most probably interacted with a bot without even realizing it. And you might have
even heard the term "chatbot" a couple of times without knowing what it actually refers to. But
what is a chatbot and how does it work ?
Most importantly, chatbot s are robot chat s that imitate a human conversation either by voice
commands or text chats, or even both. A conversation with a chatbot is basically one that is
carried by a human on one side and on the other side, a robot that i s trained to provide answers
Newly emerging technologies such as machine learning or artificial intelligence used for such
talking robots have been very influential across a wide array of industries, being able to answer
FAQ‘s from the users or doing va rious jobs, such as telling the value of companies on the stock
market , making flight reservations, or buying goods . [1]
1.2. Domains influenced by chatbots
Chatbots can be used in many different ways, which is the reason why it‘s difficult to define
exactly wh at they are. It is actually possible to come up with a chatbot use case for every single
business or industry, in the same way that every business or industry can use a website or app. [2]
These are just a few of the few domains that currently benefit from using a chatbot
Education – the leading example for higher education chatbots is AdmitHub, which
showcases how bots can be used to convey information in a way students want to
consume it. It helps new Georgia State University students navigate the often co nfusing
road of transitioning to college ;
Banking – Wells Fargo is testing a chatbot on Facebook Messenger, piloting the virtual
assistant with several hundred employees, and plans to extend testing to a few thousand
customers later this spring. Customers can ask where the nearest ATM is, and how much
money is in their account.
6 | P a g e
In october 2016, Bank of Americ a introduced its chatbot, Erica , which allows customers
to communicate via text or voice message, with the ultimate goal of providing banking
and fina ncial advice.
Insurance – With about 70% of customers buying insurance on their phone these days,
there is great demand for quick service through a chatbot. Instead of filling out countless
forms to purchase insurance, Lemonade uses a new technology to get the information it
needs from customers via phone or text conversations, meaning that a person can set up
almost everything they need for a new insurance policy s imply by talking with a chatbot.
Retail – clothing store H&M uses its chatbot on Kik as a per sonal stylist by showing
customers different outfits from the store and letting them choose their favorite pieces.
Taco Bell has Taco Bot, which has just one goal: to provide customers a quick and easy
way to eat tacos and have fun.
The bot is programmed t o recommend menu items and answer questions, but also take
orders directly through the chatbot, complete with add -ons for even the most complicated
orders.
Travel – Instead of plugging in dates and combing through pages of flights and hotels,
users can sim ply ask the Kayak chatbot to book a flight on certain dates and even provide
details down to the desired airline and time of day. Like other chatbots, Kayak
remembers users' preferences. It can also connect their search history with their online
account to create a seamless travel planning experience no matter where it happens.
The goal of the chatbot is to put a travel agent in every users' pocket and make the
planning process much easier.
Healthcare – Chatbots are peaking at the right time in this industr y, especially as
telemedicine is also gaining momentum and busy patients demand new ways to
communicate with doctors and stay ahead of managing their own health. Healthcare costs
are also increasing around the world, and using chatbots helps to eliminate m any of those
costs while providing an improved customer experience.
7 | P a g e
For example, Facebook chatbot Joy monitors and track your mental health. Joy is meant
to be more like a friend sending daiy check -ins, asking how you feel and what you did
that day. Joy th en uses your response to interpret your mood and respond appropriately.
Figure 1.1: Joy
1.3. Objectives of the paper
Chatbots are a revolution when it comes to customer experience and businesses continue
to find new ways to use them . From answering questions, to solving customer issues to product
recommendations, chatbots can easily perform tasks of various types .
Moreover , chatbots operate using predefined rules so that they are able to come up with
responses to common ly asked quest ions or programs that use deep learning and artificial
intelligence to easily adjust themselves to the way the user acts. Even though there are still a lot
of companies that are yet to embrace chatbots as an option or maybe still they haven‘t even heard
of them actually , there are also many that have already started to see the advantages of this new
technology .
8 | P a g e
Nowadays, mess aging applications have surpassed social media networks and people are
keen on having a conversation with a chatbot . Moreover , there a re even social media platforms
that are beneficial for businesses on their own and started to invest in chatbots. Facebook has on
its own roughly 33,000 chatbots running on their messenger app lication . [3]
This graph shows that the 4 main Messaging app lications (represented on the graph with
red) overtook in the year of 2016 the 4 Social Networks (represented on the graph with blue) in
terms of monthly active users, which is rapidly growing.
Figure 1.2: Messaging apps surpassed s ocial networks
To add up , chatbot start -ups are blowing up and offer licenses to their technology to larger
brands, which facilitates the process of building a chatbot. Clients have proven to be willing to
use chatbots, and the technology is there to make the most out of capacity that chatbots have and
forever improve how companies interact with their clients . Chatbot technology is evolving at a
rapid pace , and it could be used to a huge array of fields and still provide good results .[4]
9 | P a g e
Satya Nadella, th e current CEO of Microsoft, had this to say about chatbots at the annual World
Partner Conference in Toronto : "pretty much everyone today who's building applications,
whether they be desktop apps, or mobile apps, or websites, will build bots as the new
interface,".[ 5]
The main objective of the paper is to provide a safe, reliable and comfortable way for
people that are looking for a job, in the early stages of their application, helping them find a
position that matches their qualifications, skills and exp erience , and providing answers to any
questions that the candidate may have about the recommended job . This will also help the
Human Resources Members of the company , taking away a lot of the grunt work and lightening
up their work, since they will no long er lose precious time by having to look over applications
from people that do not meet the requirements for the job they applied . Given the need to keep
up with the constant changes and developments in technology, the choice of a chatbot integration
is one which will certainly help a business that is actively hiring.
In the Human Resources field, studies have shown that chatbots were received with enthusiasm
by candidates, who proved to be extremely receptive to interacting with one.
1.4. Benefits of using cha tbots in HR
Available 24/7
It is known how people are constantly being kept on hold, waiting for operators to connect them
to a customer care executive , this way losing a lot of time . The waiting period lasts for averagely
7 minutes until an employee is finally able to take their call . With chatbots, the disappointing
periods of standing in a queue, waiting for the next operative to become available could be left
behind. They could be the answer to live chat and other forms of slower contact methods such a s
emails and phone calls.
10 | P a g e
A recruitment chatbot has the potential to get to scale quickly
The recruitment chatbot might become widely used faster than we imagine .
The AI and natural language processing needed for a recruitment chatbot relate to the questions a
job seeker might be tepted to ask during the recruitment process .
Handling Capacity
We, humans are only able to carry out a single conversation with one person at a time, but
chatbots can manage hundreds of conversations with people from all aro und the world at the
same time . They can provide immediate answers to user requests 24/7 .
A chatbot can help recruiters save a lot of time
A chatbot used to perform recruiting tasks would drastically benefit a company not only
regarding the time it takes to find a person to fill a vacant position but also regarding the
resources spent on achieving this.
The percentage of people that apply to a job, even though they lack the required qualifications,
experience or skills ranges from 50 to 70%.
Cost Effecti ve
The picture below showcases the savings that a chatbot could bring to a company if they would
be used in fields such as sales, customer care or financial services
11 | P a g e
Figure 1.3: Potential savings
Chatbots may be able to hand le this issue, since one chatbot is can carry conversations with
hundreds of clients simultaneously . Therefore , it would greatly reduce the costs and create huge
profit and improve the way the company is seen in the eyes of its customers .[6]
2. State of the Art
Today is the era of intelligence in machines. With the advances in Art ificial Intelligence,
machines have started to impersonate different human traits today. Artifici al intelligence
conversational entities, also called chatb ots, are an excellent exam ple o f such m achines. Chatbots
are computer programs capable to carry out near -natural conversa tion with people. Chatbots are
currently gaining a lot of popularity especially in business sector as they have the potential to
automate customer service and re duce human efforts. For a chatbo t to perfectly emulate a human
dialogue, it must analyze t he input given by a user correc tly and formulate a releva nt and
appropriate response.
12 | P a g e
2.1. Chatbots History
The Turing Test
1950 : Alan Turing , the pioneering British sci entist, writes ―Computing Machinery and
Intelligence‖, formulating the Turing Test. The Turing Test sits as a possible test of machine
intelligence. If a system can exhibit conversational behaviour that is indistinguishable from that
of a human during a co nversation, that system could be considered intelligent. As the field of AI
has grown, the test has become less meaningful because it is not well defined (the person giving
the questions could be a computer scientist which would likely know which questions to ask, or a
random member of the general public which would not know of such things), and the test is
highly gameable (people can be fooled by systems that simply retrieve sentences they heard
before, and make no claim of being intelligent). [7]
ELIZA
1966: The work of Alan Turing inspired Joseph Weizenbaum , a German computer scientist and
professor at MIT to develop the program ELIZA, considered to be one of the first chat terbots.
ELIZA achieved the illusion of intelligence by recognizing key words and phrases from user
input and responding accordingly, using pre -programmed responses (scripts), but it had no built
in framework for contextualizing events . One of these scripts, DOCTOR, enabled ELIZA to
simulate a Rogerian psychotherapist (a kind of psychoanalysis of the 1960‘s) and used rules,
dictated in the script to respond to the user. [8]
13 | P a g e
Figure 2.1: ELIZA
PARRY
1972 : Psychiatrist Kenneth Colby , who was then at Stanford, develops the chatbot PARRY, also
known as ―ELIZA with attitude‖. While ELIZA played the role of a Rogerian psychiatrist ,
PARRY imitated the behaviour of a patient with paranoid schizophrenia , based on beliefs,
concepts and conceptuali zations . A group of 33 psychiatrists were unable to determine which
conversations involved PARRY and which conversations involved a human participant , being
able to guess correctly only 48% of the time . [8]
PARRY and ELIZA met at the ICCC 1972 and talked t o each other using ARPANET. This is a
part of their dialogue:
14 | P a g e
Figure 2.2: PARRY
ALICE (Artificial Linguistic Internet Computer Entity )
1995 : The year in which ALICE was created by doctor Richard Wallace. ALICE is a chatbot that
is able to imitate a human conversation by using AIML( Artificial Intelligence Markup
Language ), one of the best programs of this kind. This allows the chatbot to provide responses
that are more human -like and refined . It fully benefits from using the pattern mat ching rules that
were first seen in developing ELIZA, moreover applying some heuristical pattern matching rules
to the users‘s provided message. However it didn‘t manage to pass the Turing test since user can
identify its patterns even after short conversations. [9]
15 | P a g e
Figure 2.3: ALICE
JABBERWACKY
1997 : Jabberwacky was released and made a vailable world -wide throughout the internet. Though
it was originally developed by Rollo Carpenter in 1982, the emergence of the internet provided
the thousands of online human interact ions necessary for developing Jabberwacky‘s resources.
Jabberwacky won the Loebner Prize in 2005. Its main characteristic feature is that it took a
different approach to other chatbots in that period, relied on static databases for retrieving
responses to user inputs . It used Machine Learning to learn with every interaction with its
visitors, collecting the inputs and storing them in a database.
IBM WATSON
2006 : IBM developed Watson, named after the company‘s first CEO, Thomas J. Watson . The
primary objective being to beat human contestants on the show Jeopardy! Watson is essentially a
question answering (QA) computing system designed to apply advanced natural language
proce ssing, information retrieval, knowledge representation, automated reasoning, and machine
learning technologies to the field of o pen domain question answering. [10]
16 | P a g e
VIRTUAL PERSONAL ASSISTANTS
2010 -2018 : Ever since the beginning of year 2010, we have been w itnesses the rise of virtual
personal assistants , and from those, there are four major players competing for supremacy in the
market : Alexa , Siri, Google Assistant and Cortana . All of them can get you results with no more
than a voice command. They use spe ech recognition and natural language processing and
connect to web services to perform user commands and answer questions .
Alexa , first launched in 2014 along with the Amazon Echo smart speaker. Alexa can
provide results for web searches, order products from Amazon, and act as a hub for
compatible IoT devices all via voice commands. Amazon recently made Alexa's API
available to developers, allowing for integration in non-Amazon devices. It is a prime
example of machine learning in action and is one of the most successful applications of
consumer -based use of the new advances in artificial intelligence. Systems like Alexa are
an early sign of a massive shift in how we interact with machines.[ 11]
Siri is Apple's virtual personal assistant, available on iOS devices, the Apple Watch, and
the Apple TV. When activated, Siri can resp ond to natural language requests to help
Apple product owners find information, complete simple tasks, and get
recommendations. Siri was introduced in 2011, and since that time, Apple has expanded
Siri's capabilities quite a bit. On the iPhone and Apple Wa tch, Siri can be used for a long
list of tasks , such as making phone calls, sending messages, identifying songs,
downloading apps, changing device settings, searching the web, finding movie and
restaurant reviews, making dinner reservations, creating reminders and calendar even ts,
calculating tips, and more. [12]
Cortana is a voice -enabled virtual as sistant developed by Microsoft to help Windows 10
users initiate requests, complete tasks and anticipate future needs by surfacing relevant
data in a personal context. Since Cortana‘s release on Windows 10 in January 2015, the
technology has evolved to support Android and iOS dev ices, Xbox, the Edge browser,
Windows Mixed Reality headsets and third -party devices such as thermostats and smart
speakers. According to Microsoft, Cortana is currently used by more than 148 mil lion
people. [13]
17 | P a g e
Google Assistant is a voice -activated virt ual assistant, first introduced by Google at the
2016 I/O conference in California. Much like Amazon's Alexa, Apple's Siri, or
Microsoft's Cortana, the Google Assistant provides contextual information and performs
actions such as booking a restaurant reservation or sending a message on behalf of the
user. Smartphone users can also type requests to Google Assistant if they don't want to
use voice input. [15]
A small recap:
Figure 2.4 : a) Recap history of chatbots
18 | P a g e
Figure 2.5: b) Recap history of chatbots
LEYA – Libra Internet Bank Chatbot
Figure 2.6: LEYA
In Romania, chatbots are not as widely used by businesses as in other countries. The
chatbot LEYA, launched by Libra Internet Bank, is one of the few existing on the Romanian
market. It is the first one in the country that is dedicated to the selling of banking products. It was
well received by their customers, having over 10.000 interactions in the first four months since it
was launched.
19 | P a g e
Libra Internet Bank is the first bank in Romania that offers individuals the possibility to
open a new bank account or to obtain a loan or a credit card by using a chatbot. The clients can
sign the documents needed for obtaining a loan by using an electronic signature, offered free of
charge by the company, without having to lose time by going to the counter. [15]
2.2. Similar applications
Companies have only recently started to use chatbots wit hin the field of Human
Resources for better management of the personnel, preferring them in relation with the clients, to
offer support or to gain more public exposure.
Usually, t he tasks that a chatbot can perform in this field are:
answer frequently aske d questions on company‘s policy
answer common employee questions about things such as vacation days, payroll
inquiries, health benefits
annual reviews or self -assessment
training employees
on-boarding
recruitment
Some of the most notable chatbots used in r ecruiting are: AIRA, Stanley, S tella and Mya. In
Romania, companies are still reluctant to introduce them into this field , the only company that
invested in one so far being Carrefour.
2.2.1. AIRA
Grabjobs, company located in South East Asia came out with a Job Interview ChatBot
they called AIRA (Artificial Intelligence Recruitment Assistant), a chatbot that was developed
for businesses that are looking to reduce the time spent on recruiting , while also offering better
active engagement for the individuals that are seeking a job. It uses chat to automate the process
20 | P a g e
before the actual interview with a recruitment member. The discussion with the chatbot, in which
the bot starts asking basic interview questions starts on Facebook Messenger after t he person
decided to apply for a job.
Figure 2.7: AIRA
It is great both for the candidates, which can now express themselves more freely, and the
employers which can extract other meaningful information from the discussion with the bot,
without relying only on what their CV has to offer. HR members also have a chance to sort the
candidates and keep a record on them by using their answers at the interview questions.
21 | P a g e
Figure 2.8: AIRA Chat
How it works:
Firstly, HR members define the questions that they want the chatbot to ask. They can also
select which kind of input they expect from the candidate, the options varying from text to
documents or audio records. After doing that, when they post the vacancy on their career portal
they also attach the chatbot to it.
In the next stage, when a person enters the career portal of the company and decides to
apply for a job , the chatbot automatically starts the interview. The system calculates a weight
from the answers it receives and the candidates are sorted by the weight they recei ved.
22 | P a g e
Here is an example of a simple question that the chatbot may ask:
Chabot : How much experience have you gained in Software Development ?
O1: 5 years or more (weight: 3 0 points)
O2: Between 2 and 4 years (weight: 15 points)
O3: 2 years or less (weight: 5 points)
O4: I do not have any experience in this field (weight : not qualified )
If the answer that the candidate provide s is option O 4, the recruitment process ends at
that stage, since he is not qualified.
The bot is extremely useful for the HR departmen t, since it takes out the most tedious and
repetitive stage of the recruitment process, while also being able to interview more candidates at
a time, when humans could only focus on one task. Of course, it is also more comfortable for the
candidate, since he will not have to wait for a recruiter to become available, and the interview
will go forward at a faster pace.
A typical scenario for when AIRA would be useful :
A vacancy is posted on the company‘s portal and the questions the bot will ask the
candidate s.
Let‘s assume, that 200 people apply for that job, but after the interview questions, the bot
decides that only half of them are qualified for the job. After reviewing their answers and their
CV, the recruiter decides that only the best 25 of them will b e invited for a face -to-face
interview.
This whole process, with the help from the chatbot will only take the recruiter about 1 5
minutes .
23 | P a g e
Without the chatbot, the interviewer would have to review all the applications, therefore
losing much more valuable ti me.
The languages that this chatbot for interview supports at this moment are Burmese , Thai and
English. [16]
2.2.2. Stanley
TalkPush released Stanley , which differentiates itself from other chatbots used in recruitment by
being the first one in the world to int erpret voice commands. It initially run on Facebook
Messenger but now is also available on other channels such as WeChat and is capable to handle
all aspects of the recruitment process on a 24/7 schedule.
It can guide job seekers in the application process , answering their questions and offering
support , processing the applications for the available jobs, interviewing candidates and creating
a shareable audio profile for candidates you‘d want to review and share, Stanley can do it all.
Since a lot of the p eople are just a few clicks away through their smartphone on social media and
messengers, the channels that have been preferred by the recruiters until now , such as Email
cause the recruitment process to advance at a slow pace .
24 | P a g e
Figure 2.9: STANLEY
That is the reason Talkpush has decided to develop Stanley , to get in touch with every candidate
from the moment they have shown to be interested in a vacancy , to talk to them using different
channels , gather their career interest, collect their contact inform ation and conduct a screening
interview with them.
When the candidate has finished the interview , Talkpush will create a profile for the candidates
based on their answers and share it with the recruitment team for them to look over it . Now, the
recruiter will be able to either move forward with the application process and add the candidate
to a shortlist, or will disqualify the candidate from the process. When the recruiter‘s decision
reaches Stanley, it will notify the candidate through his preferred chan nel to assure that the
candidates are always up to date with the stage of their application .
A scenario that shows how the process will move from the candidate’s point of view:
The user reaches the Career page of a company in his field of interest. At thi s point, Stanley
starts the conversation and shows him vacancies in the company, from which the user selects one
that satisfies him. Stanley asks the user for personal information and contact details. In the next
stage, the interview starts and the candida te is being asked questions to which he can answer via
text or by a recorded voice message. After the interview is complete, he waits for his answers to
be reviewed by the recruiter and to receive an update on his application. [17]
25 | P a g e
2.2.3. Mya
FirstJob launched Mya, its recruitment automation bot in 2016. The company says Mya
is able to automate as much as 75% of the tasks of the recruitment team, therefore maki ng it
extremely useful for businesses and people looking for a job.
It uses AI and NLP to interview candidates, check if they are qualified for the job,
and later on answer the questions that they may have about the company and the job. It was
proven that candidates that used Mya to apply had over three times as many chances to be
contacted again by a recruiter or hiring manager, stated the company.
How it works
When a person applies to a job, Mya contacts them via a channel they preffer, since it
works on various channels such as Skype, SMS, or email. If Mya finds that a candidate does not
meet the job qualifications, the person will be notified that the minimum requirements are not
met.
After Mya is done collecting information and screening for qualificat ions, the bot
will continuously provide the candidate with information regarding the state of his application.
At the end of the application process, Mya ranks candidates top to bottom depending on
weighted factors such as engagement, recent activity or q ualifications.
Of course, finally, a member of the recruitment team will contact the candidate in case it is
decided that he fits the requirements for the job.
Mya is developed so that it frees up recruiters, allowing them to concentrate on the later stage s of
the hiring process and signing the candidates, as its creators stated.
26 | P a g e
Figure 2.10: MYA Chat
―There are other, much stronger predictors of performance, such as grittiness, passion projects,
internship experience, interest/engagement, competency, e tc,‖ a FirstJob spokesperson said,
which highlights the fact that the algorithm does not focus as much on the person‘s educational
background, but more to his job related competencies. [18]
2.2.4. Carrefour Chatbot
Carrefour is one of the few companies in Romani a that brings innovation in rectruiting,
launching its first recruiting chatbot, accessible through Facebook Messenger. The users can
search a job inside the company, benefiting from assistance throughout the whole application
process. The chatbot is avail able 24/7 and provides feedback in real time.
27 | P a g e
Figure 2.11: Carrefour Chatbot
Users can apply easily and faster for a job, being able to search depending on the location, but
also depending on their preferences regarding the format of the shop. The dialog ue with the
chatbot is structured so that it helps the user understand the job requirements, and the job
vacancies are updated real time through a permanent synchronization with the careers section of
the company. Moreover, the users can apply even though there are no vacancies available, since
the chatbot is able to contact them when a vacancy appears.
The chatbot also offers guidance to customers that want to easily locate Carrefour shops. Also,
the customers are able to browse through the products c atalogues, or to locate and optimize their
route towards the nearest shop using Google Maps. [19]
3. Research methodology
Not only c hatbots , but Artificial Intelligence as well are starting to gain more and more
positive feedback from the public and large bu siness are trying to take advantage of this . Not
long ago, Forrester conducted a survey which concluded that about ―85% of customer
28 | P a g e
interactions within an enterprise will be with software robots in five years‘ time‖ and ―87% of
CEOs are looking to expand their AI workforce‖ using AI bots.
In an effort to drive increased labo ur efficiencies, reduce costs, and deliver better
customer/employee experiences enterprises are quickly introducing AI, machine learning, and
natural language understanding as core elem ents of their digital transformation strategy in 2018.
3.1. Statistics
The first thing that is worth finding out is how many people actually interacted with a
chatbot before. By asking this question, those were the responses that were given.
Figure 3.1:Have y ou ever used a chatbot?
A survey that is most relevant to the way chatbots are currently perceived by the
population and represents the wider view of their opinion is the one conducted at the end of last
by year by SurveyMonkey. They gathered more than on e thousand people with ages spanning
from 18 up to 64.
The next question showed that when it came to businesses, the main means of communication
were the traditional ones. Only 15% of them used a chatbot in the last 12 months to contact a
29 | P a g e
business, which is still impres sive considering that this techn ology began being used for this
purpose only a few years back and denotes the fact that people are not that reluctant to embrace
new technologies.
Figure 3.2: Communication with businesses
Only how usef ul chatbots are in resolving real struggles in their respective field will determine if
they will play an important part in the years to come or not. If they will not answer the market
requirements, their cool factor will eventually start to fade and they will be replaced as well.
When people were asked what does not satisfy them when thinking about what the online
services such as mobile applications or web sites, their answers reflected the fact that most of
them feel the need of a more personal conversa tion, and better guidance when navigating a
certain web site. This is a big issue for company, thinking that those unsatisfied clients could
very well turn to the competition, but it is an issue in which I think the usage of chatbots would
provide the best option.
30 | P a g e
Figure 3.3: Experienced frustrations
Of course that one of the most important thing is knowing what are the problems that the
public expects chatbots to resolve. So, when asked what are the main improvements in their
online experience they wou ld expect by using a chatbot, their answers showcased that full time
accessibility, followed by a better response time to basic questions and a more personal approach
are the aspects to focus on.
So, people not necessarily expect chatbots to fully replace humans when it comes to more
complex issues, but rather regarding small and basic tasks.
31 | P a g e
Figure 3.4: Expected benefits
It is worth noting that even though people mainly agree on the improvements that
chatbots could bring to the table, i t is always important to understand t hat there are hesitations or
fears that people may present regarding a new technology, in order to be able to address those
issues. so it was mandatory to ask the people that offered take part in the survey what would
make them not use a chatbot. Almost half of them stated that they would rather talk to a live
person , the other important fears being that they consider chatbots more likely to make a mistake
or that it would be accessible only through a single channel that they might not have access to.
Nonetheless, it should also be noted that there are an encouraging 15% of the people that
responded that nothing would stop them from adopting a chatbot.
So, not necessarily everybody is at the point of leaving the traditional channels of
communication entirely, while others fear how well chatbots would be at performing tasks, but
as with all new technologies, some resistance is to be expected and only by delivering good
results, chatbots will become widely used. [20]
32 | P a g e
Figure 3.5: Bl ockers
3.2. Requirements
3.2.1. Non-functional requirements
The non -functional requirements of the application are:
Accessibility
The application should be made available and accessible 24/7 to people from all around
the globe, from any geographical zone. All job se ekers that have a Skype account should be
allowed to have access to the chatbot .
Capacity
The application will be able to keep a record of 100.0 00 applications, completed forms
and job descriptions . It can be easily upgraded.
Clear and well structured dial ogue
The dialogue with the user must have a clear path to follow. The user must understand at
each step what it is required for him to do and what kind of questions he can ask in order to
obtain the information that he is most interested in.
33 | P a g e
Performance
The performance of the application mostly depends on the user internet speed , but usually
the chatbot should be able to respond to user input in less than one second. All queries to the
database should hav e an average operation time of 1 seconds a nd a maximu m operation time
of 3 second.
Robustness
The application verifies all the input data and there no mandatory field can be left out. If
any error oc curs, the application will display appropriate messages and it will ask you to
either complete the mandatory field left out or to complete with valid data .
Security
In order to use the administration portal , the admin must log in. The only requirement to
start a conversation with the chatbot will be a Skype account.
Usability
The application can be used by anyone with a basic understanding of computer operating
concepts since all the instructions are clear and the user is told what is expected of him at
each step.
Portability
It can be used from any Operating System.
Exception Handling
Exceptions will be caught an d handled with in case they occur.
3.2.2. Functional requirements
The administration portal, the one used by the recruiter, is a web application and will allow the
user the following actions:
o Log in with the right credentials
o Add a Job Description
34 | P a g e
o View Job Descr iptions
o Update or delete a Job Description
o View applications to vacant jobs
The chatbot will provide the following functionalities to its users:
o Access to the chat interface via Skype
o Access to the form that he completes in order to find a matching job
o Address the chatbot directly and receive relevant information fast
o The chatbot will inform the user if his requests are not understood or cannot be met
o Ability to apply from the chat interface
4. Interviews Sync Solution
4.1. Problem statement
Interviews Sync Solu tion is a software product designed to help the HR department in
companies to better manage job vacancies, and applications to those jobs, while also providing
people that are interesting in a job at that company with the best experience, services and
guidance throughout the early stages of the recruitment process.
The product is composed of two project, one is a chatbot, that is accessed by the candidates
in order to gain information about the jobs that they are matching and to apply to that job. The
other project is a web application, that will be used by the HR member in order to manage
vacancies and to view applications.
Candidates will be able to access the chatbot by visiting the career portal section of the
company‘s site, through an embedded code which will start a new Skype conversation. After
completing a short form, in which they will lay out their personal information, the system will
process that information in order to inform the candidate whether he matches any of the vacant
35 | P a g e
jobs. If the can didate does match a job that is vacant, the chatbot will tell that to the candidate.
After finding out his matching job, the candidate can ask questions about th e salary, the work
environment and the benefits that the job offers or about the location. The chatbot will deliver
the answer to those questions, and when the candidate no longer has any questions to ask, if he is
interested in that vacancy he will be able to apply directly from the chat interface.
The Admin Portal is designed to be used by one of the HR members in the organization. After
logging in, the admin will be able to complete a form in order to add a new Job Description, to
view all the listed Job Descriptions, update or delete them. He will also be able to view all the
candidates that app lied to jobs and their personal data, contacting them if he wishes to move
forward with the recruitment process.
4.2. Business modeling
Business Actor:
– User (Job seeker )
Business Agent:
– Admin (Performs administrative tasks such as managing job descriptions and
applications. )
Business process:
– Start a conversation in order to find a suitable job and obtain information about it.
Business resources:
– Capability
– Information
– Money
36 | P a g e
Business rules :
No. Rule
BR1 A candidate can start a conversation with the chatb ot only if he has a Skype account.
BR2 Candidates must provide all the required information in order to submit the form.
BR3 A candidate must match a job in order to be able to move forward wih the process.
BR4 Job descriptions and applications must be reviewed daily by the admin.
BR5 The admin must be logged in order to access the administration portal.
BR6 The ca ndidate must follow the chatbot ‘s instructions and provide clear inputs to make the
most out of the conversation.
BR7 In case a job is no l onger vacant, the admin must delete that job description from the system.
BR8 In case a job description contains mistakes, it must be updated.
Business Use Case Diagram:
Figure 4.1: Use -cases
37 | P a g e
4.3. The flow of the application
Figure 4
In this diagram, we can get a wider view of how the application works. First, the admin
adds to the database the Job Descriptions to vacancies within his company. The job seeker starts
a conversation with the chatbot who helps him find a s uitable job out of all the jobs listed and
then answers the questions he receives from the user regarding the job.
After the user applies, the application reaches the admin, which reviews it and contacts
the candidate to inform him if he will move forward to a face to face meeting. After that, the
admin deletes the application to free up space in the database and to make his life easier.
38 | P a g e
4.4. Software Use -case Description
4.4.1. Login
Use case name: Login
Use case short description : The login procedure applies f or the admin. When accessing the
administration centre, he will be asked for credentials. Then, the corresponding input has to be
validated by the system.
Stakeholder: admin
Pre-conditions: The system is running; the application is connected to the databa se.
Post-conditions: The admin has access to the site.
Main flow of events:
Actor Action (or Intention) System Responsibility
1. Admin wants to access the system
in order to add, view, update or
delete Job Descriptions or to view
applications
2. Admin enters the corresponding
credentials(username and password)
3.Check if the credentials are valid
according to the information stored
in the database
4.Confirm login
39 | P a g e
5.Admin now has access to the
portal and can perform his tasks.
Alternate fl ow of events:
A3: – Invalid data
o Show error;
o Go to step 2 in the main flow;
System sequence diagram:
Figure 4.3: Login
40 | P a g e
4.4.2. Review applications
Use case name: Review applications
Use case short description : The admin accesses this page in order to look over t he applications
from people that used the chatbot and decide whether to contact them to schedule a face to face
meeting.
Stakeholder: admin
Pre-conditions: The system is running; the applicati on is connected to the database. The admin
is logged in.
Post-conditions: Sees all applications.
Main flow of events:
Actor Action (or Intention) System Responsibility
1. Admin wants to review
applications.
2. Admin presses the
ViewApplications button.
4. Admin sees applications
3.Retrieve all the applications from
database .
41 | P a g e
System sequence diagram:
Figure 4.4: Review applications
4.4.3. Delete application
Use case name: Review applications
Use case short description : From the view applications page, the admin has a delete option for
every applica tion in the database. This option is to be use in case the admin decides that the
candidate is not fit for the job, or that there are other candidates that are more suitable, or it can
be used in case the admin already got in touch with the candidate. It a llow for easier management
of applications.
Stakeholder: admin
Pre-conditions: The system is running; the application is connected to the database. The admin
is logged in and on the Vie wApplications page.
42 | P a g e
Post-conditions: The selected application will be permanently deleted from the database.
Main flow of events:
Actor Action (or Intention) System Responsibility
1. Admin wants to delete an
application.
2. Admin presses the Delete button
corresponding to the respective
application.
4. Admin receives notification and
no longer sees that application in the
table.
3. Delete that application from the
database.
43 | P a g e
System sequence diagram:
Figure 4.5: Delete application
4.4.4. Update Job Description
Use case name: Update/Delete Job Desc ription
Use case short description : The admin is given this right in case there are some fields where
erroneous data has been previously introduced or in case he needs to add some new information
about a Job Description
Stakeholder: admin
Pre-conditions: The system is running; the application is connected to the database. The admin
is on the ManageJobDescriptions page.
Post-conditions: The database will be updated with the modifications made by the admin.
44 | P a g e
Main flow of events:
Actor Action (or Intentio n) System Responsibility
1. Admin wants to update a job
description.
2. Admin presses the Update button
corresponding to the respective job
description.
4. Admin performs the necessary
updates.
6. The admin sees the modifications
in the table.
5. The system checks the data and
the database is updated with the
new information.
Alternate flow of events:
A5: – Invalid data type
o Show error;
o Go to step 4 in the main flow;
System sequence diagram:
45 | P a g e
Figure 4.6: Update job description
4.4.5. Delete Job Description
Use case name: Update/Delete Job Descriptions
Use case short description : From the manage applications page, the admin has a delete option
for every job description in the database. This option will be used by the admin in case the jobs
are no longer vacant .
Stakeholder: admin
Pre-conditions: The system is running; the application is connected to the database. The admin
is logged in and on the ManageJobDescriptions page.
Post-conditions: The selected job description will be permanent ly deleted from the database.
Main flow of events:
46 | P a g e
Actor Action (or Intention) System Responsibility
1. Admin wants to delete a job
description .
2. Admin presses the Delete button
corresponding to the respective job
description .
4. Admin receive s notification and
no longer sees that job description in
the table.
3. Delete that job description from
the database.
System sequence diagram:
Figure 4.7: Delete Job Description
47 | P a g e
4.4.6. Add Job Description
Use case name: Complete form to add job desc ription
Use case short description : The admin has at his disposure a form that allows him to introduce
a new job description into the system. He will use this functionality whenever a position
becomes vacant at his company.
Stakeholder: admin
Pre-condit ions: The system is running; the application is connected to the database. The admin
is logged in.
Post-conditions: The job description will be added to the database. The admin will be
redirected to the ManageJobDescriptions page, where he can review the new addition in the table
and he can update that job description if he made any mistakes.
Main flow of events:
Actor Action (or Intention) System Responsibility
1. Admin wants to add a job
description.
2. Admin presses the Add Job
Description button.
4.Admin introduces the needed
information about that job.
3. The system takes him to the form he
needs to complete.
5. The system verifies the data and
adds the data to the database if it is
valid and redirects the admin to the
48 | P a g e
6. Admin sees the job description in
the table.
ManageJobDescriptions page.
Alternate flow of events:
A5: – Invalid data
o Show error;
o Go to step 4 in the main flow;
System sequence diagram:
Figure 4.8: Add job description
49 | P a g e
4.4.7. Start chatbot conversation
Use case name: Open Conversation
Use case short description : The user is on the career portal of the company and clicks th e link
to start a conversation with the chatbot.
Stakeholder: user
Pre-conditions: The system is running; the application is connected t o the database.
Post-conditions: The user will be prompted with a Skype notification which asks him if he
wants to add the chatbot to contacts, after agreeing, the chatbot will start the conversation with a
greeting message.
Main flow of events:
Actor A ction (or Intention) System Responsibility
1. User wants to start conversation
with chatbot.
2. User presses the the link to start
a Skype conversation.
4.User agrees and a new Skype
conversation in created.
3. The system asks him if he agr ees to
add chatbot to contacts.
5. The chatbot initiates dialog with a
greeting message
50 | P a g e
Alternate flow of events:
A3: – not logged in to Skype
o Show error;
o User asked to register an account or log in ;
System sequence diagram:
Figure 4.9: Start conv ersation
4.4.8. Complete form
Use case name: Complete personal information form
Use case short description : The user is asked by the chatbot if he wishes to complete the form
in order to find a matching job.
Stakeholder: user
51 | P a g e
Pre-conditions: The system is runni ng; the application is connected to the database. The user is
in the chatbot conversation. The user agreed to complete the form.
Post-conditions: The user will be given an answer with the job he matches (in case he matches
a job) or that he does not match any job in the system.
Main flow of events:
Actor Action (or Intention) System Responsibility
1.User wants to complete the form.
3.User clicks on the link
4.User completes the form with the
required data
6.User tells the chatbot he has
submitted the form.
2. The chatbot sends him the link to the
form .
5. The system checks the data and
initiates the compute match algorithm
if the data is valid and adds that data
to the database.
7. The chatbot tells him the result of
the matching algor ithm.
52 | P a g e
Alternate flow of events:
A5: – Invalid data
o Show error;
o Go to step 4 in the main flow ;
System sequence diagram:
Figure 4.10: Complete form
4.4.9. Ask for information about job
Use case name: Ask for information about job.
Use case short descripti on: After finding his matching job, the user is informed by the chatbot
that he can answer some basic questions about the job, should the user have any.
53 | P a g e
Stakeholder: user
Pre-conditions: The system is running; the application is connected to the database. The user
matches a job description.
Post-conditions: The user will receive answers to his questions and when he no longer requires
any additional information, the process is moved to the next stage.
Main flow of events:
Actor Action (or Intention) Syste m Responsibility
1.User wants to find more about the
job he matches.
2.User asks the questions to the
chatbot.
4.User wants to move to the next stage
of the application process.
3. The chatbot processes the input that
came from the user and pr ovides him
with an answer.
Alternate flow of events:
A2: – Chatbot cannot understand user intents or user requests are out of the chatbot‘s
scope
o Inform user what kind of question he can receive answers to ;
o Go to step 2 in the main flow;
54 | P a g e
System seque nce diagram:
Figure 4.11: Ask for information
4.4.10. Apply
Use case name: Apply to job
Use case short description : After the user gets a wider view of the job he matches, the chatbot
will provide him with the option of applying directly from the chat interface .
Stakeholder: user
Pre-conditions: The system is running; the application is connected to the database. The user is
over the asking questions stage.
Post-conditions: The user personal data and contact information will be found in the database,
along wit h his matching job and matching score.
55 | P a g e
Main flow of events:
Actor Action (or Intention) System Responsibility
1.User reaches the final stage in the
chatbot conversation
3.User sees the message.
4.User agrees to apply to the job.
2. The chatbot asks him if he wants to
apply to the job
5.The chatbot updates the application
table.
6.The chatbot thanks the user for
applying.
7.The chatbot displays a goodbye
message.
Alternate flow of events:
A4: – The user does not want to apply to the job
o Go to s tep 7 in the main flow;
56 | P a g e
System sequence diagram:
Figure 4.12: Apply
4.5. Architecture
The application is composed of two projects. The first and the most important project is
the chatbot, which allows the candidates to apply to job that they are mo st suitable for and to
obtain information about the job. It is published to Azure and the users can contact it via Skype.
The second project is the administration center, in essence a web site, which will be used
by an HR member to perform administrative t asks regarding vacancies and applications. Since
the person using it is not an IT professional, the administration center had to have a clean and
friendly interface and instructions as to which actions the admin will be able to perform in each
stage.
Both the chatbot and the website communicate to a Database in order to retrieve data,
perform calculations and insert or delete data.
57 | P a g e
4.5.1. Chatbot Architecture
Figure 4.13: Chatbot architecture
The bot was created using the Bot Builder SDK and its behavior is pr ogrammed using C#. The
bot uses LUIS to extract useful information such as user intent and entities and my channel of
choice is Skype.
58 | P a g e
4.5.2. Administration Center Architecture
Figure 4.14: Site architecture
4.6. System Functionalities
Functionalitie s Grade
1. System must allow log in for the administrator 9
2. System must allow admin to add Job Descriptions. 9
3. System must allow the admin to view, update and delete Job Descriptions 8
59 | P a g e
4. System must allow the admin to view applications. 9
5. The chatbot must be operational 24/7. 7
6. System must accurately compute the matching job for user. 10
7. The chatbot must provide almost immediate response to user input. 8
8. The chatbot must be able to understand user requests. 9
4.7. Technologies used
Microsoft Bot Framework
Microsoft Bot Framework is my personal development platform of choice. I found it very
intuitive and easy to handle. It‘s integration capability is impressive, since it can be easily
integrated with any web site and it works seamlessly over many chann els such as Facebook
Messenger , Skype, Webchat, Email, Kik, Telegram or even SMS. It can also be easily integrated
with LUIS, a natural language understanding tool.
Also, Azure offers a Platform as a Service option just for Bots .
Figure 4.15: Bot Framework logo
It also provide great flexibility for the developer, since the code behind, which defines the
behavior of the chatbot can be written in both Node.js and C#, the former being my language of
choice.
60 | P a g e
LUIS (Language Understanding Intelligent Service)
My language understanding service of choice was LUIS , a cloud -based service that enables
programmers to build bots that can understand natural language , extract the relevant information
and provide appropriate answers to user requests.
The main components of LUIS are:
Utterances – plain texts in natural language that the program needs to understand (Ex:
‗Can you tell me where is the company located?‘)
Intents – what is the user trying to obtain by that utterance (Ex: getAddress)
Entities – what is the thing th at the user is referring to
In order for LUIS to work at the highest potential, so that he determines the intents of the users
and the entities more accurately, he must be trained with as many utterances as possible. [21]
ASP.NET
The web site that was deve loped using ASP.NET Core is a web framework created by
Microsoft for building web applications, micro services, and APIs. It uses common patterns like
MVC(Model -View -Controller), dependency injection, and a request pipeline comprised of
middleware. It is open-source under the Apache 2.0 license, which means the source code is
freely available, and the community is encouraged to contribute bug fixes and new features.
ASP.NET Core runs on top of Microsoft's .NET runtime, similar to the Java Virtual Machine
(JVM) or the Ruby interpreter.
Figure 4.16: ASP.NET logo
61 | P a g e
You can write ASP.NET Core applications in a number of languages (C#, Visual Basic,
F#). C# is the most popular choice, and it's what I'll use in this book. You can build and run
ASP.NET Core appli cations on Windows, Mac, and Linux. [22]
SQL Server
Is a relational database management system offered by Microsoft . As a database server ,
it is a software product with the primary function of storing and retrieving data as requested by
other software applications —which may run either on the same computer or on another
computer across a network (including the Internet).
Figure 4.17:SQL Server logo
Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different
audie nces and for workloads ranging from small single -machine applications to large Internet –
facing applications with many concurrent users .
The reason I chose it as my Database solution is because it is easy to integrate with
Visual Studio projects, it does not require the installation of any additional programs and because
I have previous experience in working with it. [23]
4.8. The database
The database is composed of seven tables, the main ones being the Applications,
JobDescriptions and CompletedForms tables. I only used the Cities, Domains and Skills tables to
populate the corresponding fields from the forms that the user and the admin fill. I preferred this
method because since b oth forms must have the same options for those fields, it will be much
62 | P a g e
easier to manage changes in the future, for example if new skills or domains need to be added, I
will only have to update the table, without having to modify the code behind for both fo rms. The
last table is of course the one that stores the login credentials for the admin.
The connection to the database is obtained through the following section of code that sits
on the web.config file of the web site and of the chatbot:
<connectionStr ings>
<add name="DBconnection "
connectionString ="Data Source=(LocalDb) \MSSQLLocalDB;Initial Catalog=aspnet –
Licenta-15db457c -b995-46fe-9767-334430c60c49;AttachDbFilename=|DataDirectory| \aspnet-
Licenta-15db457c -b995-46fe-9767-334430c60c49.mdf;Integ rated Security=SSPI "
providerName ="System.Data.SqlClient "/>
</connectionStrings >
Next I will present the table definitions, which show the table columns, their data types
and other constraints.
o Applications
CREATE TABLE [dbo].[Applications] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[CandidateName] VARCHAR (100) NOT NULL,
[JobName] VARCHAR (100) NOT NULL,
[MatchJobScore] FLOAT (53) NOT NULL,
[DOB] VARCHAR (50) NOT NULL,
[PhoneNo] VARCHAR (20) NOT NULL,
[Email] VARCHAR (100) NOT NULL,
[City] VARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
o CompletedForms
CREATE TABLE [dbo].[CompletedForms] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] VARCHAR (100) NOT NULL,
[Email] VARCHAR (100) NOT NULL,
[PhoneNo] VARCHAR (20) NOT NULL,
[DOB] VARCHAR (50) NOT NULL,
[City] VARCHAR (50) NOT NULL,
[Relocation] VARCHAR (10) NULL,
[Domains] VARCHAR (200) NOT NULL,
[Experience] DECIMAL (3, 1) NOT NULL,
[Skills] VARCHAR (200) NOT NULL,
[Languages] VARCHAR (100) NULL,
[MatchJobId] INT NULL,
[MatchJobScore] FLOAT (53) NULL,
63 | P a g e
[ConversationId] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
o JobDescriptions
CREATE TABLE [dbo].[JobDescriptions] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Job] VARCHAR (50) NOT NULL,
[Type] VARCHAR (50) NOT NULL,
[Domain] VARCHAR (50) NOT NULL,
[Schedule] VARCHAR (100) NULL,
[Skills] VARCHAR (200) NULL,
[Experience] DECIMAL (3, 1) NOT NULL,
[City] VARCHAR (50) NOT NULL,
[Address] VARCHAR (100) NULL,
[Language] VARCHAR (200) NULL,
[MinSalary] DECIMAL (8, 1) NULL,
[MaxSalary] DECIMAL (8, 1) NULL,
[Bonuses] VARCHAR (50) NULL,
[FreeDays] INT NULL,
[OtherBenefits] VARCHAR (100) NULL,
[WorkEnvironment] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
o Cities
CREATE TABLE [dbo].[Cities] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[City] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
o Domains
CREATE TABLE [dbo].[Domains] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Domain] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
o Skills
CREATE TABLE [dbo].[Skills] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Skill] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
64 | P a g e
The domain model of the database with the relationships between the tables can be seen in the
following picture:
Figure 4.18: Domain model
4.9. The chatbot
The chatbot uses the machine learning capabilities offered by LUIS and is a scripted one, which
means his dialog with the user has a predefined course. I t was very important for the
conversation to have a very well defined structure that the bot will follow, so that the user will
know at each step of the conversation what is expected from him.
A detailed view of how the conversation will unfold can be found in the following picture:
65 | P a g e
Figure 4.19: Chatbot diagram
In LUIS, in order for the bot to understand human language, I created 9 intents and trained them
accordingly. The intents defined in Luis are the following:
66 | P a g e
Greeting – used to understand when the user responds to the greeting message; trained
using 7 labeled utterances
None – this one is will be triggered when the chatbot does not understand the user input
or the input does not correspond to any defined intent. It will respond accordingly
depending on what stage in the conversation the user is; trained using 4 labeled utterances
No – used to understand when the user does not want to complete the form, does not have
any questions or does not want to apply to the job ; trained using 9 labeled utterances
Yes – used to understand when the user wants to complete th e form, has any questions or
wants to apply to the job ; trained using 7 labeled utterances
formSubmitted – this intent will be triggered when the user finishes to complete the
form with the information required and submits the form. The user will return to the
chatbot and inform him about submitting the form; trained using 5 labeled utterances
getBenefits – this intent will be triggered when the user wants to know what kind of
benefits the job offers (gym subscription, food vouchers, medical insurance) ; trained
using 5 labeled utterances
getFreeDays – triggered when the user wants to find out how many free days the
company offers for the position he matches ; trained using 3 labeled utterances
getSalary – intent that will be triggered when the user ask about the salary or the salary
range ; trained using 7 labeled utterances
getWorkEnvironment – intent that will be triggered when the user asks about the
location of the office and about the facilities that the office has access to, such as parking
spaces for the employees or a game room the empployees can use during breaks ; trained
using 9 labeled utterances
getSchedule – intent that will be triggered when the user wants to find out the schedule
of the job he matches (if it is a part -time job or if it offers a fl exible schedule); triggered
using 8 labeled utterances
For example the utterances used to train the getWorkEnvironment intent a re the following:
is there a dress code at the office ?
what are the facilities at the office ?
67 | P a g e
what is the location ?
where is it located ?
what can you tell me about the work environment ?
tell me the address
i want to know the location
what is the work environment like ?
where will i work ?
After training the bot, we can test it to see if the right intent is d iscovered at an inp ut we provide,
and we can look at the JSON code behind to see more details about the score the intents get for
that input. For example, for the input I want to know the location of the office , this is the JSON
code:
Figure 4.20: LUIS JSON
As we can see, LUIS managed to single out the user intent with a score of 0.95. In this case, the
chatbot will respond to the user by extracting the fields City, Address and Work Environment
from the JobDescriptions table.
68 | P a g e
In order to test the bot locally I used Bot Emul ator, which is a great tool that Microsoft offers to
developers for them to use in building chatbots.
The next stage was publishing the bot to Azure, where it will be hosted so that it runs
continuously without interruptions and so that I will be able to c onnect the bot to the Skype
channel. When publishing the bot I was provided with an applicationid for the bot and an
applicationpassword so that the bot will be published successfully. These attributes had to be
introduces in the web.config file of the cha tbot.
<appSettings >
<add key="BotId" value="InterviewsChatbot " />
<add key="MicrosoftAppId " value="5b401e4f -113f-4a6d-81be-c15a6c69b36a " />
<add key="MicrosoftAppPassword " value="haXQQ37!(apclaCVAE298!; " />
</appSettings >
Selecting the channel the chatbot will use can be easily done from the azure portal. As it can be
seen in the picture below the Skype channel is up and running.
Figure 4.21: Channels
Now, by adding the bot to Skype contacts, this is how a conversation with the chatbot looks like:
69 | P a g e
Figure 4.22: a) Scenario for conversation
Figure 4.23: b) Scenario for conversation
70 | P a g e
Figure 4.24: c) Scenario for conversation
4.10. The administration center
The administration center or the admin portal is used by one of the HR members to
manage the recruitment process.
When the admin accesses the portal he is redirected to the log in page, where he must
insert his credential. After inserting his credentials, if they are valid, he will be redirected to the
home page, which offers him three o ptions:
Go to the AddJobDescription page, where he can add a new job description based on the
form; after submitting the form he is redirected to the ManageJobDescriptions page to
view the job descriptions that are currently in the system.
Go directly to t he ManageJobDescriptions page, where he reviews job descriptions and
can update the ones that require addition of new information or contain wrong data or he
71 | P a g e
can delete the ones which are no longer vacant since a person has already been hired for
that job.
Go to the Applications page, where he can review the applications from people that
applied to jobs using the chatbot.
The interface of the portal had to be simple and clean, since it will not be used by people with
technical background. The home page of t he portal is depicted in the following picture:
Figure 4.25: Home Page
5. The matching algorithm
In this chapter I will talk about t he matching algorithm , which is the most important feature
of the applications. It is what separates this interviews soluti on from other ones that are available
on the market. This feature computes a score from the data the user provided and returns the
matching job description from the database.
72 | P a g e
The matching algorithm is triggered after the user completed the form that the chatbot sends
him via Skype, if all the data that the user submitted is valid and if all the required fields have
been filled accordingly .
The algorithm can be divided into 3 major steps.
The first step
The user can select multiple domains from a list (the c urrently available domains at the
company are eCommerce, Software Development, Front -End Development, Web Design and
QA) , while a job description can only belong to one domain. Also, a job description can be for
only one city and the user can select his c ity of interest, be he can also specify if he is available
for relocation, which means that he would agree to work in another city than the one he
previously selected on the form.
Based on this fields, because we want the algorithm to be as efficient as po ssible, if the user
selected that he is not available for relocation we extract from the database only the job
descriptions that have the same city as the one the user selected as his city of interest and that
match one of the domains that the user selecte d. If the user specified that he is available for
relocation, then we extract the jobs based solely on the domain.
Figure 5.1: First step
73 | P a g e
The second step
For the next step of the algorithm, we compute the score for each job description returned
from the table. The score is computed based experience, the skills that the candidate selected and
the languages he speaks and his level in those languages.
A score threshold of 70% is defined so that only scores that are equal or greater to that
threshold are tak en into consideration. Also, we define the score that each of the fields has into
computing the final score. Therefore, those are the values for each of the scores:
The experience of the candidate has a score of 40
The skills have a score of 40
The langua ges and their level have a score of 20
Next, if the job description at hand requires le ss years of experience than what the user
has, then we add 40 to the temporary score.
Figure 5.2: Compute experience score
After that, we move to the skills that the u ser claims to have. Both the user and the job
description can have one or more skills associated with them. We first count the number of skills
that the job requires, then we dived the score of the skills (40) by the number of skills and we
obtain the scor e per skill value. By parsing through the skills the user selected, if we find skills
that match then we increase the matching skills number. When we finished parsing through the
skills, we add to the temporary score the value of product between the score per skill and the
number of matching skills.
74 | P a g e
Figure 5.3: Compute skills score
Next, we move on to the languages, for which the process is similar, the only difference
being that languages also have levels associated to them. In the database, for each lev el, we
associate a number so that we can perform the match. Therefore, those are the associations:
Beginner = 1
Intermediate = 2
Advanced = 3
Native = 4
When performing the match, we also define the score for each language as we did
previously and we count the number of languages the job requires, but this time we also need to
verify that the level the user has in that matching language is equal or greater to the level that the
job requires. Finally, we add to the temporary score the score per language.
Figure 5.4: Compute languages score
75 | P a g e
After performing these calculations we find the temporary score which is the score
associated to that job description. This process repeats itself for every job description that we
returned from with the previous querie s.
The third step
Finally, we are interested in the job description that obtained the highest score, which
means that it suits the user best, and that also equals or exceeds our threshold of 70%.
Figure 5.5: Third step
The values that we insert to t he CompletedForms table now along with the other
information the user filled are the MatchJobID and the MatchJobScore and also the
ConversationID.
The ConversationID is taken from the conversation with the chatbot and passed at the end
of the link for the form. We also add it in the table so that when the user return to the
conversation with the chatbot and informs him that he submitted the form, the chatbot will know
which record from the table belongs to the user he speaks to.
6. Conclusions and future wor k
The application Interviews Sync Solution was developed to serve the job seekers providing
them an alternative to the old recruitment methods, by incorporating new and fast evolving
technologies. They will have a newer, much more personal way of applying to a job and will
have much more chances of being contacted by a recruiter than by simply sending their CV,
since by applying through the chatbot they know they are suited for that respective job.
The HR recruitment team will also reap the benefits from t his application, by no longer
receiving applications that lack the skills or experience for the job they applied for, therefore
76 | P a g e
reducing their amount of work and also offering them a clean, easy to use interface that will
guide the along the process of man aging vacancies and applications for jobs in their company.
Since the chatbot runs all the time on Skype, it will be available to anyone at any time of the
day and from every platform, from a personal computer to a mobile device.
As for future improvements and additions that could be brought to this application, I
consider, on the chatbot side, that the most important improvement would be to present the user
with a list of jobs he matches. While at this stage, the application only presents to the user the j ob
that obtained the maximum score and that suits him best, I think that the chatbot could present to
the user a list of all jobs that obtained a score that is greater or equal than the threshold of 70 that
has been set. After that, the user could ask ques tions about all the jobs he matches and select
from that list the one that he prefers.
Also, another improvement would be to allow the user to also send his CV along with the
application, so that if the HR member wants to find out more information about hi m, such as his
education or projects he has been involved in, he can find that information there.
I think it would be very important to add an notifications functionality for the chatbot, so
that in the eventuality that a user completes the form and he doe s not match any job, he will be
kept in the database and will be contacted as soon as a job description that fits his profile is
added to the database. Also, this functionality could be useful for users that match a job and
decide not to apply to it becaus e they are not satisfied with any of the aspects regarding that job,
but in the future may be attracted by another job added to the system.
Regarding improvements that could be made to the administration centre , a thing that would
help the admin, in my opi nion, would be to allow them to create notes for candidates that applied
to jobs. Let‘s say, for example that a person applied to a job and the recruiter calls him and he
does not answer, the recruiter could add a note associated to that person where he me ntions the
call and the time it was made. After a number of calls that are unanswered he could delete that
application from the system, considering the application out-dated and the person not interested
in the job anymore.
77 | P a g e
Also, I think it would benefit t he application to store all conversations between the
candidates and the chatbot, so that if admins choose to look over their conversations they will get
a more personal view of the candidate.
Last but not least, I would also consider adding an superadmin role to that platform. The
superadmin role could be played by the manager of the HR department, who could perform
periodical audits on the operations performed by the admin regarding applications and job
descriptions. This will allow him to form an idea of how his subordinate performed at doing his
job and he could compensate him in case he is satisfied with his results.
To sum it all up, I think that despite the fact that there are lots of improvements that co uld be
made to this application , it still remai ns a viable options for companies and for job seekers that
are keen on using new technologies in the early stages of the application process.
78 | P a g e
7. References
[1] http://www.businessinsider.com/what -is-chatbot -talking -ai-robot -chat-simulators -2017 -10
[2] https://botpress.io/learn/what -why
[3] https://chatbotslife.com/chatbots -in-social -media -marketing -e573d013e99c
[4]https://chatbotsjo urnal.com/how -chatbots -improve -customer -experience -in-every -industry -an-infograph –
9a9b054ccc56
[5] www.businessinsider.com/microsoft -ceo-satya -nadella -chatbots -wpc-2016 -7
[6] https://talentculture.com/five -facts -about -using -a-recruitment -chatbot/
[7]https://cacm.acm.org/magazines/2017/9/220439 -moving -beyond -the-turing -test-with-the-allen -ai-science –
challenge/fulltext
[8] https://futurism.com/images/the -history -of-chatbots -infographic/
[9] https://www.chatbots.org/chatbot/a.l.i.c.e/
[10]https://www. techrepublic.com/article/ibm -watson -the-inside -story -of-how-the-jeopardy -winning –
supercomputer -was-born-and-what -it-wants -to-do-next/
[11] https://www.techrepublic.com/article/amazon -alexa -the-smart -persons -guide/
[12] https://www.macrumors.com/roundup/sir i/
[13]https://www.computerworld.com/article/3252218/collaboration/cortana -explained -why-microsofts -virtual –
assistant -is-wired -for-business.html
[14] https://www.techrepublic.com/article/google -assistant -the-smart -persons -guide/
[15]http://www.ziare.com/bani/banci/chatbot -ul-leya-dezvoltat -de-libra-internet -bank -a-fost-utilizat -de-peste -10-
000-de-ori-in-numai -4-luni-1505627
[16] http://adriantan.com.sg/grabjobs -job-interview -chat-bot/
[17] https://medium.com/skills -of-the-future/the -future -of-recruitment -welcome -the-chatbots -2109858f21c6
[18] https://venturebeat. com/2016/07/11/recruitment -chatbot -mya-automates -75-of-hiring -process/
[19]https://carrefour.ro/corporate/stiri -presa/noutati/carrefour -aduce -inovatia -in-recrutare -si-lanseaza -primul –
chatbot -in-retailul -din-romania
[20] https://blog.drift.com/wp -content/uploads/2018/01/2018 -state-of-chatbots -report.pdf
[21] https://dzone.com/articles/luis -language -understanding -intelligent -service
[22] https://s3.amazonaws.com/recaffeinate -files/LittleAspNetCoreBook.pdf
[23] https://searchsqlserver.techtarget.com/definition/SQL -Server
79 | P a g e
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Scurtu Ioan -Adrian UNIVERSITY POLITEHNICA OF BUCHAREST [618326] (ID: 618326)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
