Skip to content

iRaySpace/bias-free-resume-screener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bias-Free Resume Screening (Proof of Concept)

This is a proof-of-concept (PoC) application for bias-free resume screening. It uses Streamlit for the user interface and performs basic resume-to-job description matching. Candidates are ranked based on a similarity score, and resumes can be downloaded directly from the interface.

Features

  • Upload multiple resumes (TXT format)
  • Input a job description
  • Rank candidates by cosine similarity score
  • Download candidate resumes
  • Minimal, user-friendly web interface

Requirements

  • Python 3.11+
  • Poetry
  • Streamlit
  • python-dotenv

Other dependencies might be required depending on the matching module implementation.

Installation

  1. Clone the repository:
git clone <repository-url>
cd <repository-folder>
  1. Install dependencies using Poetry:
poetry install
  1. Activate the virtual environment:
$(poetry env activate)
  1. Create a .env file if required (used by dotenv to load environment variables).

Usage

Run the Streamlit app:

streamlit run app.py
  1. Enter the Job Description in the provided text area.
  2. Upload resumes in TXT format.
  3. Click Run Matching to process resumes.
  4. View the ranked candidates and download individual resumes.

Project Structure

.
├── app.py                  # Main Streamlit application
├── matching.py             # Module that handles resume-job matching
├── pyproject.toml          # Poetry project configuration
├── .env                    # Environment variables (for OPENAPI_AI_KEY)
└── README.md               # This file

How It Works

  1. Users input a job description and upload resumes.
  2. The matching.execute() function calculates similarity scores between the job description and each resume.
  3. Candidates are ranked by score in descending order.
  4. Users can download each candidate’s resume directly from the app.

Notes

  • This is a PoC; real-world use would require additional validation, error handling, and security measures.
  • The matching logic is abstracted in the matching.py module. Make sure to implement your own similarity algorithm.

About

Traditional resume screening is time-consuming and prone to human bias. In this, we use automated matching (cosine similarity) between resumes and job descriptions to rank candidates fairly.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages