Skip to content

Nandan-9/Joblume-back

Repository files navigation

Joblume Backend

Joblume Backend is an AI-powered resume optimization and job matching system. The system uses advanced machine learning techniques to analyze resumes and job descriptions, providing intelligent matching and resume optimization capabilities.

🚀 Features

  • Resume Analysis and Optimization using RAG (Retrieval Augmented Generation)
  • Intelligent Job Description Matching
  • Domain-Specific Knowledge Integration for Technical Roles
  • Vector Database Integration (ChromaDB) for Efficient Information Retrieval
  • RESTful API Backend (Django)

🧠 Technical Architecture

RAG-Based System

  • Dynamic access to domain-specific knowledge
  • Flexible response generation for various resume formats
  • Enhanced relevance assessment for job-skill relationships
  • Improved handling of technical terminology

Processing Pipeline

  • PDF text extraction and processing
  • Section identification and categorization
  • Vector-based information retrieval
  • Dynamic context incorporation

🛠️ Technology Stack

  • Backend Framework: Django
  • Machine Learning: RAG (Retrieval Augmented Generation)
  • Vector Database: ChromaDB for efficient information storage and retrieval
  • Package Manager: Poetry
  • Text Processing:
    • sentence-transformers for text embeddings
    • PDF processing capabilities
  • Core Focus: Computer Science and Technical Role Optimization

📁 Project Structure

.
├── ai/                     # AI components
│   ├── chromaDB.py        # ChromaDB integration
│   ├── embedder.py        # Text embedding functionality
│   ├── flatter.py        
│   └── rag.py             # RAG (Retrieval Augmented Generation)
│
├── FineTuning/            # Model fine-tuning
│   ├── train_model.py     # Model training script
│   ├── inference.py       # Inference implementation
│   ├── resume_processor.py # Resume processing utilities
│   └── results/           # Training checkpoints
│
├── job_backend/           # Django backend
│   ├── settings.py        # Project settings
│   ├── urls.py           # URL configurations
│   └── wsgi.py           # WSGI configurations
│
└── public/               # Public assets
    └── resumes/         # Resume storage

⚙️ Setup

Prerequisites

  • Python >= 3.12
  • Poetry >= 2.0.0

Dependencies

  • Django >= 5.2.1
  • sentence-transformers >= 4.1.0
  1. Clone the repository

    git clone [repository-url]
    cd Joblume-back
  2. Install dependencies using Poetry

    poetry install
  3. Set up the environment

    poetry shell
    python manage.py migrate
  4. Run the development server

    python manage.py runserver

🔧 Configuration

  1. Environment Setup

    • Rename .env.example to .env (if provided)
    • Configure SECRET_KEY in Django settings
    • Set DEBUG = False in production
    • Configure ALLOWED_HOSTS for production deployment
  2. Database Configuration

    • Default SQLite database for development
    • ChromaDB for vector storage and embeddings
    • Configure database settings in job_backend/settings.py
  3. Django Settings

    • Time zone: UTC
    • Language: English (en-us)
    • Static files URL: /static/
    • Default auto field: BigAutoField
  4. AI Model Configuration

    • Fine-tuned models are stored in FineTuning/resume_reorder_model/
    • Model checkpoints are available in FineTuning/results/
    • ChromaDB storage location: ai/chroma_store/

📚 API Documentation

The backend provides RESTful APIs for:

  • Resume upload and analysis
  • Job description matching
  • Resume optimization suggestions

For detailed API documentation, refer to the Django endpoints defined in job_backend/urls.py.

🧪 Testing

The project includes test files and sample data:

  • Test resumes in FineTuning/test/
  • Training data in FineTuning/train/

📝 License

[Add License Information]

🤝 Contributing

[Add Contributing Guidelines]

📮 Contact

[Add Contact Information]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors