Do you want to evaluate a resume against a Job Description and a Company Description from say, Linkedin? This App allows you to assume the role of a Recruiter for the same Company and gives a detailed explanation regarding candidate fit based on the uploaded Resume.
This is a Streamlit web application for evaluating resumes using RAG (Retrieval-Augmented Generation) and RAGAS evaluation metrics.
Try the Resume RAG Evaluation System – Access the live Streamlit app for resume evaluation. You will need your own OpenAI API Key.
- Supports PDF and DOCX resume files
- Vector database creation using FAISS and OpenAIEmbeddings
- Input company descriptions and job requirements
- Generate structured candidate evaluation reports
- Uses faithful RAG prompting to prevent hallucination
- Enhanced retrieval for comprehensive analysis
- Custom question and ground truth input
- Comprehensive evaluation using 4 key metrics:
- Faithfulness: Answer grounding in context
- Answer Relevancy: Relevance to the question
- Answer Correctness: Accuracy compared to ground truth
- Semantic Similarity: Semantic similarity to expected answer
Two RAG Chains are created for the two separate Streamlit components.
- Evaluation Chain to evaluate the input resume
- RAGAS Chain to evaluate customer user questions with a more faithful answer generation
- Input: Question about candidate evaluation
- Retrieval: Multi-query retriever gets relevant resume chunks
- Context Injection: Retrieved content becomes {context}, original question becomes {question}
- Prompt Template: Fills the evaluation template with context and question
- LLM Processing: GPT-3.5-turbo generates structured evaluation
- Output Parsing: Converts response to clean string
- Input: Specific question for RAGAS evaluation
- Retrieval: Gets top 12 similar resume chunks
- Context Injection: Retrieved content + question into template
- Strict Prompting: Forces LLM to only use provided context
- LLM Processing: Generates faithful, grounded answer
- Output: Clean string for RAGAS metric evaluation
Let's build a Chat solution for interfacing with PDF's.
This Act is easy to find with a quick google search (https://www.congress.gov/bill/119th-congress/house-bill/1/text). Given that the document is quite long and that I'd rather where my data science hat than my legal expert hat, let's leverage some applications and libraries to have a conversation about this Act.
-
LangChain: It is a powerful framework of libraries for using large language models effectively.
-
Ollama: It is a platform which allows us to run the large language models locally in our machine, so that we don’t end up paying and using cloud based services to access the LLMs (also keeping data local).
-
OllamaEmbedings (nomic_embed_text): An API provided by Nomic to generate quality embeddings from text data. Embeddings are dense vector representation of text capturing the semantic meaning, enabling tasks like clustering, similarity search and visualization.
-
ChromaDB: Open-source vector database designed for managing querying embeddings.
-
Llama 3.1 LLM: Large language model created by Meta
-
Ragas: a library that provides tools to supercharge the evaluation of Large Language Model (LLM) applications. It is designed to help you evaluate your LLM applications with ease and confidence.
Check out my Medium Blog!
This project is licensed under the MIT License - see the LICENSE file for details.
Mateo Wheeler
- LinkedIn: mateo-wheeler
- GitHub: mwheeler235
