Skip to content

adagio/RAG_sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAG Sample: Resume & Job Description Matching

This project demonstrates a simple Retrieval-Augmented Generation (RAG) pipeline using LangChain, FAISS, and Groq LLM. It matches a candidate's resume with a job description to answer questions such as suitability for a role.

Features

  • Loads and processes both a resume (PDF) and a job description (TXT)
  • Splits documents into manageable chunks for efficient retrieval
  • Embeds documents using HuggingFace sentence transformers
  • Stores embeddings in a FAISS vector database
  • Uses Groq's Llama3-70B model for question answering over the retrieved context

Project Structure

.
├── app.py
├── .env
├── requirements.in
├── docs/
│   └── franco_resume_en.pdf
├── JD/
│   └── 01_falabella_product_owner.txt
└── README.md

Getting Started

1. Install Dependencies

uv pip install -r requirements.in

2. Set Up Environment Variables

Create a .env file with your API keys (e.g., for Groq).

3. Run the Application

python app.py

How It Works

  • The script loads both the resume and job description.
  • Documents are split into overlapping chunks.
  • Chunks are embedded and indexed in FAISS.
  • A question is asked (e.g., "¿puede Franco Cedillo postular al puesto de Product Owner en Falabella?").
  • The system retrieves relevant chunks and uses the LLM to generate an answer.

Customization

  • Replace docs/franco_resume_en.pdf with your own resume.
  • Replace JD/01_falabella_product_owner.txt with any job description.
  • Modify the query in app.py to ask different questions.

Requirements

See requirements.in for the full list.

License

MIT License


Inspired by modern RAG pipelines for HR and recruitment use cases.