Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#🧭 ATS-Savvy Career Coach — Naive RAG Chatbot

A Retrieval-Augmented Generation app that helps job-seekers craft ATS-friendly resumes, prepare interview answers, and target JD keywords—grounded entirely in a curated, practical corpus. Supports user uploads of Job Descriptions (JDs) or CVs to tailor guidance.

Why it stands out

Typical RAG demos index Wikipedia. This project targets career outcomes: ATS parsing, STAR bullet writing, interview mastery, and keyword targeting. It also ingests user JDs/CVs and uses a CrossEncoder reranker for precise, actionable answers.

Features

Multi-format ingestion: Generated PDF + MD/TXT + user uploads (PDF/TXT)

Embeddings: all-MiniLM-L6-v2 (HuggingFace)

Vector store: Persistent Chroma (./chroma_jobcoach)

Retrieval: Dense + CrossEncoder rerank (ms-marco-MiniLM-L-6-v2)

Prompting: Grounded answers with citations; admits “don’t know”

UI: Streamlit chat, dataset switcher (CV/Cover Letters, Interviews, ATS & Keywords, All)

Modes: Q&A and Summarization

JD-aware: Paste or upload your JD/CV for tailored, grounded advice

Export: Chat history → PDF

Tech Stack

LangChain (prompting, loaders)

HuggingFace Embeddings (all-MiniLM-L6-v2)

Chroma (persistent vector DB)

Sentence-Transformers CrossEncoder (MS MARCO MiniLM)

Streamlit (UI)

OpenAI Chat model (generation; configurable)

How it works

Ingestion & chunking

Generates a compact ATS PDF and loads MD/TXT guidance.

Accepts user uploads (JD/CV).

Splits with chunk_size=650, overlap=100 to preserve lists/STAR flow.

Embeddings & indexing

all-MiniLM-L6-v2 sentence embeddings.

Chroma persistence in ./chroma_jobcoach.

Retrieval & reranking

Dense top-k similarity → CrossEncoder reranks to top-m.

Boosts precision on answer-bearing passages (e.g., exact ATS rule or STAR recipe).

Prompting & generation

Strict grounding: cite sources; say “don’t know” when missing.

Q&A and Summarization templates.

Why reranking improves accuracy

Dense search maximizes recall but often returns near-matches. The CrossEncoder jointly attends to the (query, chunk), promoting the passage that directly answers the user’s need (e.g., “ATS: avoid tables” over generic resume tips). This reduces off-topic answers and clarifies what to write.

Example Q&A

Q: What are ATS-safe ways to format a resume? A: Use a single column, avoid tables/text boxes, clear section headers, and mirror JD keywords in Skills and bullets. (ATS & Keywords — ATS_Savvy sections)

Q: Tailor bullets for SDR role (JD uploaded). A: Highlight pipeline growth, CRM proficiency, MQL→SQL conversion, quota attainment, and call/email cadence improvements—each with metrics. (CV & Cover Letters + ATS & Keywords)

Limitations & improvements

Small demo corpus; bring your own PDFs/handbooks for better coverage.

OpenAI key required for generation; retrieval runs locally.

Add BM25 hybrid for sparse + dense gains.

Add inline source highlighting within generated text.

Contribute your own docs

Add PDFs to data/ and uploads/.

Update load_and_chunk_documents() to include new sources.

Rebuild index via the sidebar button.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages