srbhr / Resume-Matcher

Resume Matcher is an open source, free tool to improve your resume. It works by using language models to compare and rank resumes with job descriptions.
https://www.resumematcher.fyi/
Apache License 2.0
4.7k stars 1.85k forks source link

Feature: Streamlit Interactive v1.0 #184

Closed imhalcyon closed 8 months ago

imhalcyon commented 9 months ago

Pull Request Title

Interactive streamlit application with file upload and new column based UI

Related Issue

N/A

Description

This new interactive streamlit application allows users to directly upload or drag-and-drop the PDF files using streamlit's file_uploader component. The application also includes a new UI to allow side-by-side comparisons for each of the following:

  1. Parsed Data
  2. Extracted Keywords
  3. Extracted Entities
  4. Keywords & Values
  5. Key Topics

Type

Proposed Changes

N/A

Screenshots / Code Snippets (if applicable)

Landing Page: image

Notification while uploading a file - Also includes a spinner to show progress: image

After processing: image

Each component holds the grid layout to avoid overlap for easy comparison: Only 1 expander opened: image

Both expanders opened: image

The Similarity Score and common words has been pushed to the bottom section outside of the grid: image

The Similarity Score also changes color based on the following rules - subject to change:

# Default color to green
score_color = "green"
if similarity_score < 60:
    score_color = "red"
elif 60 <= similarity_score < 75:
    score_color = "orange"

How to Test

  1. Execute pip install -r requirements.txt to upgrade streamlit and other dependencies
  2. Include config.yml file if similarity score needs to be calculated
  3. Execute streamlit run streamlit_interactive.py
  4. Upload/Drag-and-drop the resume and job description PDF
  5. Done

Checklist

Additional Information

Devasy23 commented 9 months ago

Hi there! Firstly, huge thanks for your contributions and effort! I've gone through the recent commit, and I noticed a few things that might need some adjustments:

  1. The extracted entities graphs seem a bit stretched. I wonder if setting the layout to "wide" might enhance the visualization. You can check the screenshot image.

  2. I observed that the key topics are currently being extracted only from the job description and not from the resume. Ideally, having key topics from both sources would provide a more comprehensive analysis. Although keywords and values are accurately extracted from the resume, the same isn't happening for the JD. image image

  3. One thing I noticed during my run was that the score wasn't displayed. Understanding the match score is crucial, so I'm wondering if there's a reason why it's not visible.

Your work is greatly appreciated, and I'm looking forward to your insights on these observations! 🌟

srbhr commented 9 months ago

@imhalcyon I need those resume jsons for the streamlit cloud file to run the demo properly.

imhalcyon commented 9 months ago

@srbhr , sure. I've reverted that commit. Please check now.

imhalcyon commented 8 months ago

Hello @srbhr , is this still being tested?

srbhr commented 8 months ago

Changes look really cool.

ezgif-5-03a951ae7c