Coder Social home page Coder Social logo

yashdew / assessor Goto Github PK

View Code? Open in Web Editor NEW
18.0 18.0 8.0 757 KB

An open-source Resume Analyzer and Ranking tool for recruiters and candidates.

Home Page: http://assessor.vercel.app/

License: MIT License

Python 14.51% JavaScript 77.06% SCSS 8.38% Procfile 0.05%
flask hacktoberfest hacktoberfest2021 nextjs nlp python spacy

assessor's People

Contributors

adithyanandakumar avatar ak9175 avatar dependabot[bot] avatar jayeshpadhiar avatar sksumit avatar yashdew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

assessor's Issues

Resume Parsing Accuracy

Problem Statement
Resume PDF file should be parsed in such a way that the algorithm can easily differentiate for a different entity like name, phone numbers, email, links, Education background, Experience background, skills, hobbies, achievements, projects and certification etc.

Steps to follow

  1. You can use different types of packages like Spacy.io Documentation.
  2. You can also use keywords methods.
  3. or Design a different type of algorithms that do the entity recognition(mentioned above).

for reference purposes, you can test the backend on postman here: LINK Just do a POST request.

image

How to contribute

check out the api/ directory of repo and follow the docs

Final form should look like this

[
    {
        "personal_details": {
            "name": "Yash Dewangan",
            "email": "[email protected]",
            "mobile_number": "8602842290"
        },
        "skills": [
            "Pandas",
            "Coding",
            "C",
            "Flask",
            "Css",
            "Java",
            "C++",
            "Django",
            "Rest",
        ],
        "education": [
            "SMT. KASHIBAI NAVALE COLLEGE OF ENGINEERING
            BE in Information Technology
            2018-2022 | Pune, MH
            Cum. GPA: 8.14",
        ],
        "experience": [
            "eQ Technologic | Software Engineer Intern
            Aug 2021 – Present
            Implemented various services/APIs needed for new features required in the latest release
            Learnt about SOA architecture, modular coding i.e. keeping future use in mind
            Implementation of concepts such as Tagging Entities and  Groups/User Authorization & Permissions for Entities
            Worked on Backend technologies such as Spring and Java with SQL Server as Database"
        ],
        "no_of_pages": 1,
        "links": {
            "linkedin": "https://www.linkedin.com/in/iyashdewangan/",
            "leetcode": "https://leetcode.com/Yashdew/",
            "codechef": "https://www.codechef.com/users/yashdew",
            "codeforces": "http://codeforces.com/profile/yashdewangan123456",
            "github": [
                "https://github.com/Yashdew/Attendance-Tracker",
                "https://github.com/Yashdew",
                "https://github.com/SkSumit/Chatistics"
            ],
            "others": [
                "mailto:[email protected]",
                "https://www.spoj.com/users/yashdew/",
                "https://attendancesknhc.herokuapp.com/",
                "https://chatistics.vercel.app/",
                "https://auth.geeksforgeeks.org/user/yashdewangan123456/practice/"
            ]
        },
        "total_experience": 0.17,
        "projects": [
            "CHATISTICS
            GitHub Live URL
            Dec 2020 - Feb 2021
            An open-source WhatsApp chats analyser and statistics.
            Application, which provides various meaningful insights.
            Time complexity reduces from 20 seconds. to 5 seconds.
            Used Flask for implementing backend REST APIs with firebase database for analysis of traffic.
            Pandas for data pre-processing.
            Used NextJS and Bulma UI for frontend.
            500+ users and 30 stars on GitHub.",

            "ATTENDANCE-TRACKER
            GitHub Live URL
            July 2020 – Aug 2020
            A full-stack web application for monitoring the attendance in Microsoft Teams from logs file of the meeting. (Sample)
            Optimization of code took around 3 seconds in Data pre-processing.
            Worked on building the major backend part and frontend.
            Used Flask for implementing Backend and HTML, CSS & JS for frontend.
            Used Mongo DB and Google sheet API for Database.
            Data pre-processing of large logs files for calculating time stamps of students using pandas
            50+ users in our college."
        ],
        "achievements": [
            "Codechef - Maximum rating 1603 (3-star).",
            "Codechef – March Lunchtime 2021 Div-3, secured a rank of 825 out of 7000+ participants.",
            "Leetcode – 150+ Solved Questions.",
            "250+ Solved Questions on GFG, Codechef, SPOJ and Codeforces.",
            "Participated in Google kickstart 2021 Round A, Round C & Round D.",
            "Secured 1st rank out of 30+ participants in Scaler Edge Apex 2021. (SKN Edition)",
            "Represented Hack Club SKN projects in Hack Club Asia Summit 2021.",
            "Participated in more than 30+ coding competitions."
        ],
        "hobbies": [
            "Photography and Video editing",
            "Traveling and exploring new places.",
            "Gaming"
        ]
    }
]

Error handling and Validation in Multiple File Uploads

The FileUpload.jsx deals with the uploading one or more Resume files in the PDF format.

File Validation

The function uploadFiles() (line 17) is used for uploading the files to the required server endpoint.

The task is to validate the format and the size of the Resume file and call the POST Request API only if the ALL the files being uploaded are valid.

The Resume file is valid only if

  • The format is PDF
  • The size of file is <= 10MB

Error Handling

Surround the code with error handling statements in order to ensure that application doesnt break due to any exceptions during runtime.

Create endpoint for POSTING Job Description with data validation and error handling.

  • Create an endpoint for posting Job Description

  • Create an endpoint in api/resume/routes.py

  • Strictly name it /api/v1/postJD take a reference from already created endpoint /api/v1/postResume

  • Method will be a POST request

  • So first from the frontend we will be sending a Formdata object using JS so you've to parse that and set it into a variable following proper naming conventions

  • So to parse form data we use request.form.get() in python

  • Data which we'll be sending is:-
    image

  • Also keep the naming conventions the same as Data Name given in the table

  • Data Validation, preprocessing and error handling of all the attributes

  • Validate the data according to the table
    image

  • For skills section user will send comma-separated or space-separated string Example :- "C++, Java, Python" or "C++ Java Python" you need to separate these out by using data extraction techniques and create a list of strings like ["C++" , "Java" , "Python"]

  • And finally if there's any error handle it properly using best error handling practices.

  • Create a JSON object of all the attributes
    Example Final form should look like this

[
    {
        "job_summary": {
            "company_name": "Persistant Systemps",
            "designation": "Software Development Engineer",
            "experience": "0-2 Years",
            "location": "Pune",
            "job_preference_remote": "Yes",
            "skills": [
            "C++",
            "Flask",
            "Css",
            "Java",
        ],
           "job_description": "We are looking for a Software Engineer to join our growing Engineering team and build 
                 out the next generation of our platform. The ideal candidate is a hands-on platform builder with 
                 significant experience in developing scalable data platforms. We’re looking for someone with 
                 experience in business intelligence, analytics, data science and data products. They must have strong, 
                 firsthand technical expertise in a variety of configuration management and big data technologies and 
                 the proven ability to fashion robust scalable solutions that can manage large data sets. They must be at 
                 ease working in an agile environment with little supervision. This person should embody a passion for 
                 continuous improvement and test-driven development.",
     }
]

Fix Parsing Issue

  • Parsing doesn't work for all resume format.
  • Wrong parsing information in fields like name, education.

Different Color Tags for Different Skills

Problem: To display skills tags with different colors instead of a single color.

  • You can make changes to the following
  • You can define a specific color for a specific set of skill such that the same skill sould appear in other cards with the same color as well.

Here's a pic for reference :)
Screenshot from 2021-10-13 08-53-05

Upload Files Error Handling

This uploading file component does not handle HTTP errors.

  • Create Error handling using try catch while doing POST request.
  • Show the error through some visual cue such as a toast, some notification message or a text in the modal itself.
  • Error handle the file type, if it's not pdf it does not post and asks user to change the file type.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.