Resume Analyser Application using NLP Python with Code | Full Responsive Web Application

00:50:23
https://www.youtube.com/watch?v=hqu5EYMLCUw

Summary

TLDRThe video tutorial by Programmer Spidey introduces a 'Smart Resume Analyzer' project which was developed as part of a semester project. The analyzer makes use of Natural Language Processing (NLP) to assess resumes and suggest suitable skills and courses for users to improve on. It simulates the functionality of modern resume-screening software used by companies to ease the hiring process by quickly filtering through numerous applications. The video covers the full working of the project, how it parses resumes to extract essential details like personal information, skills, and experience levels, and how it provides recommendations for skill improvements and courses. The creator further details the technical components, from Python libraries used to explanation of the project code and logic, offering a comprehensive guide that viewers can replicate or modify with the source code available on GitHub.

Takeaways

  • ๐Ÿค– The project uses NLP to analyze and enhance resume content.
  • ๐Ÿ“‘ Only PDF resumes are currently supported for analysis.
  • ๐Ÿ” Key phrases in the resume help determine relevant skills and fields.
  • ๐Ÿ The project is built using Python and Streamlit framework.
  • ๐Ÿ”— Source code will be shared on GitHub for community collaboration.
  • ๐ŸŽ“ Resume assessment includes skill and course recommendations.
  • ๐Ÿ’ผ Useful for job seekers to align resumes with industry standards.
  • ๐Ÿ” Demonstrates modern techniques used in company resume screening.
  • ๐Ÿ“Š Offers a tool to compare different resume structures and content.
  • ๐Ÿ”ง Encourages viewers to adapt and improve the system via GitHub.

Timeline

  • 00:00:00 - 00:05:00

    The video introduces a Smart Resume Analyzer project, which automates resume analysis using NLP to shortlist candidates, saving companies time compared to manual resume reading. The project's code will be shared on GitHub.

  • 00:05:00 - 00:10:00

    The software uses NLP to assess resumes, extracting key details like skills, and uses a sample resume to demonstrate its functionality. Itโ€™s tailored for IT resumes, and the screening is demonstrated using sample downloaded resumes.

  • 00:10:00 - 00:15:00

    The analyzer extracts key information like name, email, phone number, and assesses the resume level as intermediate. It recommends skills for Android development jobs using NLP. There are minor software bugs noted.

  • 00:15:00 - 00:20:00

    The software suggests related courses based on the resume assessment and provides tips and suggestions for enhancing the resume. It calculates a resume writing score and suggests improvements to the resume format.

  • 00:20:00 - 00:25:00

    The video explains how the backend of the system works, including PDF extraction and parsing to identify skills using defined categories. The project was divided into modules to facilitate development.

  • 00:25:00 - 00:30:00

    The project employs libraries like Pyresparser and PDFMiner to extract data from resumes and convert PDF content into text. The importance of reading documentation for libraries before use is emphasized.

  • 00:30:00 - 00:35:00

    Resume parsing involves converting resume text using PDFMiner and categorizing content into identifiable sections such as skills and experience. It temporarily stores extracted data for further analysis.

  • 00:35:00 - 00:40:00

    Machine learning models predict user skills and job matches. It recognizes keywords linked to specific fields, providing course and skill recommendations based on identified sectors like data science or web development.

  • 00:40:00 - 00:45:00

    A demonstration shows course recommendations for different job fields like Android and data science. Courses provided are predefined and output through a series of logical checks using the resume data.

  • 00:45:00 - 00:50:23

    Admin functionality includes analyzing user data, generating reports, and visualizing data in charts. The software's utility in assessing various levels of user expertise based on uploaded resumes is discussed.

Show more

Mind Map

Video Q&A

  • What is the Smart Resume Analyzer?

    It is a project that uses NLP to analyze resumes and provide recommendations for skills and courses.

  • Why use NLP for analyzing resumes?

    NLP is used to extract and analyze text data from resumes, which helps in determining the most relevant skills and experiences.

  • What can the Smart Resume Analyzer detect from a resume?

    It can detect the user's name, email, phone number, candidate level (e.g., fresher, intermediate, experienced), skills, and recommend further skills and courses.

  • How does the project recommend skills and courses?

    The project matches keywords in the resume with predefined categories like data science, web development, and recommends based on matching fields.

  • What framework is used for the project?

    The project is developed using Streamlit and Python.

  • What resume formats are supported?

    Currently, the system supports only PDF resumes.

  • What software libraries are used in the project?

    The project uses libraries like Streamlit, Pandas, PyPDF2, PyPDFMiner, and Pyresumeeparser.

  • Is the project available for public use or modification?

    Yes, the code will be available on the creatorโ€™s GitHub for others to use and modify.

View more video summaries

