Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Uththara15/cv-screener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI CV Screener

A Streamlit web app that uses a large language model to compare your CV against any job description and return a structured analysis: match score, matched skills, missing skills, and specific improvement suggestions.

Built with Groq's free API tier. No OpenAI costs, no paid subscriptions required.


Screenshots

Input

Upload your CV as a PDF, TXT, or MD file, then paste the job description on the right. The dark sidebar holds your Groq API key.

Input screen showing CV upload and job description panels

Match Score and Skills

After analysis you get a score ring, a verdict, and a summary sentence. Below that, matched skills are shown in green and missing skills in red.

Results screen showing 82% match score, strong match badge, and skill tags

Strengths and Improvement Tips

The bottom section breaks down your strongest points for the role and gives numbered, actionable tips for improving your application.

Detail cards showing strongest points and numbered improvement tips


What it does

  1. Accept a CV (PDF, TXT, or pasted text) and a job description
  2. Clean and normalize the text to handle special characters
  3. Send both to llama-3.1-8b-instant via Groq with a structured prompt
  4. Parse the JSON response and render a visual match report
  5. Show matched skills, missing skills, strengths, and actionable tips

Tech stack

Layer Tool
UI Streamlit
LLM Llama 3.1 8B via Groq API
PDF parsing PyPDF2
Fonts Plus Jakarta Sans, JetBrains Mono
Icons Tabler Icons
Language Python 3.10+
Cost Free (Groq free tier)

How to run locally

1. Clone the repo

git clone https://github.com/YOUR_USERNAME/ai-cv-screener.git
cd ai-cv-screener

2. Create a virtual environment

python -m venv venv
venv\Scripts\activate        # Windows
source venv/bin/activate     # Mac / Linux

3. Install dependencies

pip install -r requirements.txt

4. Get a free Groq API key

Go to console.groq.com, sign up, and create an API key. No credit card needed.

5. Run the app

streamlit run app.py

Open http://localhost:8501 and paste your key into the sidebar.


Project structure

ai-cv-screener/
├── app.py                  # Main Streamlit application
├── requirements.txt        # Python dependencies
├── screenshots/
│   ├── input.png
│   ├── results.png
│   └── details.png
├── .env.example
├── .gitignore
└── README.md

What I learned building this

  • How to write structured prompts that reliably return JSON from an LLM
  • How to handle JSON parsing failures gracefully when smaller models break format
  • How to extract and normalize text from PDFs in Python, including handling Finnish special characters
  • How to apply deep CSS customization on top of Streamlit to produce a production-quality UI
  • How Groq's OpenAI-compatible API works and how to manage authentication correctly
  • How to debug encoding errors from real-world PDF files

Connection to my background

My thesis at JAMK evaluated multilingual sentence embedding models for Finnish and English course description similarity. This project applies the same core idea (comparing two text documents semantically) but uses a generative LLM instead of embedding cosine similarity. A natural extension of this project would be to add a RAG layer using sentence-transformers to do more granular skill extraction at the embedding level rather than relying entirely on the LLM prompt.


Possible next steps

  • Add Finnish language support for job postings from Duunitori or TE-palvelut
  • Add a CV rewrite section that rewrites weak bullet points to better match the job
  • Deploy on Streamlit Cloud (free tier available, takes 5 minutes)
  • Swap to a stronger model like llama-3.3-70b-versatile for more accurate analysis
  • Add side-by-side comparison of original and improved CV sections

Author

Madee — IT Engineer, JAMK University of Applied Sciences Specialization: AI and Data Analytics

About

AI-powered CV screener using Llama 3.1 via Groq. Upload a CV and job description to get a match score, matched skills, missing skills, and improvement tips. Built with Streamlit.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages