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
- Host: GitHub
- URL: https://github.com/zzarif/resumechat-ai
- Owner: zzarif
- License: mit
- Created: 2024-07-28T11:05:15.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-16T04:03:22.000Z (almost 2 years ago)
- Last Synced: 2025-03-22T05:26:51.011Z (over 1 year ago)
- Topics: chatbot, chromadb, chrome-extension, crossencoder, fastapi, huggingface, langchain, ollama, poetry, rag, sentence-transformers, sseclient, streamlit
- Language: Python
- Homepage:
- Size: 735 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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

## ⚙️ 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:
[](https://www.linkedin.com/in/zibran-zarif-amio-b82717263/) [](mailto:zibran.zarif.amio@gmail.com)