Get instant access to free YouTube video summaries powered by AI!
Subtitles
en
Auto Scroll:
  • 00:00:01
    welcome back programmer spidey is back
  • 00:00:03
    with one another video in previous video
  • 00:00:05
    we have seen about a movie
  • 00:00:06
    recommendation system using streamlate
  • 00:00:09
    now in this video we are going to learn
  • 00:00:10
    about smart resume analyzer yes
  • 00:00:13
    this project was about uh
  • 00:00:15
    my seventh semester project and now
  • 00:00:17
    after the end of all the semester and
  • 00:00:19
    formalities that i'm going to explain
  • 00:00:21
    this project and reveal the code into my
  • 00:00:23
    github so don't worry guys you will find
  • 00:00:25
    the code link into the github section
  • 00:00:28
    sorry in description
  • 00:00:30
    okay so now what is this project is
  • 00:00:32
    about so this project is about a smart
  • 00:00:35
    resume analyzer guys if you are totally
  • 00:00:37
    new to my
  • 00:00:39
    uh youtube channel then just visit the
  • 00:00:41
    playlist section you will find a lots of
  • 00:00:42
    videos regarding python machine learning
  • 00:00:44
    opencv email processing nlp there are
  • 00:00:47
    lots of things available in to my
  • 00:00:49
    channel so you can just have a look if
  • 00:00:51
    you like then subscribe our machine
  • 00:00:52
    learning hub youtube channel
  • 00:00:54
    okay so now let's talk about
  • 00:00:56
    uh this project this project is about
  • 00:00:58
    smart resume analyzer so what is resume
  • 00:01:01
    analyzer so if you have
  • 00:01:04
    obviously if you are
  • 00:01:05
    if you are like have you sent any resume
  • 00:01:08
    to any companies like
  • 00:01:10
    so basically what companies are
  • 00:01:11
    currently doing they are using some
  • 00:01:13
    softwares resume screening software
  • 00:01:15
    basically this
  • 00:01:16
    uh
  • 00:01:17
    around five or ten years back what they
  • 00:01:19
    were doing is like
  • 00:01:20
    uh getting the 1000 resume read each and
  • 00:01:24
    every person's resume by one by one it
  • 00:01:26
    is time consuming process right so
  • 00:01:28
    nowadays this hacker rank hacker or
  • 00:01:30
    there are many companies that are
  • 00:01:32
    providing resume screening softwares so
  • 00:01:34
    basically they will take a 1000 resume
  • 00:01:36
    now that software will analyze the best
  • 00:01:39
    resume of the candidate
  • 00:01:41
    but now uh just the question is how they
  • 00:01:44
    can analyze the best resume
  • 00:01:46
    the answer is nlp natural language
  • 00:01:48
    processing what our resume is containing
  • 00:01:51
    containing our resume is containing some
  • 00:01:53
    text some words and based on that words
  • 00:01:56
    uh that
  • 00:01:57
    smart screening software will consider
  • 00:02:00
    the best resume from the thousand resume
  • 00:02:02
    right so basically they will shortlist
  • 00:02:04
    100 200 the best candidates right and
  • 00:02:07
    based on resume
  • 00:02:09
    so nowadays you're like lots of people
  • 00:02:11
    telling yeah your resume resumes should
  • 00:02:13
    be in proper manner yes that's the truth
  • 00:02:15
    because no one is going to sing your
  • 00:02:17
    resume right
  • 00:02:19
    they will use the screening software
  • 00:02:20
    right
  • 00:02:22
    okay so now let's see how it is going to
  • 00:02:25
    work okay so i'm just i have downloaded
  • 00:02:27
    some of the samples because i am not
  • 00:02:29
    going to include my resume or
  • 00:02:31
    during that uh making of this project i
  • 00:02:33
    have tried my friend's resume and it is
  • 00:02:35
    working fine on almost each and every
  • 00:02:37
    resume but here now i am not going to
  • 00:02:39
    use any of my friends or my resume also
  • 00:02:42
    because my almost each and every resume
  • 00:02:44
    have every contact details and all that
  • 00:02:46
    i don't want to reveal in any video so
  • 00:02:48
    that currently i'm using
  • 00:02:50
    uh down you downloaded
  • 00:02:52
    like sample resume from the internet
  • 00:02:54
    okay
  • 00:02:56
    so now basically this uh software is
  • 00:02:58
    supporting only currently it is
  • 00:03:00
    supporting only for the in uh it people
  • 00:03:03
    like
  • 00:03:04
    what it will give you just let me upload
  • 00:03:06
    any resume post
  • 00:03:08
    now what it will do
  • 00:03:10
    it will show you the resume post
  • 00:03:12
    just understand as a user your user you
  • 00:03:15
    are uploading your
  • 00:03:16
    resume right
  • 00:03:18
    okay
  • 00:03:19
    so now there are some minor books here
  • 00:03:22
    also like uh so in most of the format it
  • 00:03:24
    is working fine it will show you your
  • 00:03:26
    name but this is a sample resume and you
  • 00:03:28
    can see the this one is looking like a
  • 00:03:31
    name and the so this is a bit confusing
  • 00:03:33
    here
  • 00:03:34
    so that i will explain all the things in
  • 00:03:35
    later but just assume that this is this
  • 00:03:38
    will show you a name like if your name
  • 00:03:40
    is crucial and you are uploading crucial
  • 00:03:41
    resume it will show you hello kushal and
  • 00:03:44
    the same thing it will show you here
  • 00:03:45
    like hello like name email address phone
  • 00:03:48
    number also it is supporting the phone
  • 00:03:50
    number also
  • 00:03:51
    that you have included in your resume
  • 00:03:54
    now based on our nlp analysis uh it is
  • 00:03:57
    saying you are intermediate level
  • 00:03:59
    now skills recommendation like then it
  • 00:04:01
    will find the skills that you have
  • 00:04:04
    right the user have which kind of the
  • 00:04:06
    skill so our uh our library that is
  • 00:04:10
    already that i have included in project
  • 00:04:11
    don't worry i will tell each in
  • 00:04:12
    everything later so this will
  • 00:04:14
    automatically fetch this uh skill set
  • 00:04:17
    from the this resume right
  • 00:04:21
    right
  • 00:04:22
    and that you can skills that you have so
  • 00:04:24
    basically it is the extracted skill from
  • 00:04:26
    the resume right
  • 00:04:28
    now you can see on our uh like our
  • 00:04:31
    analysis say you are looking for android
  • 00:04:33
    app development jobs
  • 00:04:35
    but how
  • 00:04:37
    the android app means how they are good
  • 00:04:39
    like this prediction don't worry i will
  • 00:04:41
    tell you each and everything later now
  • 00:04:43
    skill recommendation if you are going to
  • 00:04:45
    the android uh field then there is a
  • 00:04:48
    this is this is a recommendation like
  • 00:04:49
    android android development flutter
  • 00:04:51
    kotlin
  • 00:04:52
    uh xml java kiwi git git gtc like
  • 00:04:56
    everywhere sdk sqlite so these all are
  • 00:04:58
    the recommended skills
  • 00:05:00
    that is required by the android
  • 00:05:02
    developer right
  • 00:05:04
    now courses recommendation this is the
  • 00:05:06
    amazing thing like it will show you
  • 00:05:08
    around 10 courses you can see if i'm
  • 00:05:10
    going to click on this you can see
  • 00:05:12
    associate android developer course
  • 00:05:13
    flutter
  • 00:05:15
    android basic by google now resume tips
  • 00:05:17
    and trick like awesome you added
  • 00:05:19
    objective
  • 00:05:20
    according to our recommendation please a
  • 00:05:21
    declaration if so basically it is
  • 00:05:23
    scanning all the things related to our
  • 00:05:25
    resume awesome you added hobbies
  • 00:05:27
    according to our recommendation please
  • 00:05:29
    add achievements according to
  • 00:05:31
    recommendation please add a project
  • 00:05:33
    so it will automatically
  • 00:05:35
    find us
  • 00:05:36
    some of the resume pattern so if you
  • 00:05:38
    don't know what is your resume pattern
  • 00:05:39
    like then your resume should have the
  • 00:05:42
    declaration hobbies
  • 00:05:44
    achievements projects if it is not
  • 00:05:46
    available in your project then it will
  • 00:05:48
    automatically lower down your score you
  • 00:05:50
    can see your resume writing score is 40.
  • 00:05:53
    now you can see note this based on your
  • 00:05:55
    content that you have ignore it just
  • 00:05:57
    this is a simple warning message that i
  • 00:05:59
    have printed now bonus video it will
  • 00:06:01
    show you the bonus video also like
  • 00:06:02
    resume tips for jobs and this is the
  • 00:06:04
    title of the video and i just embed one
  • 00:06:07
    video here regarding the resume writing
  • 00:06:09
    tips
  • 00:06:10
    now the second video is about bonus
  • 00:06:12
    video for interview tips so this is the
  • 00:06:14
    second video
  • 00:06:16
    this is all i'm also embedded into my
  • 00:06:18
    system
  • 00:06:19
    here so this is the simple smart resume
  • 00:06:22
    analyzer software it will analyze all
  • 00:06:24
    whole resume and it it is for working
  • 00:06:27
    fine on almost each and every format
  • 00:06:29
    that i have you know gathered my lots of
  • 00:06:31
    friends resume
  • 00:06:32
    and almost it is working fine on each
  • 00:06:34
    and every resume right
  • 00:06:37
    so this is like a little bit a different
  • 00:06:39
    project than another because in other
  • 00:06:40
    words we are getting a 100 percent we
  • 00:06:42
    are expecting a 90 95 percent 100
  • 00:06:46
    accuracy but this project is about to
  • 00:06:48
    like you can see you can do a little bit
  • 00:06:50
    research even you can improve this
  • 00:06:52
    project rather than my version because i
  • 00:06:54
    have done some minor changes here right
  • 00:06:56
    minor changes means i've done so many
  • 00:06:58
    things here like but you can improve the
  • 00:07:01
    this version also right i'm going going
  • 00:07:03
    to give this code so you can improve it
  • 00:07:05
    and you can just update me that code
  • 00:07:08
    into my github so you can just give a
  • 00:07:10
    pull request if any update is there in
  • 00:07:12
    my code right
  • 00:07:14
    so how this all are thing working this
  • 00:07:17
    is the actually we need to understand
  • 00:07:19
    step by step right
  • 00:07:21
    just here just i have show you the like
  • 00:07:23
    how it is working
  • 00:07:24
    now let's see how it is working
  • 00:07:27
    so before starting the project what i
  • 00:07:29
    have done is i just divided those things
  • 00:07:32
    into the modules that always i am like
  • 00:07:35
    making like divide and conquer if you
  • 00:07:36
    know merge sort then obviously you will
  • 00:07:38
    know this term divided so basically i am
  • 00:07:41
    dividing my task and at then i'm get i
  • 00:07:43
    will gather all the things in my project
  • 00:07:45
    is ready
  • 00:07:46
    in movement right
  • 00:07:49
    so first of all task is what i need to
  • 00:07:52
    get the resume
  • 00:07:53
    from the user so you you can use any uh
  • 00:07:58
    framework like you can use jungle flask
  • 00:08:01
    or streamlit so i just i want to be a
  • 00:08:03
    pro head traveler so this is my collared
  • 00:08:05
    project so that's why i chosen to trim
  • 00:08:07
    it right
  • 00:08:08
    so i am using this streamline from box
  • 00:08:11
    it is bit easy to get a resume from the
  • 00:08:14
    user
  • 00:08:15
    now second task is what save the resume
  • 00:08:18
    into system
  • 00:08:24
    third task is what
  • 00:08:26
    currently my system is supporting the
  • 00:08:27
    only pdf resume right obviously your
  • 00:08:30
    resume should have in pdf
  • 00:08:32
    now that this is most important task
  • 00:08:35
    pdf extracting
  • 00:08:42
    so after that pdf extracting now what i
  • 00:08:45
    need to do resume parsing
  • 00:08:47
    because i need to analyze all each and
  • 00:08:50
    everything now
  • 00:08:52
    different skills
  • 00:08:54
    like
  • 00:08:55
    this uh this project is
  • 00:08:58
    means uh going to give you the like four
  • 00:09:00
    four or five recommendation like it will
  • 00:09:03
    give you the data science android uix
  • 00:09:06
    and web development jobs kind of the
  • 00:09:07
    recommendation
  • 00:09:09
    because i've just given some of the
  • 00:09:11
    limited things here
  • 00:09:12
    basically all the things are running
  • 00:09:14
    with the nlp right
  • 00:09:16
    it might be confusing at this moment but
  • 00:09:18
    end of the video you will get a 100
  • 00:09:21
    percent idea that how this project is
  • 00:09:22
    working
  • 00:09:24
    now uh define courses
  • 00:09:28
    and videos
  • 00:09:34
    i don't know why i'm making too much
  • 00:09:36
    spelling mistake today uh the reason is
  • 00:09:38
    that i'm currently in windows and now
  • 00:09:41
    windows is looking a bit weird because
  • 00:09:43
    i'm used to with the ubuntu but because
  • 00:09:45
    this project was located in my windows
  • 00:09:47
    so i just need to come to boot into this
  • 00:09:50
    windows yeah currently actually i'm
  • 00:09:51
    doing a
  • 00:09:53
    job and the company is required to have
  • 00:09:56
    the ubuntu into laptop
  • 00:09:59
    okay so now the uh
  • 00:10:01
    now implement each and every step one by
  • 00:10:04
    one so basically that i am going to
  • 00:10:05
    explain this code full
  • 00:10:07
    okay so now some of the things that i am
  • 00:10:09
    going to use which is trimlet pandas
  • 00:10:12
    base64 time
  • 00:10:14
    now this is the most amazing thing which
  • 00:10:16
    is
  • 00:10:16
    pi arrays person
  • 00:10:19
    and now resume a parser so what i have
  • 00:10:22
    done is i just installed one library
  • 00:10:25
    called piper by resume parser you can
  • 00:10:28
    say like this
  • 00:10:30
    now if you are going to search with this
  • 00:10:32
    so this is the amazing library
  • 00:10:36
    so now uh actually at the first half i
  • 00:10:39
    think that i can create a resume parser
  • 00:10:41
    code by myself right
  • 00:10:44
    but after so many trying errors i did
  • 00:10:46
    not get that that much of the accuracy
  • 00:10:48
    so i use this reading made library which
  • 00:10:51
    is called fires parser simple resume
  • 00:10:53
    parser used for extracting information
  • 00:10:56
    so basically this will automatically
  • 00:10:58
    give you the
  • 00:10:59
    name
  • 00:11:00
    extra email mobile numbers
  • 00:11:03
    skills total experience quality name
  • 00:11:05
    degree designation all the things that
  • 00:11:07
    it will give you
  • 00:11:09
    right installation is just like peep
  • 00:11:11
    install and this library name but before
  • 00:11:14
    that you should have the download all
  • 00:11:16
    the things like nlp nlp operation you
  • 00:11:19
    should have this pc and analytical
  • 00:11:20
    library installed
  • 00:11:22
    right
  • 00:11:25
    now how to pass the data basically you
  • 00:11:27
    just need to pass the your pdf file here
  • 00:11:31
    and now it will give you the result like
  • 00:11:33
    this caller name company name degree so
  • 00:11:36
    this is these all are the keys
  • 00:11:38
    for the dictionary email mobile number
  • 00:11:40
    so guys uh before starting with any
  • 00:11:43
    library you just need to read the
  • 00:11:44
    documentation because this documentation
  • 00:11:47
    is very helpful and that with this
  • 00:11:48
    documentation i have created my project
  • 00:11:50
    right
  • 00:11:53
    right
  • 00:11:54
    so that's how this pi resume parcel is
  • 00:11:57
    working
  • 00:11:58
    now but okay so i have just uh parsed
  • 00:12:00
    the resume right
  • 00:12:02
    but now there are so many things that we
  • 00:12:03
    need to implement here
  • 00:12:05
    now i need to extract the text from the
  • 00:12:07
    resume basically this pi parcel will
  • 00:12:09
    help me to get that data right
  • 00:12:12
    but how i should get the text from the
  • 00:12:15
    resume so this is the second question so
  • 00:12:17
    basically
  • 00:12:18
    one library called pdf miner pdf miner
  • 00:12:20
    is very famous for extracting the pdf
  • 00:12:22
    using python so this is the this is the
  • 00:12:25
    library that i am using
  • 00:12:27
    to
  • 00:12:28
    get the text from the user uploaded pdf
  • 00:12:31
    now i o and random
  • 00:12:34
    and then streamlit text basically i
  • 00:12:36
    random like inbuilt library that i'm
  • 00:12:38
    using io to just
  • 00:12:40
    uh save the images which is uploaded by
  • 00:12:42
    the user
  • 00:12:43
    right
  • 00:12:44
    then extremely text that i will explain
  • 00:12:46
    you later
  • 00:12:47
    pl is always common library like python
  • 00:12:50
    image library by mysql yes i'm using
  • 00:12:52
    database into this project so make sure
  • 00:12:55
    uh your apache and mysql is running now
  • 00:12:58
    from courses basically courses dot py
  • 00:13:00
    that i have created i will explain it
  • 00:13:02
    later
  • 00:13:03
    pfe pfe is also
  • 00:13:05
    related to youtube related tasks so i
  • 00:13:07
    will explain it later totally floatless
  • 00:13:10
    for the admin module yes
  • 00:13:12
    this project have two models let me show
  • 00:13:14
    you
  • 00:13:15
    normal user and admin
  • 00:13:17
    so i admin i will show you later
  • 00:13:21
    okay so this video is might be going to
  • 00:13:23
    longer than expected
  • 00:13:25
    so guys forgive me
  • 00:13:30
    okay so now ignore all this function
  • 00:13:32
    this function is not useful at this
  • 00:13:34
    moment but i will explain each and every
  • 00:13:36
    function after that right
  • 00:13:39
    okay so now first of all i need to
  • 00:13:41
    connection make a connection with my
  • 00:13:43
    database so pi mysql dot connect
  • 00:13:47
    host is localhost my root user is root
  • 00:13:49
    password is nothing and db so make sure
  • 00:13:52
    you should create a sradb into your
  • 00:13:54
    project
  • 00:13:55
    that is already i have created let me
  • 00:13:58
    show you
  • 00:14:00
    so you can see this is the sra
  • 00:14:02
    so sra database is already created right
  • 00:14:07
    now okay
  • 00:14:09
    now st dot page title config so
  • 00:14:13
    basically this is the paid title config
  • 00:14:14
    like my project name is what
  • 00:14:16
    uh smart resume analyzer so you can see
  • 00:14:19
    this is the title here on left panel
  • 00:14:21
    like smart resume analyzer an icon is
  • 00:14:24
    that i have already defined an sr logo
  • 00:14:26
    dot i say you can see this is the icon
  • 00:14:28
    so basically i'm configuring my website
  • 00:14:31
    now def run st road title first of all i
  • 00:14:34
    need to have this title in between smart
  • 00:14:36
    resume analyzer
  • 00:14:38
    activities is like two users available
  • 00:14:40
    here in normal user admin
  • 00:14:43
    make sure choice
  • 00:14:45
    is located into sidebar so
  • 00:14:47
    ht.sitebar.selectbox
  • 00:14:50
    choose uh among the given option
  • 00:14:53
    so already this message is printed here
  • 00:14:56
    now image dot open basically in this
  • 00:15:00
    part i should have the
  • 00:15:04
    logo of my project
  • 00:15:11
    okay
  • 00:15:16
    okay sorry just i got in uh call in
  • 00:15:18
    between video recording okay so now this
  • 00:15:21
    is the that logo that i am uh
  • 00:15:24
    just displaying here now i should have
  • 00:15:26
    one image uploader
  • 00:15:29
    okay so just i'm first of all i'm just
  • 00:15:32
    showing the logo okay
  • 00:15:39
    now uh creating the database so
  • 00:15:41
    basically i i just estimate that you
  • 00:15:44
    guys are all aware with the basic sql
  • 00:15:46
    queries like create database if not
  • 00:15:48
    exist then sra will be our database
  • 00:15:52
    name right
  • 00:15:54
    so it will create a database of sra
  • 00:15:58
    uh you can see here
  • 00:16:00
    okay so database is already created
  • 00:16:02
    now it will create a one table which is
  • 00:16:05
    called user underscore data so this is
  • 00:16:07
    basically this when you are going to
  • 00:16:09
    upload the resume and then what it will
  • 00:16:11
    do it will save the it will
  • 00:16:13
    automatically save the all the basic
  • 00:16:15
    information of the user so basically we
  • 00:16:17
    can create analysis of it
  • 00:16:20
    so this is the create table query like
  • 00:16:22
    create table if it is not exit time name
  • 00:16:24
    is user data that data that i am taking
  • 00:16:26
    is id name email id resume score time
  • 00:16:29
    stamp page number i mean paid number
  • 00:16:31
    means how many pages of resume it is
  • 00:16:34
    predicted feel like recommendation that
  • 00:16:37
    is given by our system user level it is
  • 00:16:40
    pressure experience or what
  • 00:16:42
    actual skill the skills that is already
  • 00:16:44
    have by the user recommended skills that
  • 00:16:46
    is generated by our system recommended
  • 00:16:48
    course that is our generated by system
  • 00:16:49
    now primary key is id
  • 00:16:52
    right
  • 00:16:54
    now if choice is equal to normal user
  • 00:16:56
    like if i'm
  • 00:16:58
    choicing this is a normal user then i
  • 00:17:00
    should get a one file uploader that is
  • 00:17:02
    already defined here like pdf file
  • 00:17:04
    status file uploaded choose your resume
  • 00:17:06
    and type only allowed is pdf
  • 00:17:09
    okay
  • 00:17:10
    now if i am uploading pdf like if pdf
  • 00:17:13
    file is not none so user is uploading
  • 00:17:15
    any pdf then automatically what it will
  • 00:17:17
    do
  • 00:17:18
    i just need to have one folder or full
  • 00:17:20
    folder upload resume so basically with
  • 00:17:23
    open after write video file dot get
  • 00:17:26
    buffer so basically i'm saving the user
  • 00:17:28
    uploaded pdf file here
  • 00:17:31
    right
  • 00:17:32
    so basically with this if user is
  • 00:17:34
    uploading any pdf file that so that file
  • 00:17:37
    will be saved here into this uploaded
  • 00:17:39
    resume folder
  • 00:17:42
    now
  • 00:17:43
    show pdf and i'm giving the path of the
  • 00:17:46
    full pdf right so now what is this show
  • 00:17:48
    pdf let's see so this is the one
  • 00:17:50
    function
  • 00:17:52
    so basically the what this function will
  • 00:17:54
    do
  • 00:17:55
    you can see with open file but basically
  • 00:17:57
    you should aware with the basic file
  • 00:17:59
    operation so rb rate in binary now
  • 00:18:02
    base64 pdf like base64 that's why i have
  • 00:18:05
    imported base64 dot b64 in code
  • 00:18:09
    and then f dot red record utf-8
  • 00:18:12
    okay so now what i'm doing show pdf
  • 00:18:15
    means what let me show you
  • 00:18:18
    i'm just showing the user uploaded pdf
  • 00:18:21
    into iframe tag
  • 00:18:23
    right
  • 00:18:24
    and now iframe is display here in
  • 00:18:26
    sd.markdown and allow unsafe html is
  • 00:18:30
    equal to true
  • 00:18:31
    so
  • 00:18:32
    what it will do it will get the uploaded
  • 00:18:34
    pdf from the path that is uploaded by
  • 00:18:37
    into this uploaded resume
  • 00:18:39
    now this same pdf if which is uploaded
  • 00:18:42
    by the user
  • 00:18:44
    will be display here you can see this is
  • 00:18:46
    the iframe tag and the pdf is displaying
  • 00:18:48
    here yes if user is uploading the pdf
  • 00:18:51
    then pdf should be displayed to the user
  • 00:18:53
    right
  • 00:18:54
    so that's why this pdf is only
  • 00:18:56
    you can see you can you can zoom out
  • 00:18:58
    zoom in so this is ready made like
  • 00:19:00
    iframe
  • 00:19:05
    okay
  • 00:19:10
    so this is the show pdf function
  • 00:19:12
    so that's why now that's why i like to
  • 00:19:14
    work uh create uh work we like to create
  • 00:19:17
    a small function because your work will
  • 00:19:20
    be easier right now this so pdf in one
  • 00:19:22
    line the function is already taking
  • 00:19:24
    three to four line but here i don't want
  • 00:19:26
    to miss my main code so that's why i
  • 00:19:28
    just created a function that function is
  • 00:19:29
    required
  • 00:19:31
    path of the pdf file
  • 00:19:33
    now
  • 00:19:34
    resume a parcel
  • 00:19:36
    right
  • 00:19:38
    now resume a parcel should
  • 00:19:40
    what
  • 00:19:41
    what is it actually required it required
  • 00:19:43
    the path of the pdf file
  • 00:19:45
    so basically i have stored pdf path in
  • 00:19:48
    this save image path and get extracted
  • 00:19:51
    data basically this method that we have
  • 00:19:53
    already seen here
  • 00:19:54
    okay
  • 00:19:56
    get extracted data so basically i just
  • 00:19:58
    use this documentation to complete my
  • 00:20:00
    code
  • 00:20:01
    now i get a resume data now this will be
  • 00:20:04
    you know my resume data will be same
  • 00:20:06
    like this like there will be one list
  • 00:20:08
    into one list dictionary and these all
  • 00:20:10
    are the keys
  • 00:20:11
    okay
  • 00:20:13
    okay so now this by uh by resume person
  • 00:20:16
    is working fine but what some of the
  • 00:20:18
    point
  • 00:20:18
    might be calling them maybe you will not
  • 00:20:21
    get a proper because these all are the
  • 00:20:22
    nlp things that you cannot expect of 100
  • 00:20:25
    accuracy so i am interested in not whole
  • 00:20:27
    thing like i'm not interested user
  • 00:20:29
    qualium degree
  • 00:20:30
    i'm just interested in some of the
  • 00:20:32
    things like email mobile number name
  • 00:20:35
    number of pages and skills i'm
  • 00:20:37
    interested in this thing only
  • 00:20:39
    so i will fail this thing from the
  • 00:20:40
    resume parser data now this resume
  • 00:20:42
    parser data will be stored into this
  • 00:20:44
    resume data
  • 00:20:46
    right so i'm just giving a condition if
  • 00:20:47
    resume data is not empty like if resume
  • 00:20:49
    data is not none
  • 00:20:51
    right
  • 00:20:54
    so what i need to do
  • 00:20:56
    i need to do
  • 00:20:58
    once again i need to get the pdf text
  • 00:21:01
    now why i am requiring the pdf text i
  • 00:21:04
    just got all this information from here
  • 00:21:06
    but i am getting the limited amount of
  • 00:21:08
    the information from here but i need to
  • 00:21:11
    play with some more nlp techniques so i
  • 00:21:13
    should have the full content of the user
  • 00:21:15
    speed uh resume like
  • 00:21:18
    each and every word that is containing
  • 00:21:20
    uh by the
  • 00:21:22
    pdf or you can say resume right so
  • 00:21:24
    that's why i'm just using this pdf
  • 00:21:26
    reader function here and that pdf reader
  • 00:21:28
    function
  • 00:21:30
    will be written me a text resume
  • 00:21:32
    basically it will give you the plain
  • 00:21:34
    text of the resume and every word that
  • 00:21:35
    is containing by that user and now this
  • 00:21:37
    pda function is required the original
  • 00:21:39
    path of the resume
  • 00:21:41
    now let's see what this pdf is pdf
  • 00:21:43
    reader is containing
  • 00:21:45
    and now the pdf reader is once again the
  • 00:21:47
    function
  • 00:21:49
    so i'm using pi pdf miner so resource
  • 00:21:51
    manager is equal to pdf resource manager
  • 00:21:53
    that we need to look at first first now
  • 00:21:56
    i need to get a string i o right
  • 00:21:59
    now converter basically this this code
  • 00:22:01
    is also given by the pi pdf for the
  • 00:22:03
    documentation so just i request you to
  • 00:22:05
    read the documentation
  • 00:22:07
    now basically this will convert your pdf
  • 00:22:10
    into text format all the things are
  • 00:22:11
    defined here right
  • 00:22:13
    now what it actually do it is iterating
  • 00:22:15
    to each and every pdf pages
  • 00:22:17
    and it is giving me a text of the pdf
  • 00:22:21
    any pdf not like resume it will written
  • 00:22:23
    each and everything
  • 00:22:24
    now my text will be stored in this text
  • 00:22:26
    variable now now i'm just closing all
  • 00:22:28
    the things like converter effect file
  • 00:22:30
    and error close
  • 00:22:31
    and i should get a written text
  • 00:22:34
    so if user is uploading any
  • 00:22:36
    resume then i will get a
  • 00:22:39
    basic information of the user using this
  • 00:22:42
    library called resume by parser
  • 00:22:45
    and now i will get a full text resume
  • 00:22:48
    now
  • 00:22:49
    it's time for the good looking ui okay
  • 00:22:52
    so i'm just i just done till here so you
  • 00:22:55
    can if you're going to the task you can
  • 00:22:57
    see
  • 00:22:58
    first task is completed second task is
  • 00:23:00
    completed
  • 00:23:01
    third and fourth task is completed okay
  • 00:23:06
    now what now what we just need to define
  • 00:23:09
    the some of the good things here like s
  • 00:23:11
    t dot header resume analysis line then
  • 00:23:13
    fc dot success hello
  • 00:23:15
    resume data name so now what this name
  • 00:23:19
    resume data is dictionary that is
  • 00:23:20
    returning from the
  • 00:23:23
    from the designer pi person right and
  • 00:23:25
    this is name that is already predefined
  • 00:23:27
    key if you are going to the
  • 00:23:29
    documentation then you can see
  • 00:23:32
    the name which is already defined key by
  • 00:23:34
    the hour by password resume
  • 00:23:37
    now
  • 00:23:39
    if it might be possible that each and
  • 00:23:41
    every name will cannot be detected by
  • 00:23:43
    these five parts of resume what we are
  • 00:23:45
    doing
  • 00:23:47
    we are just exception basically i don't
  • 00:23:49
    want to show this error so just i'm
  • 00:23:51
    using pass into exception
  • 00:23:53
    so if it is like it is like
  • 00:23:56
    you can see if everything is fine then
  • 00:23:58
    it should get st text like name like
  • 00:24:01
    username email the email that is
  • 00:24:03
    extracted by our
  • 00:24:05
    resume person now the text
  • 00:24:08
    and resume pages now i am uh
  • 00:24:12
    like getting the resume pages okay
  • 00:24:15
    so don't worry that i will tell you
  • 00:24:18
    okay
  • 00:24:19
    so you can see these two thing is
  • 00:24:21
    printed here for this resume but might
  • 00:24:23
    be possible other things are like uh not
  • 00:24:27
    acceptable and that means not readable
  • 00:24:28
    also because this
  • 00:24:30
    resume is taken from the internet
  • 00:24:32
    let's see for other resume
  • 00:24:36
    so might be it at this video recording
  • 00:24:38
    time i'm not uploading any my friend
  • 00:24:39
    resume otherwise it is working very fine
  • 00:24:42
    on my friend's resume even my resume
  • 00:24:44
    also it is which is you know extracting
  • 00:24:47
    each and everything like email id mobile
  • 00:24:48
    number
  • 00:24:51
    okay and now you can see contact the on
  • 00:24:53
    this it is working fine
  • 00:24:55
    the resume page is what is only one page
  • 00:24:58
    resume you can see and it is already
  • 00:24:59
    extracted here resume pages
  • 00:25:03
    i don't know which contact details it is
  • 00:25:05
    extracted okay so there as i told
  • 00:25:07
    earlier it might be wrong also so you
  • 00:25:09
    can see contact details is wrong but
  • 00:25:11
    email id
  • 00:25:12
    is fine name is actually our detector
  • 00:25:14
    which is detected by here
  • 00:25:17
    so it is wrong here but might be you can
  • 00:25:19
    consider this is a little bit error
  • 00:25:21
    right
  • 00:25:22
    still we got a good thing like good
  • 00:25:24
    amount of the extracted things here
  • 00:25:27
    now
  • 00:25:29
    i'm just given giving the candidate
  • 00:25:31
    level as a simple like i'm not defining
  • 00:25:33
    any value here
  • 00:25:34
    now i just
  • 00:25:36
    assuming that if resumed data of number
  • 00:25:38
    of pages is equal to one if you have one
  • 00:25:41
    page of resume that you you can consider
  • 00:25:43
    yourself as a fresher
  • 00:25:45
    that might be case right i'm not saying
  • 00:25:47
    like if you have one page resume it
  • 00:25:48
    might be possible to do a lot of
  • 00:25:50
    pressure also
  • 00:25:52
    but in this case that i am doing here
  • 00:25:54
    like candidate level is equal to fresher
  • 00:25:55
    if resume number of the page is equal to
  • 00:25:57
    two then you are at like intermittent
  • 00:26:00
    level like you have one or two year of
  • 00:26:01
    the experience right and if you are like
  • 00:26:04
    number of the pages is equal to greater
  • 00:26:06
    than three then you are at experience
  • 00:26:07
    level right
  • 00:26:09
    if you have to replace resume and then
  • 00:26:10
    obviously you have done so many things
  • 00:26:12
    you have so many years of the experience
  • 00:26:14
    so for the number of the pages that i'm
  • 00:26:16
    defining the sd dot markdown like you
  • 00:26:18
    are a
  • 00:26:19
    fresher
  • 00:26:21
    you are at intermediate level or you are
  • 00:26:23
    at experience level
  • 00:26:26
    so for that each and every different
  • 00:26:27
    like color code is different
  • 00:26:29
    so that's how that i am printing this
  • 00:26:31
    message like you are looking pressure
  • 00:26:34
    now skill recommendation
  • 00:26:37
    so now what is this skill recommendation
  • 00:26:39
    let me show you
  • 00:26:40
    so first of all i just need to
  • 00:26:42
    initialize the sd text so basically
  • 00:26:44
    streamlit doesn't have this tag model
  • 00:26:47
    inbuilt right so i just out that's why i
  • 00:26:48
    downloaded this sd text from the
  • 00:26:51
    uh
  • 00:26:52
    you can see that i have imported this ht
  • 00:26:54
    tags into import section
  • 00:26:58
    okay so now http is like skills that you
  • 00:27:02
    have basically it is giving the skills
  • 00:27:04
    that is already here by the user now how
  • 00:27:06
    we can fit the skills
  • 00:27:08
    already our resume parser has extracted
  • 00:27:11
    the skills and you can see the
  • 00:27:12
    dictionary name is skills key name is
  • 00:27:15
    skills you can see here
  • 00:27:16
    and it is returning a one list of the
  • 00:27:18
    skills
  • 00:27:19
    okay so i just need to pass this value
  • 00:27:22
    as a skill and key is equal to one it
  • 00:27:24
    should be unique
  • 00:27:25
    okay because it might be have multiple
  • 00:27:28
    sd text so key should be on unique for
  • 00:27:30
    each and every one sd text
  • 00:27:32
    okay
  • 00:27:33
    so now now i just got the user skill
  • 00:27:35
    here you can see this is also
  • 00:27:38
    extracted from the resume and skills are
  • 00:27:41
    showing here right now our
  • 00:27:43
    recommendation time
  • 00:27:45
    so some of the things some of the
  • 00:27:47
    recommendation things that i have
  • 00:27:49
    already generated okay let me explain
  • 00:27:52
    okay as i told earlier this resume
  • 00:27:55
    analysis is like is working for the id
  • 00:27:57
    resume so it is capturing the keywords
  • 00:28:00
    like data science keyword web keyword
  • 00:28:02
    weapon technology android keyword ios
  • 00:28:04
    keyword and usb skewer you can improve
  • 00:28:07
    it into more depth
  • 00:28:09
    okay so what is this ds keyword
  • 00:28:12
    tensorflow keras python so basically
  • 00:28:14
    that what i have done is i just google
  • 00:28:17
    it so many things about like what is
  • 00:28:19
    this web technology is included what is
  • 00:28:21
    this android key android technologies
  • 00:28:23
    included and i have made one list
  • 00:28:26
    of the keywords now
  • 00:28:28
    why i'm doing this
  • 00:28:30
    let me explain
  • 00:28:31
    this is the very tricky part but it is
  • 00:28:33
    very easy to understand
  • 00:28:35
    now
  • 00:28:36
    if i am going to show this thing only to
  • 00:28:38
    my like any person like this is fine
  • 00:28:41
    like that i am extracting the basic
  • 00:28:43
    information from the
  • 00:28:45
    resume but that that is not a meaningful
  • 00:28:47
    that is not you can say useful now i
  • 00:28:49
    should have the my own model here like
  • 00:28:51
    what my own nlp techniques
  • 00:28:53
    so what i need to do is
  • 00:28:55
    i need to fetch the keyword right if you
  • 00:28:58
    are going to see my resume then how you
  • 00:29:00
    can judge me like what is my working
  • 00:29:02
    field if i am including all these
  • 00:29:04
    keywords like if my resume has the
  • 00:29:07
    keyword like uh
  • 00:29:10
    you can say
  • 00:29:13
    uh tensorflow keras fight watch machine
  • 00:29:15
    learning deep learning all these
  • 00:29:17
    keywords is if it is these keywords are
  • 00:29:19
    present into my resume
  • 00:29:22
    then
  • 00:29:22
    i am working with the data science
  • 00:29:25
    if i have the keyword of the react
  • 00:29:28
    django node.js reaches flask
  • 00:29:31
    angularjs
  • 00:29:32
    it might be possible that i'm working
  • 00:29:33
    with the web technology
  • 00:29:35
    for the android you can see android
  • 00:29:37
    android development flutter hotline xml
  • 00:29:39
    key if this keyword is found in your
  • 00:29:40
    resume it might be possible that you are
  • 00:29:42
    working with android keyword
  • 00:29:44
    you can next uh you know you can create
  • 00:29:47
    a more better number of the keywords and
  • 00:29:49
    you can append into this list okay
  • 00:29:52
    but this is a this is also working fine
  • 00:29:54
    that i have already tested this uh
  • 00:29:56
    system want to like my web developer is
  • 00:29:59
    like web developer friend resume for
  • 00:30:01
    that it is working fine given that i
  • 00:30:03
    have also ui designer friend on that on
  • 00:30:06
    that resume it is working fine it is
  • 00:30:08
    predicting the same that you are
  • 00:30:10
    interested in uis job
  • 00:30:12
    now
  • 00:30:14
    this is like we are finding the
  • 00:30:16
    particular keyword from the user text
  • 00:30:18
    that we have already expected from the
  • 00:30:20
    pdf miner now recommended skills now
  • 00:30:22
    it's time to recommend the skill to the
  • 00:30:24
    user
  • 00:30:25
    you can see skill recommendation here
  • 00:30:29
    okay
  • 00:30:30
    that i need to print this line also
  • 00:30:34
    okay so this all things that i will
  • 00:30:36
    you know do it later but before that i
  • 00:30:39
    need to
  • 00:30:40
    fetch the all the things regarding the
  • 00:30:43
    user
  • 00:30:44
    and now recommended skill that i have
  • 00:30:45
    created empty list
  • 00:30:47
    recognized in field and reco course this
  • 00:30:50
    both field is currently this both value
  • 00:30:52
    is currently nothing like empty string
  • 00:30:54
    now i need to iterate the loop
  • 00:30:57
    like i need to match the skill
  • 00:30:59
    but how
  • 00:31:01
    so we have just assumed that original
  • 00:31:02
    skill and we have this keyword so
  • 00:31:06
    basically what i am doing is i am just
  • 00:31:07
    entering the with this look for and
  • 00:31:09
    resume date of skill that is already
  • 00:31:12
    skills that is you know that is already
  • 00:31:14
    have by that person
  • 00:31:15
    now if i dot labor lower that is you
  • 00:31:18
    know that will return a lowercase
  • 00:31:19
    keyword and ds keyword
  • 00:31:21
    now just assume that if user this user
  • 00:31:24
    have the uix development skill
  • 00:31:28
    you can see this all are related to you
  • 00:31:30
    adobe indies and css wordpress right so
  • 00:31:33
    you can see this guy is currently
  • 00:31:35
    working job into uiux you can assume
  • 00:31:37
    that right
  • 00:31:39
    so what it will do it will loop through
  • 00:31:41
    each and everything right if any keyword
  • 00:31:44
    of this is matching with this ui ux
  • 00:31:46
    keyword then automatically it will show
  • 00:31:49
    you
  • 00:31:50
    the
  • 00:31:51
    regarding the ui ux right
  • 00:31:55
    so let me just go through the uix here
  • 00:31:58
    you can see uix recommendation
  • 00:32:01
    like you can see it will print the here
  • 00:32:03
    so you can see print is already here
  • 00:32:05
    like prototyping
  • 00:32:07
    obviously prototyping scale is already
  • 00:32:10
    means have by the uix developer
  • 00:32:13
    now what is my recommended field so if
  • 00:32:15
    this happening this is a simple ifa if
  • 00:32:17
    this is happening then my recommended
  • 00:32:20
    field should be ux development now you
  • 00:32:22
    should get a message our analysis say
  • 00:32:24
    you are looking for the ux development
  • 00:32:26
    jobs now i have already created one list
  • 00:32:30
    recommended skill that i can recommend
  • 00:32:32
    to the user
  • 00:32:33
    like you can see now recommended skills
  • 00:32:35
    are
  • 00:32:36
    ui user experience adobe xd
  • 00:32:39
    prototyping wireframe storage like this
  • 00:32:41
    all the skill that i already googled
  • 00:32:43
    illustrator after effects you can see
  • 00:32:45
    there are so many skills available
  • 00:32:47
    that we can recommend to the user
  • 00:32:49
    recommended skill for you
  • 00:32:51
    okay so basically based on this skill we
  • 00:32:54
    are recommended this skill so that's how
  • 00:32:56
    i think you got this is very simple
  • 00:32:58
    concept now let's see for the same for
  • 00:33:00
    the data science
  • 00:33:01
    if i'm if i'm uploading any
  • 00:33:04
    uh user resume any user should have the
  • 00:33:07
    similar words like tensorflow keras then
  • 00:33:09
    it will automatically fall into this if
  • 00:33:12
    and the recommended will be data science
  • 00:33:13
    our analysis say you are looking for
  • 00:33:15
    data science job and
  • 00:33:16
    uh recommended skill will be like data
  • 00:33:18
    visualization rate analysis uh so many
  • 00:33:21
    skills that already printed here
  • 00:33:26
    now
  • 00:33:28
    this is the course recommender i think
  • 00:33:30
    you guys are got i don't need to explain
  • 00:33:32
    like when android keyword web
  • 00:33:34
    development keyboard working is working
  • 00:33:35
    is same for each and everything okay so
  • 00:33:38
    it is
  • 00:33:39
    working for the four fields okay it is
  • 00:33:41
    five
  • 00:33:42
    now
  • 00:33:45
    course recommendation you can see after
  • 00:33:47
    that it is showing me the course
  • 00:33:48
    recommendation
  • 00:33:50
    okay so now this course recommendation
  • 00:33:52
    is required what
  • 00:33:54
    this web course
  • 00:33:59
    okay i will a web course is basically is
  • 00:34:02
    the kind of the list okay let me show
  • 00:34:04
    you
  • 00:34:05
    ds course web course here you can see in
  • 00:34:07
    parameters
  • 00:34:08
    so what i have done is
  • 00:34:11
    first let me show you the course
  • 00:34:12
    recommended so basically this course
  • 00:34:14
    recommender will function will create a
  • 00:34:16
    one thing like course recommended scores
  • 00:34:18
    and certificate recommendation
  • 00:34:20
    it will count the number recommended
  • 00:34:22
    course list
  • 00:34:24
    it will be empty now st dot slider i am
  • 00:34:26
    getting a 1 to 10 slider value from the
  • 00:34:28
    user like how many courses
  • 00:34:29
    recommendation you want like
  • 00:34:31
    1 2 3 4 five based on that
  • 00:34:35
    what i am doing for c name and c link so
  • 00:34:37
    basically this course list will be
  • 00:34:39
    dictionary now what is this course list
  • 00:34:43
    so course list will be given by the
  • 00:34:46
    user okay
  • 00:34:49
    now this counter will be increase and s
  • 00:34:51
    t dot markdown course name and course
  • 00:34:53
    link will be generated and recommended
  • 00:34:56
    course will be
  • 00:34:57
    you know appended into the
  • 00:35:00
    this list which is a recommended course
  • 00:35:02
    if c is equal to number of the responses
  • 00:35:04
    like c is the counter and number of the
  • 00:35:07
    uh recommendation that is defined by
  • 00:35:09
    user so if
  • 00:35:10
    if user want five any five course is
  • 00:35:13
    already shown then counter will be five
  • 00:35:15
    is equal to five then loop will be break
  • 00:35:16
    and it will give you the recommended
  • 00:35:18
    course
  • 00:35:19
    right
  • 00:35:21
    so i'm returning this recommended course
  • 00:35:22
    because i want to store all this thing
  • 00:35:24
    into the database so that's why i'm
  • 00:35:26
    returning the recommended
  • 00:35:28
    courses
  • 00:35:29
    okay so now this how this course list is
  • 00:35:32
    coming
  • 00:35:33
    okay
  • 00:35:35
    so let me show you the this thing once
  • 00:35:37
    again
  • 00:35:39
    so this course list is coming from this
  • 00:35:41
    ds course
  • 00:35:42
    so what i have done is very it is very
  • 00:35:44
    statically is type you can see there is
  • 00:35:47
    one
  • 00:35:47
    file dot courses dot by
  • 00:35:50
    ds course web course i have defined some
  • 00:35:52
    of the predefined courses
  • 00:35:56
    like android course ios course
  • 00:35:59
    uix course now this
  • 00:36:01
    you know this course is containing two
  • 00:36:03
    things list into list
  • 00:36:05
    like first member is about our course
  • 00:36:06
    name second member is about to
  • 00:36:09
    course link
  • 00:36:10
    so this is the top most code that i have
  • 00:36:12
    taken from the google that i'm already
  • 00:36:14
    showing to the user
  • 00:36:16
    right
  • 00:36:18
    so that's why i have defined this two
  • 00:36:20
    thing into for loop it might be possible
  • 00:36:22
    that you get amazed like what i'm
  • 00:36:24
    unpacking two values into one list so
  • 00:36:26
    basically it is returning this two thing
  • 00:36:28
    course name and course link
  • 00:36:32
    okay
  • 00:36:34
    the same word that i have already
  • 00:36:35
    defined in the sum of the videos okay so
  • 00:36:36
    that thing that i will explain in later
  • 00:36:42
    okay so my course recommendation is also
  • 00:36:44
    done here
  • 00:36:45
    okay
  • 00:36:47
    so let me just
  • 00:36:48
    guide through this now resume tips and
  • 00:36:51
    ideas
  • 00:36:53
    okay so before starting all these things
  • 00:36:55
    just i am inserting all this thing in
  • 00:36:56
    root table like current time stem when
  • 00:36:59
    the user is uploading this resume
  • 00:37:02
    okay
  • 00:37:05
    now
  • 00:37:06
    resume writing recommendation now i just
  • 00:37:09
    given the courses and recommendation now
  • 00:37:12
    some of the things that might be present
  • 00:37:14
    in resume or not so what this is once
  • 00:37:16
    again very simple resume text i got the
  • 00:37:19
    resume text from the pdf miner basically
  • 00:37:22
    that from that function that i am
  • 00:37:23
    returning the resume text
  • 00:37:25
    now if there is a simple thing you are
  • 00:37:27
    getting 1000 but obviously you can find
  • 00:37:30
    like if objective is not present into
  • 00:37:32
    resume tags then obviously you should ah
  • 00:37:36
    get the user should get message right
  • 00:37:39
    so i am just defining the condition if
  • 00:37:40
    objective is in resume text then resume
  • 00:37:43
    score will be plus 20
  • 00:37:45
    now resume score that i have initialized
  • 00:37:47
    zero now st dot markdown user should get
  • 00:37:50
    message like awesome you added objective
  • 00:37:53
    if our code means uh
  • 00:37:55
    objective what that found into user
  • 00:37:57
    uploaded resume then automatically score
  • 00:37:59
    will be increased by 20 otherwise goal
  • 00:38:02
    will be not increase
  • 00:38:03
    like you should get a message like this
  • 00:38:06
    according to our recommendation please
  • 00:38:07
    add career objective this message should
  • 00:38:09
    be in the same for the declaration
  • 00:38:13
    declaration should be present into
  • 00:38:16
    resume text so now you you can think of
  • 00:38:18
    like this if objective is and
  • 00:38:20
    declaration will be present in the small
  • 00:38:22
    letter
  • 00:38:23
    okay
  • 00:38:24
    like first letter is small but it is not
  • 00:38:26
    possible and the reason is that if you
  • 00:38:28
    are creating any resume that says this
  • 00:38:30
    thing this what call as a section
  • 00:38:32
    instruction name always first letter of
  • 00:38:34
    the capital in most of the resume
  • 00:38:37
    the same thing for the hobbies and or
  • 00:38:39
    interest so now just think of it in some
  • 00:38:42
    of the resume it might be possible that
  • 00:38:44
    hobbies or interest maybe two key
  • 00:38:46
    different keywords one that i'm having
  • 00:38:49
    these two keywords like i'm using these
  • 00:38:50
    two k words if achievements is not
  • 00:38:52
    present in resume the same thing i'm
  • 00:38:54
    increasing this score if it is present
  • 00:38:56
    otherwise it is like it will not
  • 00:38:58
    increase the score the same for the
  • 00:39:00
    project if projects were into my list
  • 00:39:03
    then automatically it will increase the
  • 00:39:04
    score and give yes congratulations you
  • 00:39:06
    added projects otherwise it will show
  • 00:39:09
    like this according to our
  • 00:39:10
    recommendation please add the projects
  • 00:39:14
    now score
  • 00:39:16
    now i need to pass the resume score to
  • 00:39:18
    the user like st dot sub header uh
  • 00:39:21
    resume score here you can see after that
  • 00:39:24
    your writing score algorithm score so
  • 00:39:27
    basically i am initializing com progress
  • 00:39:29
    bar score is equal to zero now four
  • 00:39:31
    percent complete in range regime score
  • 00:39:33
    that resume score will be total like if
  • 00:39:35
    my resume score is 40 50 60
  • 00:39:38
    it will iterate to this
  • 00:39:40
    range for loop obviously and then score
  • 00:39:42
    will be increased by one and time dot
  • 00:39:44
    sleep
  • 00:39:45
    so let me refresh it once again once
  • 00:39:47
    again
  • 00:39:49
    i'm just showing i just want to show you
  • 00:39:51
    the progress bar
  • 00:39:54
    you know you can see this progress bar
  • 00:39:55
    is increasing by a step
  • 00:39:58
    your resume score is 20 because this
  • 00:40:00
    resume doesn't have anything
  • 00:40:02
    like it uh obviously you can see only it
  • 00:40:04
    is have obvious or 20 score is plus for
  • 00:40:07
    that
  • 00:40:09
    i'm just i'm printing this
  • 00:40:10
    warning this score is calculated based
  • 00:40:12
    on the content that you have added in
  • 00:40:13
    your resume
  • 00:40:14
    okay
  • 00:40:15
    so time dot slip basically that
  • 00:40:18
    my interpreter will be sleep for a
  • 00:40:20
    fraction of seconds after each and every
  • 00:40:22
    iteration
  • 00:40:24
    okay so that's why it is you know very
  • 00:40:26
    slowly slowly increasing otherwise you
  • 00:40:28
    know it will give you the full
  • 00:40:29
    loaded progress but i don't what i just
  • 00:40:32
    want small amount of the animation here
  • 00:40:34
    so that's why what i'm doing here
  • 00:40:36
    okay now at the end we everything fine
  • 00:40:38
    then it will show you the sum of the
  • 00:40:39
    balloons that is already provided by the
  • 00:40:41
    streamlit
  • 00:40:43
    okay
  • 00:40:44
    now
  • 00:40:45
    at the end of all this thing i'm
  • 00:40:47
    inserting all this data into the
  • 00:40:49
    our database
  • 00:40:51
    this insert data is function about to
  • 00:40:53
    inserting the data it is generating you
  • 00:40:55
    know insert query
  • 00:40:57
    it is creating the tuple of all the
  • 00:40:59
    things okay so the things that i'm
  • 00:41:01
    including into database like name email
  • 00:41:03
    that already have explained and cursor
  • 00:41:05
    dot execute connection dot commit
  • 00:41:08
    okay
  • 00:41:09
    so most of ninety percent okay eighty
  • 00:41:11
    percent project is going means explained
  • 00:41:13
    by me
  • 00:41:14
    now resume writing video and interview
  • 00:41:18
    tips so the same thing here
  • 00:41:21
    so i have already created the
  • 00:41:24
    resume video
  • 00:41:28
    okay fetch yt video okay bonus video for
  • 00:41:31
    resume writing tips
  • 00:41:32
    random dot choice so this is the resume
  • 00:41:35
    videos
  • 00:41:37
    that function already that list that i
  • 00:41:39
    have already created into this course is
  • 00:41:41
    not by receiving interview videos
  • 00:41:43
    okay so i have almost extracted around
  • 00:41:46
    four four eight eight videos
  • 00:41:48
    for the resume preparation and eight
  • 00:41:50
    videos for the interview preparation
  • 00:41:52
    now what i'm doing is i'm just picking
  • 00:41:54
    picking up a random video like random
  • 00:41:56
    choice
  • 00:41:57
    now
  • 00:41:58
    the choice video should be display here
  • 00:42:00
    too is so nice i have created one
  • 00:42:02
    function fetch youtube video
  • 00:42:06
    now
  • 00:42:06
    this fast video youtube like it is
  • 00:42:08
    nothing just it is required one link
  • 00:42:11
    i'm using puffy to get the pfe dot news
  • 00:42:14
    so basically pfe will open the youtube
  • 00:42:15
    video and it automatically it will fade
  • 00:42:17
    the title for you like what is the video
  • 00:42:19
    title
  • 00:42:21
    okay so i just need to get the video
  • 00:42:23
    title
  • 00:42:24
    for the you know
  • 00:42:25
    uh video now sd dot sub header then like
  • 00:42:29
    and then i just need to print the video
  • 00:42:31
    title that i just got from this function
  • 00:42:33
    you can see how to write a
  • 00:42:35
    resume software engineer resume tips for
  • 00:42:37
    fresher
  • 00:42:39
    and experience and you can see the title
  • 00:42:40
    is same here also
  • 00:42:42
    so that's why i actually extracted the
  • 00:42:44
    title from the
  • 00:42:46
    video link okay now st dot video
  • 00:42:49
    basically this is in build model of the
  • 00:42:51
    you know displaying the youtube video
  • 00:42:53
    like embedding youtube video into
  • 00:42:54
    webpage so nothing to do with just you
  • 00:42:57
    need to pass the link of the video that
  • 00:42:59
    is already random generated so i'm
  • 00:43:01
    displaying two video resume writing tips
  • 00:43:03
    and interview preparation then at the
  • 00:43:05
    end i'm connecting the connection dot
  • 00:43:06
    commit
  • 00:43:08
    because i'm using database now if
  • 00:43:10
    anything red white will give you the
  • 00:43:11
    warning hd dot error something went
  • 00:43:13
    wrong and now my code is around 300 line
  • 00:43:16
    now user side is completed now adam
  • 00:43:18
    inside
  • 00:43:19
    okay
  • 00:43:21
    now admin side is what
  • 00:43:24
    uh it is you know asking for the user id
  • 00:43:26
    password so spidey don't decide crucial
  • 00:43:28
    one two three is the password so same
  • 00:43:30
    thing same thing here
  • 00:43:32
    now i should get uh analysis of admin
  • 00:43:36
    set like
  • 00:43:37
    okay let me show you you know it is the
  • 00:43:39
    most interesting thing that it will show
  • 00:43:40
    you the some of the visualization if std
  • 00:43:43
    button dot login
  • 00:43:45
    right
  • 00:43:45
    if this admin is pressing any login
  • 00:43:47
    button here and if user password and
  • 00:43:49
    this thing are match
  • 00:43:51
    don't mind guys that for that particular
  • 00:43:54
    thing that i am not going to create
  • 00:43:55
    database it is statically that however
  • 00:43:57
    given
  • 00:43:58
    so you can see you will like welcome
  • 00:44:00
    kushal users data data that is already
  • 00:44:02
    extracted by
  • 00:44:04
    our database so when you are uploading
  • 00:44:06
    any resume you can see this thing will
  • 00:44:08
    be stored into my database table right
  • 00:44:11
    here
  • 00:44:12
    in this table
  • 00:44:14
    now what what i need to do with this
  • 00:44:17
    data okay so that this is the data that
  • 00:44:20
    i'm storing like recommended skill
  • 00:44:22
    recommended course name actual skill
  • 00:44:25
    user level predicted field total number
  • 00:44:28
    of page resume time of uploading resume
  • 00:44:30
    score email
  • 00:44:32
    even i can download this report also if
  • 00:44:34
    i'm going to download this report then
  • 00:44:36
    you know
  • 00:44:37
    uh it will be have into the csc but i'm
  • 00:44:40
    not going to open
  • 00:44:44
    okay i think i just got error because i
  • 00:44:46
    just closed unexpectedly
  • 00:44:48
    now pie charts for the predictor field
  • 00:44:50
    recommendation now i'm just defining the
  • 00:44:52
    sum of the things like regarding the pie
  • 00:44:54
    chart so most of the resume
  • 00:44:56
    are base is a data science
  • 00:45:00
    means my system have most of the
  • 00:45:02
    recommended values data science because
  • 00:45:04
    that i am uploading many datas and
  • 00:45:05
    resume into the system now some of the
  • 00:45:07
    ios some of the recommendation has two
  • 00:45:10
    like value two then uix and most of
  • 00:45:12
    their web development
  • 00:45:14
    now experience level like in my system
  • 00:45:17
    if i have 1000 resume uploaded into the
  • 00:45:19
    system then i should get knowledge like
  • 00:45:21
    how many people how many percent of
  • 00:45:23
    experience and how many percent of the
  • 00:45:25
    fresher you can see
  • 00:45:26
    like intermediate is 23 and fresher is
  • 00:45:29
    only 16
  • 00:45:31
    and this is the end of the this our
  • 00:45:33
    admin panel when i can display more
  • 00:45:35
    graphs here but uh
  • 00:45:38
    okay just i need to close this excel
  • 00:45:40
    warnings
  • 00:45:43
    okay
  • 00:45:44
    i don't know after the you know using
  • 00:45:47
    this windows so many time
  • 00:45:51
    it is very difficult
  • 00:45:53
    okay
  • 00:45:55
    so that i am just showing you how you
  • 00:45:56
    can display these things
  • 00:45:59
    now i need to get the uh you know data
  • 00:46:02
    from the database so there is one thing
  • 00:46:04
    like cursor.execute you know this query
  • 00:46:06
    select star from the user data and this
  • 00:46:08
    data means will fetch the
  • 00:46:11
    this patch all function will fade to all
  • 00:46:13
    the data it will give you the list now i
  • 00:46:15
    just need to create a data frame and
  • 00:46:16
    data frame should have the
  • 00:46:18
    like column name right
  • 00:46:21
    now i just need to display the data from
  • 00:46:23
    so there is streamlined sql data frame
  • 00:46:25
    will display this
  • 00:46:27
    beautiful table here you can see this is
  • 00:46:29
    the table
  • 00:46:30
    right
  • 00:46:31
    now
  • 00:46:33
    admin the this thing is already
  • 00:46:36
    uh you know the admin side data that i
  • 00:46:38
    already displayed here right
  • 00:46:41
    now the thing is that how i can display
  • 00:46:43
    the recommendation chart so first of all
  • 00:46:46
    from the plot data what is this close
  • 00:46:48
    data it is like select star from the
  • 00:46:50
    user data
  • 00:46:52
    once again i'm loading this query and
  • 00:46:53
    i'm storing into the plot data variable
  • 00:46:56
    now plot data dot predictor field dot
  • 00:46:58
    unique
  • 00:46:59
    so i'm just what i'm doing i'm getting
  • 00:47:01
    the unique labels that is already like
  • 00:47:03
    data science job or android app web
  • 00:47:06
    development job
  • 00:47:08
    now what i'm doing i'm just getting the
  • 00:47:10
    value counts value counts whatever
  • 00:47:12
    return like data science over 16 values
  • 00:47:14
    like 16 recommendation a web app have
  • 00:47:17
    five recommendation
  • 00:47:19
    ui six recommendation
  • 00:47:21
    and now i'm just by making a pie chart
  • 00:47:24
    px dot pi i'm not using metro lab i'm
  • 00:47:27
    using the plotly express
  • 00:47:29
    okay so plotter will give you the
  • 00:47:31
    beautiful you know visualization and
  • 00:47:33
    just i'm making the plural chart here
  • 00:47:37
    passing the values labels and title like
  • 00:47:40
    predictor
  • 00:47:41
    field according to the skill and the
  • 00:47:43
    same for the pie chart
  • 00:47:45
    the pie chart like once again i'm making
  • 00:47:47
    the display chart and i'm passing the
  • 00:47:49
    user level user level is like experience
  • 00:47:51
    or not experience intermediate and the
  • 00:47:54
    things are
  • 00:47:55
    at the end this time making chat once
  • 00:47:57
    again if anything gets wrong it will
  • 00:47:59
    show you the wrong id password provided
  • 00:48:02
    okay so almost i explained uh 3 360 line
  • 00:48:07
    of each and everything and i think i
  • 00:48:09
    have explained all the function okay now
  • 00:48:11
    i have already mistakenly you know
  • 00:48:14
    forget this function download report so
  • 00:48:16
    basically just what i am doing is this
  • 00:48:18
    function is required creating like data
  • 00:48:20
    frame file name and text
  • 00:48:22
    text means you just want to download it
  • 00:48:24
    means
  • 00:48:25
    this download report like text name of
  • 00:48:28
    this link okay so csv df2 csv index is
  • 00:48:31
    equal to false but before that i should
  • 00:48:34
    get like basically for bm encode so
  • 00:48:36
    basically what it will do it will encode
  • 00:48:38
    the data frame data
  • 00:48:40
    and you know it will show you the means
  • 00:48:42
    it will generate the download link of it
  • 00:48:46
    okay and it will written the href hrdf
  • 00:48:49
    means what this link because so
  • 00:48:51
    basically in this function i just need
  • 00:48:53
    to pass the data from file name and text
  • 00:48:55
    you can see here
  • 00:49:00
    you can see ht dot markdown get download
  • 00:49:02
    link data frame
  • 00:49:04
    user data dot cs in my files name you
  • 00:49:07
    can see user data dot css download
  • 00:49:09
    report allow on sub html is equal to
  • 00:49:11
    true and my report is downloaded okay
  • 00:49:14
    so i think i have explained each and
  • 00:49:16
    every line regarding the project
  • 00:49:18
    you can see insert data function is
  • 00:49:19
    nothing just inserting the data
  • 00:49:21
    course recommender that i explained show
  • 00:49:24
    pdf pdf reader okay so all the things
  • 00:49:27
    that i have explained and i don't think
  • 00:49:29
    but this video is around 14 9 minutes
  • 00:49:31
    longer and i think i just need to
  • 00:49:34
    get one hour for this rendering the
  • 00:49:36
    video so guys uh that i have already
  • 00:49:38
    explained the full thing if you did not
  • 00:49:40
    get anything or if you are having any
  • 00:49:42
    doubt with this video you can just
  • 00:49:43
    comment down below code that i will
  • 00:49:45
    share with to you guys okay so don't
  • 00:49:48
    worry about the code but guys don't make
  • 00:49:50
    the full copy paste of that code if you
  • 00:49:52
    if you are understanding each and
  • 00:49:53
    everything then you can make a copy
  • 00:49:55
    paste right
  • 00:49:56
    even if you want to add anything like
  • 00:49:58
    anything here into this code just give
  • 00:50:00
    the pull request into the github if it
  • 00:50:02
    is appropriate then i will merge into it
  • 00:50:04
    okay
  • 00:50:06
    so guys thank you for the listening me
  • 00:50:08
    and like and share this video and don't
  • 00:50:09
    forget to subscribe the youtube channel
  • 00:50:11
    of machine learning hub you know it will
  • 00:50:13
    motivate me to create more content like
  • 00:50:15
    this so guys see you in the next one and
  • 00:50:17
    thank you for the listening me
  • 00:50:19
    so guys thank you bye have a good day
Tags
  • Smart Resume Analyzer
  • NLP
  • Python
  • Streamlit
  • Resume Parsing
  • Project Tutorial
  • Skills Recommendation
  • Machine Learning
  • GitHub Code
  • Resume Screening