Skip to content

noahnghg/BMATS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BMATS: Bias Mitigation for Application Tracking System

A FastAPI-based application designed to reduce hiring bias by parsing, anonymizing, and semantically matching resumes and job descriptions.

Features

  • Resume Parsing: Extract structured data from PDF resumes using pdfplumber.
  • Anonymization: Remove personally identifiable information (PII) to ensure unbiased screening using spacy NER.
  • Semantic Matching: Match candidates to jobs based on skills and context using sentence-transformers.
  • REST API: Built with FastAPI for high performance and easy integration.
  • React Frontend: Modern UI built with React and Vite.

Getting Started

Prerequisites

  • Python 3.9+ (Python 3.14 is currently unsupported by some dependencies)
  • Node.js 18+ (for frontend)

Backend Setup

  1. Clone the repository

    git clone <repository_url>
    cd hackthebiasproject
  2. Create a Virtual Environment

    python3.11 -m venv venv
  3. Activate the Virtual Environment

    • macOS/Linux:
      source venv/bin/activate
    • Windows:
      .\venv\Scripts\activate
  4. Install Dependencies

    pip install -r requirements.txt
  5. Download spaCy Model

    python -m spacy download en_core_web_sm
  6. Run the Backend Server

    uvicorn main:app --reload
    • API: http://127.0.0.1:8000
    • Docs: http://127.0.0.1:8000/docs

Frontend Setup

  1. Navigate to frontend folder

    cd frontend
  2. Install dependencies

    npm install
  3. Run the development server

    npm run dev
    • Frontend: http://localhost:3000

Project Structure

hackthebiasproject/
├── app/
│   ├── routes/          # API endpoints
│   └── services/        # Business logic
├── core/
│   └── database.py      # SQLite database with SQLModel
├── models/              # Pydantic models
├── utils/
│   ├── anonymizer.py    # PII removal
│   ├── parser.py        # PDF extraction
│   └── semantics.py     # NLP matching
├── frontend/            # React + Vite frontend
├── main.py              # FastAPI entry point
└── requirements.txt     # Python dependencies

API Endpoints

Endpoint Method Description
/jobs/ GET List all jobs
/jobs/ POST Create a job
/users/upload-resume POST Upload resume & create/update user
/applications/ POST Create application

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors