An open API service indexing awesome lists of open source software.

https://github.com/zzarif/resumechat-ai

Llama RAG app to chat with Applicants' Resume and Extension for LinkedIn
https://github.com/zzarif/resumechat-ai

chatbot chromadb chrome-extension crossencoder fastapi huggingface langchain ollama poetry rag sentence-transformers sseclient streamlit

Last synced: 3 months ago
JSON representation

Llama RAG app to chat with Applicants' Resume and Extension for LinkedIn

Awesome Lists containing this project

README

          





ResumeChat AI



ResumeChat AI



A RAG app to chat with Applicants' Resume and Chrome extension to connect on LinkedIn.



















Overview
Chatbot
Chrome Extension
Architecture
Build from Source
Contact

## 📋 Overview

A Retrieval-Augmented Generation (RAG) app for HRs to chat with Applicants' Resume and Chrome extension to connect on LinkedIn.

## 💬 Chatbot

https://github.com/user-attachments/assets/ee61e26a-6091-43d7-ac6c-618720adf585

#### Frontend Features

- Upload applicants' Resumes as PDF files via File Uploader (accepts multiple files).
- Chat and ask questions about the Resumes to gain valuable insights about the candidates.
- It is developed with `streamlit` and uses `sseclient` to generate streamed response.

#### Backend Features

- Utilizes [`all-MiniLM-L6-v2`](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2) embedding model to split and convert the PDF docs to `chromadb` vector database.
- Retrieves contexts from chat queries and uses Ollama LLMs to generate contextually accurate response.
- The backend was developed with `fastapi` and `langchain` to produce streamed output.

## 🌐 Chrome Extension

https://github.com/user-attachments/assets/81a8f166-cb0e-4df8-8664-62e2f83bae84

#### Key Features

- Load the chrome extension and let AI reply to LinkedIn posts with just a click!
- It is developed with pure `javascript` and uses the same API as chatbot to complete response.

## 💡 Architecture

![architecture](https://github.com/user-attachments/assets/18294966-7b50-460a-b692-1a80cb3d49c0)

## ⚙️ Build from Source

### Serve Ollama

1. Download and install **Ollama** from https://ollama.com/download

2. Pull required open-source LLMs (here we use [`mistral`](https://ollama.com/library/llama3), you can use other models like [`llama3`](https://ollama.com/library/mistral), [`llama2-uncensored`](https://ollama.com/library/llama2-uncensored), etc.)

```bash
ollama pull mistral
```

3. Serve Ollama locally (by default Ollama is served from `http://localhost:11434`)

```bash
ollama serve
```

Note: If this command results in an error, make sure to quit any running Ollama background processes.

### Setup Server and Chatbot

1. Clone the repository

```bash
git clone https://github.com/zzarif/ResumeChat-AI.git
cd ResumeChat-AI/
```

2. Install necessary dependencies

```bash
poetry install
```

3. Activate virtual environment

```bash
poetry shell
```

4. Start chatbot backend server (served from `http://localhost:8000`)

```bash
python chatbot/backend/api.py
```

5. Launch the chatbot (served from `http://localhost:8501`)

```bash
streamlit run chatbot/main.py
```

### Load Chrome Extension

1. Go to `chrome://extensions/`, or, _Chrome ▶ Manage Extensions_
2. Turn on the Developer mode
3. Click _Load Unpacked_
4. Select the [extension](extension) directory
5. Go to `https://www.linkedin.com/feed/` and start commenting!

Note: Everytime you make changes to the extension code you must first `⟳` **reload** it from _Manage Extensions_ and then `⟳` **reload** `https://www.linkedin.com/feed/`

## ✉️ Contact:

[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?logo=linkedin&logoColor=white)](https://www.linkedin.com/in/zibran-zarif-amio-b82717263/) [![Mail](https://img.shields.io/badge/Gmail-EA4335?logo=gmail&logoColor=fff)](mailto:zibran.zarif.amio@gmail.com)