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.
- Upload multiple resumes (TXT format)
- Input a job description
- Rank candidates by cosine similarity score
- Download candidate resumes
- Minimal, user-friendly web interface
- Python 3.11+
- Poetry
- Streamlit
- python-dotenv
Other dependencies might be required depending on the matching module implementation.
- Clone the repository:
git clone <repository-url>
cd <repository-folder>- Install dependencies using Poetry:
poetry install- Activate the virtual environment:
$(poetry env activate)- Create a
.envfile if required (used bydotenvto load environment variables).
Run the Streamlit app:
streamlit run app.py- Enter the Job Description in the provided text area.
- Upload resumes in TXT format.
- Click Run Matching to process resumes.
- View the ranked candidates and download individual resumes.
.
├── 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
- Users input a job description and upload resumes.
- The
matching.execute()function calculates similarity scores between the job description and each resume. - Candidates are ranked by score in descending order.
- Users can download each candidate’s resume directly from the app.
- This is a PoC; real-world use would require additional validation, error handling, and security measures.
- The matching logic is abstracted in the
matching.pymodule. Make sure to implement your own similarity algorithm.