Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 66

Automated Recruitment System

Developed By

Natasha Saeed 3119-FBAS/BSSE/F16

Supervised By Panel 1
Ms. Zakia Jalil
Dr. Umara Zahid

Department of Computer Science & Software Engineering Faculty


of Basic & Applied Sciences International Islamic University,
Islamabad. (2020)
Final Approval

Final Approval

Dated: __________________

It is certified that we have read the project report submitted by Natasha Saeed (3119-

FBAS/BSSE/F16) and it is our judgment that this project is of sufficient standard to


warrant its acceptance by the International Islamic University, Islamabad for the BS
degree in Software Engineering.

Committee:
Supervisors:
Dr. Ummara Zahid
Lecturer
DCS&SE, FBAS IIUI Signature:
Ms. Zakia Jalil
Lecturer
DCS&SE-IT, FBAS IIUI Signature:
Dedicatio
n

DEDICATION
I dedicate this project to my loving guardians and supportive teachers. Additionally, I also
dedicate this project to the teamwork put in by each other in this journey. For
special dedication, I dedicate my project to my family, concerned teachers
and helpful batch mates who created a space of appreciation and hope for me
to reach here. I could not have made it without the prayers, hard work and
passion.
Automated Recruitment System i
Dissertatio
n

DISSERTATION
A dissertation is submitted to the Department of Computer Science & Software
Engineering. International Islamic University Islamabad, as a partial fulfillment of
requirements, for the award of the degree.

BS in Software Engineering

Automated Recruitment System ii


Declaration

DECLARATION
I hereby declare that this system neither as a whole nor as a part has been copied from
any source. It is further declared that I have developed this system entirely based on my
personal efforts and learning made under the sincere guidance of my teachers and
supervisors. If any part of this report is proved to be copied out or found to be reported, I
shall stand by the consequences. No portion of the work presented in this report has been
submitted in support of any application for any other degree or qualification of this or any
other university or institute of learning

Natasha Saeed
3119-FBAS/BSSE/F16

Automated Recruitment System iii


Acknowledgement

ACKNOWLEDGEMET
I would like to express how blessed and grateful I am to Allah for His beneficial
blessings. My project is a directly supervised by Him as he kept me in good health and
made every obstacle easy.
Furthermore, I would like to mention my guardians. Their support, prayers and
encouragement allowed me to work in peace even during the pandemic. Moreover, a huge
thanks goes to my kind teachers; Dr. Umara Zahid and Ms. Zakia Jalil for marking their
presence through every step of my project. I have learnt a great deal of knowledge from
them.

Natasha Saeed
3119-FBAS/BSSE/F16

Automated Recruitment System iv


Project in brief

PROJECT IN BRIEF

TITLE: Automated Recruitment System

ORGANIZATION INTERNATIONAL ISLAMIC UNIVERSITY ISLAMABAD,


H-10

OBJECTIVES: The overall objective of this project is to provide resume

parsing system against vacant post.

UNDERTAKEN BY: Natasha Saeed (3119-FBAS/BSSE/F16)

SUPERVISED BY: Ms. Zakia Jalil

Dr. Ummara Zahid


DATE STARTED: February 2020

DATE November 2020

COMPLETED:
OPERATING Windows 10 pro 64-bit

SYSTEM:
TOOLS Front End GUI will be done in HTML5, CSS3, bootstrap

& LANGUAGES: Middleware: PHP (Hypertext Preprocessor)


Back End Database used will be MySQL and python
Browsers: Internet Explorer, Google Chrome etc.
Major tools: Sublime text, anaconda navigator (launched
Jupyter notebook),Xampp server.

Automated Recruitment System v


Abstract

ABSTRACT

Today companies prefer online-recruitment System to attract and pick the best suit from a
pool of potential candidates. Addressing the effectiveness of online recruitment and
generating the solutions for overcoming the current difficulties of manual recruitment is
key focus of my project. Recruitment and selection strategy based on modern
technologies requires an experienced and competent candidate resume. This web-based
application Automated Recruitment System is very useful system. This system is
developed for hiring the candidates for specific vacant post. In this project two major
languages are used PHP and Python and the most important text rank algorithms are the
main focus of this project. This Machine learning algorithm is used which reduce most of
the hectic task of HR. Two unquestionable benefits of this system are limiting the length
of the process in time and possibility to decrease the costs. The current system coupled
with the addition of planned enhancements will increase future hiring efficiency,
employee quality, and resulting financial savings.

Automated Recruitment System vi


Preface

Preface
This document contains total seven chapters. Brief overview of these chapters are as
follows. The first chapter includes introduction to the project, scope of the project,
problem statement etc. Second chapter includes basic concept. The third chapter deals
with the proposed system and project overview is given. It also includes the objectives of
the proposed system. The fourth chapter explains designing objectives or data structure
design of the system. The fifth chapter deal with the system development. The sixth
chapter deals with the system testing. The seventh chapter includes the conclusion about
the project. And finally, references are given.

Automated Recruitment System vii


Table of Contents

Table of Contents
Chapter 01 ...................................................................................................................................... 13
INTRODUCTION .............................................................................................................................. 13
1. INTRODUCTION ........................................................................................................................ 2
1.1. Overview ........................................................................................................................... 3
1.2. Project Motivation ............................................................................................................ 3
1.3. Project Purpose ................................................................................................................ 3
1.4. Aims and objectives .......................................................................................................... 3
1.5. Problem statement ........................................................................................................... 4
1.6. Stakeholder and User Description .................................................................................... 4
1.7. User Summary .................................................................................................................. 5
CHAPTER 2........................................................................................................................................ 6
BASIC CONCEPTS/EXISTING SYSTEM ................................................................................................ 6
2. Problem Analysis ...................................................................................................................... 6
2.1. Project Idea ....................................................................................................................... 6
2.2. Proposed System .............................................................................................................. 6
2.3. Software Process .............................................................................................................. 6
2.3.1. Planning .................................................................................................................... 6
2.3.2. Designing .................................................................................................................. 7
2.3.3. Developing ................................................................................................................ 7
2.3.4. Testing ...................................................................................................................... 7
2.4. Software Technology ........................................................................................................ 7
2.5. Use Case Diagram ............................................................................................................. 8
2.6. Fully dressed use cases: ............................................................................................................. 8
CHAPTER 03.................................................................................................................................... 16
PROBLEM/SYSTEM ANALYSIS ......................................................................................................... 16
3. SYSTEM ANAYLYSIS................................................................................................................. 15
3.1. Specific functional requirements ................................................................................... 15
3.2. Non-functional requirements ......................................................................................... 15
Chapter 04 ...................................................................................................................................... 17
PROJECT DESIGN............................................................................................................................. 17
4. System Design ........................................................................................................................ 18
4.1. Domain model: ................................................................................................................... 18
4.2. Class Diagram ................................................................................................................. 19
Automated Recruitment System ix
Table of Contents
4.3. ERD (Entity Relationship Diagram) ................................................................................. 20
4.4. System Sequence Diagram ............................................................................................. 21
4.5. Sequence Diagram .......................................................................................................... 22
4.5.1. Sequence Diagram For login ............................................ Error! Bookmark not defined.
4.5.2 Sequence Diagram For API call ...................................................................................... 23
4.5.3 Sequence Diagram For Ranking ..................................................................................... 24
4.6. Flow chart: ...................................................................................................................... 25
CHAPTER 05 .................................................................................................................................... 26
IMPLEMENTATION ......................................................................................................................... 26
5. IMPLEMENTATION.................................................................................................................. 27
5.1.1.2 CSS3 ............................................................................................................................ 27
5.1.1.3 Bootstrap: ................................................................................................................... 27
5.1.2. Middleware: ..................................................................................................................... 28
5.1.2.1 PHP: ............................................................................................................................ 28
5.1.2.2. Python: ...................................................................................................................... 28

5.1.3. Back End: .......................................................................................................................... 28


5.1.3.1. MySQL: ...................................................................................................................... 28
5.1.3.2 Web Browsers ............................................................................................................ 28
5.2.1 Pseudo code .................................................................................................................. 29
Chapter 06 ...................................................................................................................................... 33
TESTING .......................................................................................................................................... 33
6.2.1 Unit Testing: ........................................................................................................... 37
6.2.2. Integration Testing: ................................................................................................ 37
6.2.3. System Testing: ....................................................................................................... 38
6.2.4. Acceptance Testing: ................................................................................................ 38
Test Cases ....................................................................................................................................... 38
Test Case 1: Login by HR in Automated Recruitment system ........................................................ 38
Test Case 2: Authentication............................................................................................................ 39
Test Case 3: UploadCv .................................................................................................................... 39
Test case 04: API call ...................................................................................................................... 40
Test case 05: Data Cleaning ............................................................................................................ 40
Test case 06: Extract key phrases ................................................................................................... 41
Test case 07: Semantic matching ................................................................................................... 41
Test case 08: Data Acquisition: ....................................................................................................... 42
Test case 09: Ranking ..................................................................................................................... 42
Chapter 07 ...................................................................................................................................... 44
Automated Recruitment System ix
Table of Contents
CONCLUSION................................................................................................................................ 44
Summary:...................................................................................................................................... 43
USER MANUAL.............................................................................................................................. 44
APPENDIX A.................................................................................................................................. 44
APPENDIX B................................................................................................................................... 49
REFERENCES.................................................................................................................................. 49

Automated Recruitment System ix


Chapter 01
INTRODUCTION
Chapter 1 Introduction

1. Introduction:
We live in a connected world where new technologies can bring benefits to us all, as
individuals, communities and businesses. With technology there is always progress and until
the end of time it will always be in motion.After completing education, the next phase that
comes in a person’s life is job. However, there are lots of people who start working before
completing their formal education. While searching for jobs the most important thing to
represent an applicant is Curriculum Vitae (CV) or Resume. In this era of technology, job
searching has become more smart and easier at the same time. However, there are more than
enough applicants for a single job and it is the responsibility of HR to review all the Resumes
carefully, this situation might be overwhelming to HR that need to allocate human resources
for manually assessing the candidate resumes and evaluating the process of analyzing the
applicant profiles to determine the ones that fit the position’s specifications could lead to an
increased efficiency. The ones that fit the position’s specifications could lead to an
applicant’s suitability for the positions at hand.

Automating this system is to help HR for selecting best fit Resume of the candidate for a
job. The system can also be used for professional. Sometimes it become difficult for the
HR to manage bulk of Resumes and difficult to review each Resume carefully, in such
situation he may select a candidate who may not fit best for that seat or he may miss some
Resume because of stress or tiredness, it will be counted as his negative point. To solve
this problem, an approach combined with Natural Language Processing (NLP) and
Machine Learning (ML) seems like a feasible opportunity. Nowadays, there are lots of
research done in both Natural Language Processing and Machine Learning. Machine
learning is about learning from data and making predictions and/or decisions.
HR receive applicant’s resumes and save them in a folder. He will login to system and
upload resumes and give a job description, then API will call, and python’s code will
execute and after few seconds he will get top five ranking resumes.

Automated Recruitment System 2


Chapter 1 Introduction

1.1. Overview:

This research starts with a desire to develop a unique system with a unique concept that
help the people. The challenging thing is the use of Machine Learning Algorithms that
gives the perfect result according to need or description.

1.2. Project Motivation:

I got my inspiration to develop this system is by my own internship in the summer break.
When I did work as a HR reviewing resumes of so many people and it was so hectic for
me to review every Resume and it was time taking. At that point, I got an idea in my
mind that why should I made a system that give relief to HR and reduce his work.

1.3. Project Purpose:

The main purpose of this system is to help HR for selecting best fit Resume of the candidate
for a job. The system can also be used for professional. Sometimes it become difficult for the
HR to manage bulk of Resumes and difficult to review each Resume carefully, in such
situation he may select a candidate who may not fit best for that seat or he may miss some
Resume because of stress or tiredness, it will be counted as his negative point. To solve this
problem, an approach combined with Natural Language Processing (NLP) and Machine
Learning (ML) seems like a feasible opportunity. Nowadays, there are lots of research done
in both Natural Language Processing and Machine Learning. Machine learning is about
learning from data and making predictions and/or decisions.

1.4. Aims and objectives:

The project aims and objectives are achieved after the completion of the project were
carried out in this chapter. The succession of the application is also evaluated through this
sub chapter.

The following are the objectives of this project;

 Create a talent pool of candidates to enable the selection of best candidates for the
organization.
 It helps upwards the achievement rate of choice process by diminishing number of
unmistakably under-qualified or over-qualified work candidates.

Automated Recruitment System 3


Chapter 1 Introduction
 The cost of recruitment and its financial implications of the same objectives are
targets and goals.
 Meeting the organization’s diversity and social commitments by selecting
candidates based solely on their merits and the way they fit in with the company
values, goals and culture.

The main aim of recruitment and selection is to aid the decision making of the upper
management to fill a gap; it helps them find the right candidate with the right qualifications
and skills to be able to do the job not taking in to consideration their race, age, gender, color
or nationality. This is important as it is a fair, effective and in good practice.

1.5. Problem statement:

In order to remove the above mentioned and many other complications we will look
towards an automated system for selecting candidates. I am designing a system in order to
remove the drawback which we see in case of manual recruitment system of selecting
candidates. People can send their Resumes to HR and HR will upload these Resume on
our system then system will predict with the help of machine learning algorithms,
functions and datasets that which one is best for position.

The problem of Time taking

Affects He may select a candidate who may not


fit best for that seat or he may miss some
deserving candidate.
The impact of which Reviewing many resumes may cause
stress or tiredness, it will be counted as
negative point.
A successful solution would be Automated Recruitment system an
approach combined with Natural
Language Processing (NLP) and
Machine Learning (ML) seems like a
feasible opportunity.

Table 1.1 Problem Statement

1.6. Stakeholder and User Description:


This project is basically for only use of one person that is HR or administration of the
company who install this application in their web-based gadgets. It helps him to
select the candidates for vacant seats in short period of time.

Automated Recruitment System 4


Chapter 1 Introduction

1.7. User Summary:


Name Description Stakeholder
HR/admin End user Owner

Table 1.2 User Summary

Automated Recruitment System 5


CHAPTER 2
BASIC CONCEPTS/EXISTING SYSTEM
Chapter 2 Basic Concepts/Existing System

2. Problem Analysis:
In this chapter, the main idea of Automated Recruitment System and its scope is
discussed. Problem analysis is the understanding of real-world problems, user’s needs and
proposing solutions to meet those needs. The goal of problem analysis is to gain better
understanding of a problem being solved, before development begins. Following is the
analysis on the project “Automated Recruitment System”.

2.1. Project Idea:

Since recruiting employees manually is a time consuming, possibly erroneous in


employing incompetent individuals, thus wasting of the company’s money or loosely
speaking not a wise strategy in terms of economy. Automated Recruitment System is a
process of selecting potential candidates for a vacant position and hiring the candidates
who fulfil the requirement of the organization; hence hiring is a strategic function for
human resource department.

2.2. Proposed System:

The proposed idea of Automated Recruitment System is to present something different or


unique. The proposed Automated Recruitment System implements automated candidate
ranking based on a set of credible criteria, which will be easy for companies to integrate
with their existing HR management infrastructure.

2.3. Software Process:

The software process followed are everyday approach of planning, developing and testing.
Each phase is briefly explained:

2.3.1. Planning:

During this phase problem is identified and analyzed and the problem’s solution is
proposed in the form of a proposed system. The problem is identified, and
solution is proposed for it.

Automated Recruitment System


6
Chapter 2 Basic Concepts/Existing System
2.3.2. Designing:

Project starts to take its proper shape during this phase. Problem domain analysis
is done, and the basic form of the architecture is made for the project. A use cases
of Automated Recruitment System where the actor of the project was modeled
and their goals that were identified in the inception phase. Use case descriptions
are also developed during this phase. A description of the software design has also
been made in this phase. UML diagrams System Sequence Diagram were made
for the system design.

2.3.3. Developing:

Implementation of the system takes place in this phase along with the testing. I
used python, Text Rank algorithms, word embedding similarities, php, bootstrap,
jQuery, JavaScript to develop the project.

2.3.4. Testing:

The website was tested through various test cases for every individual level as
well as a whole. Test cases were then observed and acted upon.

2.4. Software Technology:

This application was developed by python using following libraries and packages

 Spacy
 Pdfminer
 NLP
 Xampp server
 Anaconda navigator is used for python.
 Front End GUI develop in HTML5, CSS3, BOOTSRAP.
 Middleware: PHP (Hypertext Preprocessor)
 Browsers: Chrome, Internet Explorer.

Automated Recruitment System


7
Chapter 2 Basic Concepts/Existing System

2.5. Use Case Diagram:

Figure 2.1 Use Case Diagram


2.6. Fully dressed use cases:
Login:

Use Case Name UC-01-Login

Scope Login to Automated Recruitment System

Level System Level

Primary Actor HR(Admin)

Automated Recruitment System


8
Chapter 2 Basic Concepts/Existing System
Stakeholders and interest HR

Purpose To get registered in Automated


Recruitment System
Precondition None

Main success Scenario HR gets registered

Success Guarantee Login Successfully

Extensions Enter email and password again

Special Requirements Enter correct email and password

Priority High

Table 2.1 Login

Authentication:

Use Case Name UC-02-Authentication

Scope Validity check

Level System Level

Primary Actor System

Stakeholders and interest HR, System

Purpose Checking authentication of data

Precondition Enter email and password

Main success Scenario Authenticate data

Success Guarantee Login successfully

Extensions enter email and password again

Special Requirements Enter correct email and password

Automated Recruitment System 9


Chapter 2 Basic Concepts/Existing System
Priority High

Table 2.2 Authentication

UploadCv:

Use Case Name UC-03-UploadCv

Scope Upload Resumes on system

Level System level

Primary Actor HR, system

Stakeholders and interest HR

Purpose To get best resume against job description

Precondition HR must login

Main success Scenario Successfully uploaded

Success Guarantee Successfully uploaded

Extensions Again upload resumes

Special Requirements Select pdf, docx files

Priority High

Table 2.3 UploadCV

API call:

Use Case Name UC-04-API call

Scope Communicating two software programs

Level System level

Primary Actor System

Automated Recruitment System 10


Chapter 2 Basic Concepts/Existing System
Stakeholders and interest System

Purpose To communicate two codes (php and


python)
Precondition Uploadcv done

Main success Scenario Resumes uploaded in folder

Success Guarantee Successfully call

Extensions Call API again

Special Requirements Correct code

Priority High

Table 2.4 APIcall

Extract key phrases:

Use Case Name UC-05-Extract key phrases

Scope Identify and separated specific useful


phrases
Level System level

Primary Actor System

Stakeholders and interest System

Purpose The key phrases extraction API evaluates


text and for each JSON document returns
a list of useful key phrases
Precondition Uploadcv, API call

Main success Scenario Extract main key phrases using algorithms

Success Guarantee Successfully get key phrases from resumes

Extensions Apply algorithm again for extracting key


phrases.
Special Requirements Algorithms must be applied successfully

Automated Recruitment System 11


Chapter 2 Basic Concepts/Existing System
Priority High

Table 2.5 Extract key phrases

Data Cleaning:

Use Case Name UC-06-Data Cleaning

Scope Identify and remove extra words

Level System level

Primary Actor System

Stakeholders and interest System

Purpose Read all words in document return skills


to skillset and clean extra words in pdf.
Precondition Uploadcv, API call

Main success Scenario Remove extra phrases

Success Guarantee Successfully clean extra data from


resumes
Extensions Apply algorithm again for data cleaning

Special Requirements Algorithms must be applied successfully

Priority Medium

Table 2.6 Data Cleaning

Data Acquisition:

Use Case Name UC-07- Data Acquisition

Scope It will weight the similarities, and hep in


ranking the text.
Level System level

Primary Actor System

Automated Recruitment System 12


Chapter 2 Basic Concepts/Existing System
Stakeholders and interest System

Purpose For getting best match of resume with job


description according to highest weight.
Precondition Uploadcv, API call, extract key phrases

Main success Scenario Successfully weight the words in bigram,


trigram etc.
Success Guarantee Successfully weight the words in bigram,
trigram etc.
Extensions Apply again data acquisition in text.

Special Requirements Key phrases must be extracted because


data acquisition will be applying on that
phrases. Then this will help in ranking.
Priority High

Table 2.7 Data Acquisition

Semantic matching:

Use Case Name UC-08-Semantic matching

Scope Matching similar words between job


description and resumes data.
Level System level

Primary Actor System

Stakeholders and interest System

Purpose For getting best match of resume with job


description
Precondition Uploadcv, API call, extract key phrases

Main success Scenario Successfully matched job description with


key words.
Success Guarantee Successfully matched job description with
key words.
Extensions none

Special Requirements Key phrases must be extracted because


semantic matching will be done on that
Automated Recruitment System 13
Chapter 2 Basic Concepts/Existing System
phrases. The words in key phrases will
match with job description.
Priority High

Table 2.8 Semantic Matching

Ranking:

Use Case Name UC-09-Ranking

Scope Resumes ranking with respect to job


descriptions
Level System level

Primary Actor System

Stakeholders and interest System

Purpose In order to get result system will rank top


resumes that best matches with the job
description.
Precondition Semantic matching

Main success Scenario Python algorithms and libraries


Successfully work.
Success Guarantee Successfully rank.

Extensions Again, check the uploaded Resumes in


folder and make sure API call successfully
and data acquisition, extract key phrases,
semantic matching is done successfully or
not.
Special Requirements All previous uses cases must work
properly
Priority High

Table 2.9 Ranking

Result:

Use Case Name UC-10-Result

Scope Show result to HR

Automated Recruitment System 14


Chapter 2 Basic Concepts/Existing System
Level System level

Primary Actor System, HR

Stakeholders and interest System, HR

Purpose To show ranked resumes to HR So that


he/she can hire top listed candidate for
vacant post.
Precondition Ranking must be done successfully

Main success Scenario List of ranked resumes show to HR

Success Guarantee Successfully show result

Extensions Repeat whole process again

Special Requirements Resumes should be ranked

Priority High

Table 2.10 Result

Automated Recruitment System


15
Chapter 3 Problem/System Analysis

CHAPTER 03
PROBLEM/SYSTEM ANALYSIS
Chapter 3 Problem/System Analysis

3. SYSTEM ANAYLYSIS:
System analysis is a software engineering task that bridges the gap between system level
requirements engineering and software design.

3.1. Specific functional requirements:

In software engineering, a functional requirement defines a function of a software system


or its component. A function is described as a set of inputs, the behavior, and outputs.

 Resume parsing feature automatically extracts basic details and creates consistently
formatted profiles for every candidate.
 The system should rank candidates based on the criteria set.
 The system should make some mathematical logics to short listed candidates.
 The system shall display only short-listed candidates.
 The system should offer the user (HR) a minute login page whenever he wants to add
to it.
 The system shall also show sorted candidates resume file.

3.2. Non-functional requirements:

A non-functional requirement is a requirement that specifies criteria that can be used to


judge the operation of a system, rather than specific behaviors. Non-functional
requirements are often called qualities of a system.

 Usability:
The system shall have a clean interface with only needed features, clear terminology
and tool tips wherever necessary. The System’s functionality can be tested by layman
who did not develop the system. Check the speed with which HR uploads the fees for
selection. Navigation among pages should be done in no effort.

 Efficiency:
The system shall Rank candidates in reasonable amount of time. The system shall
accept a big size of data especially when a user wants to upload documents like
curriculum vitae.

Automated Recruitment System 15


Chapter 3 Problem/System Analysis
 Portability:
Check whether system runs well on different platforms like Linux, Microsoft
windows or Mac OS.

 Security:
There should be no complaints regarding unauthorized access to the system. The
system should be physically secure.

Automated Recruitment System 16


Chapter 04
PROJECT DESIGN
Chapter04 Project Design

4. System Design:
This chapter illustrates the diagrams which show the relationship between the classes,
objects and their attributes and the functionality performed by the classes.

4.1. Domain model:

A domain model is a visual representation of conceptual classes or real - situation objects


in a domain. Domain models have also been called conceptual models, domain object
models, and analysis object model.

UploadCv
System HR

LOGIN

API

Semantic matching

Ranking Extract key phrases

.com

Data Acquisition

Data Cleaning

Result
.com

Figure 4.1 Domain Model

Automated Recruitment System 18


Chapter04 Project Design

4.2. Class Diagram:


A class diagram in the Unified Modeling Language (UML) is a type of static
structure diagram that describes the structure of a system by showing the system's
classes, their attributes, operations (or methods), and the relationships among objects.
The class diagram is the main building block of object-oriented modeling.

System
HR Database
-Email:String -Email: String -Email:String
-Pass:string -Pass String
-Pass:Sring
-checkLogin(); -verifylogin();

+callingAPI();
-checkLogin()
-matchdata()

API call Extract key phrases


+Desc:String +Desc: String
+cvName:String
+filename:String +skills: String
+callingAPI(); Semantic matching
-sort_candidate()
-extract_Skills()
-extract_text() -sort_candidate()
-get_number_of_pages(file_name)
Data Cleaning

+words: String

-cleanup(pdf_path);

Data Acquisition Ranking


+top:int
-trigram:float;
+new_names:String
+bigram:float;
+result:string
+onegram:float;
-Sortedcandidates();

Figure 4.2 Class Diagram

Automated Recruitment System 19


Chapter04 Project Design

4.3. ERD (Entity Relationship Diagram):

The simplest graphical representation of a system comprised of entities and their


relationships is called Entity Relationship Diagram, also referred as ERD. The following
ERD describes our entities and all possible relationships among them.

Figure 4.3 Entity Relationship Diagram

Automated Recruitment System 20


Chapter04 Project Design

4.4. System Sequence Diagram:


Sequence diagrams, commonly used to model the interactions between objects in a
single use case. They illustrate how the different parts of a system interact with each
other to carry out a function, and the order in which the interactions occur when a
particular use case is executed. In simpler words, a sequence diagram shows different
parts of a system work in a ‘sequence’ to get something done.

:System

:HR

Login()

Authentication

UploadCv()
APIcall()

Result
Logout()

acknowledge

Figure 4.4 System Sequence Diagram

Automated Recruitment System 21


Chapter04 Project Design

4.5. Sequence Diagram:

A sequence diagram shows object interactions arranged in time sequence. It depicts the
objects involved in the scenario and the sequence of messages exchanged between the
objects needed to carry out the functionality of the scenario.

:HR :Login :Database :System


alt Login()

CheckLogin()
[if data!=correct]
Error Message
[else]
Authentication

Dashboard()

Display Dashboard

Figure 4.5 Sequence diagram for login

Automated Recruitment System 22


Chapter04 Project Design

4.5.1 Sequence Diagram For API call:

:HR :System :API call :Data :Data


Cleaning Acquisition

uploadCvs()

uploaded call()

acknowledge

Cleanup()

acknowledge

readdata ()

acknowledge

Figure 4.5.1 Sequence diagram for API call

Automated Recruitment System 23


Chapter04 Project Design
4.5.2 Sequence Diagram For Ranking

:HR :System :Extracting :Semantic :Ranking


Key phrases matching

extraxtskills()

extracted

Match similarity()

Matching Done

Score()

Display result
Logout()
done

Figure 4.5.2 Sequence diagram for Ranking

Automated Recruitment System 24


Chapter04 Project Design

4.6. Flow chart:

Start Login

Authentication Error
message
check No

Yes

Upload
Cvs
Error message
Error message
No No
Add job Upload
Description Resume
Yes Yes

API call

Extract Key
phrases

Semantic
matching

Ranking

Display
Result Logout End

Figure 4.6 Flow Chart

Automated Recruitment System 25


CHAPTER 05
IMPLEMENTATION
Chapter05 Implementation

5. IMPLEMENTATION
The best technique to cover this chapter includes description of tools and languages and
pseudo code used to develop this project. The pseudo codes have been classified as
function, non-function, back-end modules and database codes for better distinction to the
reader.

5.1 TOOLS AND LANGUAGES:


Selection of tools assumes a crucial part in building up an application. Following are the
tools used for proposed system development:
Front End GUI will be done in HTML5, CSS3, bootstrap.
Middleware: PHP (Hypertext Preprocessor) and Python
Back End Database used will be MySQL
Web Browsers: Google Chrome, Internet explorer etc.
Major Tools: Sublime text, Anaconda Navigator (launched Jupyter Notebook).
5.1.1 Front End GUI:
5.1.1.1 HTML5:
HTML5 is a programming language whose abbreviation stands for Hyper Text Markup
Language. It is a system that permits the change of the appearance of web pages, as well
as Making enhancements to their appearance. It also used to structure and present content
for the web.
5.1.1.2 CSS3:
CSS3 is the latest evolution of the cascading style sheets language and aims at extending
CSS2. It brings a lot of long-planned novelties, like rounded corners, shadows, gradients,
transitions or animations, as well as new layouts like multi-columns, flexible box or grid
layouts. Experimental parts are vendor prefixed and should either be avoided in
production environments or used with extreme caution as both their syntax and semantics
can change in the future.
5.1.1.3 Bootstrap:

Bootstrap is a framework to help you design websites faster and easier. It includes HTML
and CSS based design templates for typography, forms, buttons, tables, navigation,
modals, image carousels, etc. It also gives you support for JavaScript plugins.

Automated Recruitment System 27


Chapter05 Implementation

5.1.2. Middleware:

5.1.2.1 PHP:
PHP is a server-side scripting language. That is used to develop Static websites or Dynamic

Websites or Web applications. PHP stands for Hypertext Pre-processor, that earlier stood
for Personal Home Pages. PHP scripts can only be interpreted on a server that has PHP
installed. The client computers accessing the PHP scripts require a web browser only.
PHP files contains PHP tags and ends with the extension “. Php”.

5.1.2.2. Python:

Python is an interpreter, high-level, general-purpose programming language. Created by


Guido van Rossum and first released in 1991, Python's design philosophy emphasizes
code readability with its notable use of significant whitespace. Its language constructs and
object-oriented approach aim to help programmers write clear, logical code for small and
large-scale projects.
Python is dynamically typed, and garbage collected. It supports multiple programming
paradigms, including structured (particularly, procedural), object-oriented, and functional
programming. Python is often described as a "batteries included" language due to its
comprehensive standard library.

5.1.3. Back End:

5.1.3.1. MySQL:

MySQL creates a database for storing and manipulating data, defining the relationship of
each table. Clients can make requests by typing specific SQL statements on MySQL. The
server application will respond with the requested information and it will appear on the
clients’ side.

5.1.3.2 Web Browsers:


A web browser, or simply "browser," is an application used to access and view websites.
Common web browsers include Internet Explorer, Google Chrome. The primary function of a
web browser is to render HTML, the code used to design or "markup" webpages. Each time a
browser loads a web page, it processes the HTML, which may include text, links,

Automated Recruitment System 28


Chapter05 Implementation
and references to images and other items, such as cascading style sheets and JavaScript
functions. The browser processes these items, then renders them in the browser window.
While web browser technology has come a long way since Netscape, browser compatibility
issues remain a problem. Since browsers use different rendering engines, websites may not
appear the same across multiple browsers. In some cases, a website may work fine in one
Browser, but not function properly in another. Therefore, it is smart to install multiple
browsers on your computer so you can use an alternate browser if necessary.

5.2 Functional Requirements:


5.2.1 Pseudo code

{
Get email
Get password
If (email !=$email)
{
If (password!=$password)
Display Error message (“invalid data”);
back to login}
}
Go to dashboard
Click on button (“upload”)
Go to index.php
Enter description in given text area and Upload Cvs
Click on button (“upload”)
{
If (description == empty)
display Error message (“description is required”)
If (uploadCvs == empty)
display Error message(“must upload Cvs”)
}

Automated Recruitment System 29


Chapter05 Implementation
else
Get API call
Extract Key Phrases:
Define text extract function for docx, doc and
psf Get pdf_path
return: iterator of string of extracted text
Check isinstance
Check Pdf pages
return caching True
return extractable=True
Create object for resource manager
Create object for text converter
Create object for fake file handler
process page_interpreter.process_page(page)
Calling fake_file_handle
yield text
Close open handles
Close the converter
Close fake file handler
except PDFSyntaxError:
return error
Get number of pages
Count number of pages
Increment pages
Return pages
else:
return None
except PDFSyntaxError:
define doc_path,docx and pdf

Automated Recruitment System 30


Chapter05 Implementation
path to .docx,doc and pdf file to be
extracted return: string of extracted text
docx2txt.process(docx_path) return to temp
doctxt.process(docx_path) return to temp
pdftxt.process(docx_path) return to temp
split the temp and return to text except
KeyError:
return ' '
Get file_path, extension
Go to extract methods
Get Tokens from token.text
for token in nlp_text
read the data and append to skills list
If not token.is_stop
Data acquisition:
Check for one-gram bi-grams and tri-grams
Get token
Append in skillset
Data cleaning:
Read Word from pdf,doc,docx
Match with skilllist
Append to skillset
Remove extra words
Define sort candidates
Request for data
Requested data will save in ‘data’ variable
except:
Return error Message= "Some problem occurred in reading input data"

Automated Recruitment System 31


Chapter05 Implementation
Response = jsonify({"success":bool("false"), "error":"error in reading
input data"}
Raise InvalidUsage('Some problem occured in reading input
data') return response
split job description,name of candidate and cvs path
Result will store in these three variables JD,Cvs,names
Semantic matching:
Read nlp(JD) in doc1
Extract skills from doc1and store it in skill1
Take similarities variable initially empty
Start loop
Match skills with skill1
Use wns.word_similarity append to similarity
Ranking Resumes according to weight:
Weight words in similarity
{"Sorted Candidates" }
response = jsonify({"data":x, "success": bool("true"), "response":200,
"message":"candidates sorted successfully"})
return response
display result

Automated Recruitment System 32


Chapter 06
TESTING
Chapter06 Testing

The process of testing a software is essential to locate and correct errors, to analyze all
functionalities and to determine the correct output of the designed system. We have opted
the technique of using Test Cases to test our system’s correctness.

6.1. Roles for testing:


Roles in software testing totally depends upon the need of stakeholder of project. Large
companies have proper team with responsibilities to evaluate the given requirements.
Developers also conduct testing called unit testing. The following are roles involved in
testing.

 Software Tester

 Software Developer

 Configuration Manager

 Project Lead/ Manager

 End user

Roles may be change from company to company and their designations. The following
are some designation in software testing.
 Software Quality Assurance Engineer
 Analyst and Lead

6.2. Testing levels:


Testing levels are as follows:

6.2.1 Unit Testing:

This type of testing perfumed by developers before project is hand over to the testing
team, which formally execute test cases. Goal is to isolate each part of program and show
that individual’s part are corrects in terms of requirements.

6.2.2. Integration Testing:

Integration testing is defining as the testing of combined parts of an application to


determine if they function correctly. Integration testing can have done in two ways:
Bottom-up integration testing and Top-down integration testing.

Automated Recruitment System 37


Chapter06 Testing
6.2.3. System Testing:

Sub systems are integrated to make up the entire system. The testing process is concerned
with finding errors that result from unanticipated interactions between sub-systems and
system components. It is also concerned with validating that the system meets its
functional and non-functional requirements.

6.2.4. Acceptance Testing:

This is the final stage in the testing process before the system is accepted for operational use.
The system is tested with data supplied by the system procurer rather than simulated test data.
Acceptance testing may reveal errors and omissions in the system requirements definition
because the real data exercises the system in different ways from the test data. It

May also reveal requirements problems where the system's facilities do not really meet
the user's needs or the system's performance is not acceptable.

Test Cases:
A set of conditions such as pre-requisites and post conditions to specify a scenario for the
successful completion of a task. Test cases provide variables which determine whether a
system under test satisfies requirements and determines its correctness.

Test Case 01: Login by HR in Automated Recruitment system:

Test Case ID: TC-001


Functionality to be Tested: Test successful
login
Actor: HR
Pre-Conditions: Page should be
loaded
Normal Flow Expected Results Actual Results (Pass/Fail)
User click on Login button, if Successfully login If email and password matches,
email and password is correct, then login otherwise show error
he will successfully move on. message.

Alternative Flow Expected Results Actual Results (Pass/Fail)

Automated Recruitment System 38


Chapter06 Testing
HR enter incorrect Id and Loginwill be Fail
password, login will fail. unsuccessful and
error message will
be shown.
Date 15 OCT,2020
Tester Name: Natasha Saeed

Table 6.1 Test Case for Login

Test Case 02: Authentication

Test Case ID: TC-002


Functionality to be Correct data enter
Tested:
Actor: System
Pre-Conditions: Pages should be loaded

Normal Flow Expected Results Actual Results (Pass/Fail)


Check email and Authentication successful If email and password matches,
password in database then login otherwise show error
whether it is same or not. message.

Alternative Flow Expected Results Actual Results (Pass/Fail)

Email and password Email and password are Fail


do not match. notmatchingerror
message will be shown.
Date 15 OCT,2020

Tester Name: Natasha Saeed

Table 6.2 Test Case for Authentication

Test Case 03: UploadCv


Test Case ID: TC-003
Functionality to be Successfully upload resumes
Tested:
Actor: System
Pre-Conditions: HR must login

Normal Flow Expected Results Actual Results (Pass/Fail)

Automated Recruitment System 39


Chapter06 Testing
1. Check email and Authentication successful If email and password
password in database matches, then login
whether it is same or not. otherwise show error
message.
Alternative Flow Expected Results Actual Results (Pass/Fail)

1. email and password do Email and password are not Fail


not match matching error message will
be shown.
Date 15 OCT,2020
Tester Name: Natasha Saeed

Table 6.3 Test Case for UploadCv

Test case 04: API call


Test Case ID: TC-004
Functionality to be Tested: Two programs connection.
Actor: System
Pre-Conditions: Must upload resumes and
add job description.
Normal Flow Expected Results Actual Results (Pass/Fail)
Built connection between Successful built If connection successfully
Php and python code. connection. built, then python code will
run.

Alternative Flow Expected Results Actual Results (Pass/Fail)

API calling error Error Fail

Date 15 OCT,2020
Tester Name: Natasha Saeed

Table 6.4 Test Case for API call

Test case 05: Data Cleaning


Test Case ID: TC-005
Functionality to be Successfully remove unnecessary
Tested: text from. Docx/.Doc or .Pdf
Actor: System
Pre-Conditions: API call successfully and
description and resumes must be
added.
Automated Recruitment System 40
Chapter06 Testing
Normal Flow Expected Results Actual Results
(Pass/Fail)
1. Read text from pdf. Successfully cleanup done pass
2. Read no. of pages
3. Clean data

Alternative Flow Expected Results Actual Results


(Pass/Fail)
1. No data cleaning done Error message will be shown. Fail
properly but it will not affect
our output because our main
concern is with skills.
Date 15 OCT,2020
Tester Name: Natasha Saeed

Table 6.5 Test Case for Data Cleaning

Test case 06: Extract key phrases


Test Case ID: TC-006
Functionality to be Successfully extracted text from
Tested: .Docx/.Doc or .Pdf
Actor: System
Pre-Conditions: API call successfully and
description and resumes must be
added.
Normal Flow Expected Results Actual Results
(Pass/Fail)
4. Read text from pdf. Extraction successfully done If skills extracted
5. Read no. of pages from pdf then it will
6. Extract skills match with job
description’s skills.
Alternative Flow Expected Results Actual Results
(Pass/Fail)
1. Extraction not done Error message will be shown. Fail
properly.

Date 15 OCT,2020
Tester Name: Natasha Saeed

Table 6.6 Test Case for Extract Key Phrases

Test case 07: Semantic matching


Test Case ID: TC-007

Automated Recruitment System 41


Chapter06 Testing
Functionality to be Tested: Matching job description
with extracted key words.

Actor: System
Pre-Conditions: Extraction must be done,
and resumes must be
uploaded
Normal Flow Expected Results Actual Results (Pass/Fail)
Check whether job Successful matched and If match, then ranking
description that we provided top one’s resume receive. process will continue. If not
is matching with skills same list of resumes will
mentioned in resumes return.
Alternative Flow Expected Results Actual Results (Pass/Fail)

Not matching Same list will return Fail


Date 15 OCT,2020
Tester Name: Natasha Saeed

Table 6.7 Test Case for Semantic Matching

Test case 08: Data Acquisition:


Test Case ID: TC-008
Functionality to be Tested: Weight the extracted skills,
then it will help in ranking
the data.

Actor: System
Pre-Conditions: Semantic matching done
properly skill by skill.
Normal Flow Expected Results Actual Results (Pass/Fail)
Weight the skills in one Successful done. pass
gram, bigram, trigram etc.

Alternative Flow Expected Results Actual Results (Pass/Fail)

Error in semantic matching Not sort resumes Fail


and resulted data do not successfully according to
weight properly. data.
Date 15 OCT,2020
Tester Name: Natasha Saeed

Table 6.8 Test Case for Data Acquisition

Automated Recruitment System 42


Chapter06 Testing
Test case 09: Ranking
Test Case ID: TC-009
Functionality to be Tested: Top five resumes list return.
Actor: System
Pre-Conditions: Semantic matching done
properly skill by skill.
Normal Flow Expected Results Actual Results (Pass/Fail)
Display of a list of top 5 Successful display result. pass
resumes

Alternative Flow Expected Results Actual Results (Pass/Fail)

Error in semantic matching Not sort resumes Fail


and resulted list do not show. successfully according to
data.
Date 15 OCT,2020
Tester Name: Natasha Saeed
Table 6.9 Test Case for Ranking

Automated Recruitment System 43


Chapter 07
CONCLUSION
Chapter07 Conclusion

Summary:

The journey of my project has stumbled with technical obstacles and circumstances due to
pandemic. The uncertainty, apprehensions and prevailing conditions had overpowered me
during my work cycle. Fortunately, as things resumed it was due to my teachers that I
gained I strength back. During the entire project I was supported academically and
morally, due to which I was able to produce the crux of learning from my four-year
degree program. I am proud to complete my project in time and feel confident with my
present skill set. Additionally, I hope to benefit from my final year project in my future
endeavors. My work was to bring out an application that provide ease to professionals
who have high burden of hiring someone for a specific post. They want to get rid of
reviewing each resume and it takes lots of time. The application is particularly designed
in such a way that it will help HR for selecting candidates and will reduce his workload
and he get best results from this system in the form of top-ranking candidates list.

Automated Recruitment System 43


USER MANUAL
APPENDIX A
Appendix A User manual
APPENDIX A

Figure 8.1 Login

Figure 8.2 Dashboard

Automated Recruitment System 44


Appendix A User manual

Figure 8.3 Project Motivation

Figure 8.4 About System UI

Figure 8.4.1 About System UI

Automated Recruitment System 45


Appendix A User manual

Figure 8.4.2 About System UI

Figure 8.4.3 About System UI

Automated Recruitment System 46


Appendix A User manual

Figure 8.5 Upload Resume and add Job Description

Figure 8.6 Error in uploading Resume and add job description

Automated Recruitment System 47


Appendix A User manual

Figure 8.7 Result

Note:

Every interface has already been described in detail in chapters throughout the document.
How to access the website, how to upload resumes and system will display result
everything has already been discussed.

Automated Recruitment System 48


Appendix B References

APPENDIX B
REFERENCES
Appendix B References

APPENDIX B

REFERENCES

1. Bowne-Anderson, H. (b.a.). datacamp. Retrieved from datacamp.com:


<https://www.datacamp.com/courses/intro-to-python-for-data-sciencez>
2. Celina Sołek-Borowska, M. W. (, 2018 DOI: 10.2478/jec-2018-0017). NEW
TECHNOLOGIES IN THE RECRUITMENT PROCESS. 31. Retrieved from
<https://www.researchgate.net/publication/330255138_New_Technologies_in_the_Recru
itment_Process>

3. Stack Overflow Community. (s.f.). Stack Overflow. Retrieved from <Stack Overflow:
https://stackoverflow.com/questions/52739323/python-data-cleaning>
4. Vidhya. (n.d.). introduction-text-summarization-textrank. Retrieved from <Analytics
Vidhya:https://www.analyticsvidhya.com/blog/2018/11/introduction-text-summarization-
textrank-python/>
5. AI, P. G. (2014). semanticscholar . Retrieved from
semanticscholar : <https://www.semanticscholar.org>

Automated Recruitment System 50

You might also like