Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

CV Generator

A Streamlit-based application for generating tailored CVs using AI. Upload your CV, provide a job description, and get a customized CV optimized for the position.

Features

  • CV Management: Edit and manage your CV data in JSON format
  • CV Upload & Analysis: Upload existing CVs (PDF, DOCX, TXT) and automatically extract information
  • User Story: Maintain a personal user story to provide context for CV generation
  • AI-Powered CV Generation: Generate tailored CVs based on job descriptions
  • Prompt Injection: Add custom HTML/CSS modifications to your generated CV
  • CV Preview: View and print generated CVs directly in the browser
  • History Viewer: Access and view previously generated CV versions

Requirements

  • Python 3.14 or higher
  • Ollama (for running local LLM models)

Installation

  1. Clone the repository:
git clone <repository-url>
cd cv-generator
  1. Install dependencies using uv (recommended):
uv sync

Or using pip:

pip install -r requirements.txt
  1. Make sure Ollama is running with a compatible model (e.g., llama3.2)

Running the Application

Start the Streamlit application:

streamlit run streamlit_app.py

Or with uv:

uv run streamlit run streamlit_app.py

The application will open in your default web browser at http://localhost:8501

Usage

  1. Upload or Edit Your CV

    • Upload an existing CV file (PDF, DOCX, or TXT) or manually edit the CV JSON
    • The system will analyze and extract relevant information
  2. Add Your User Story (Optional)

    • Provide additional context about your background and career goals
    • This helps the AI generate more personalized CVs
  3. Generate Tailored CV

    • Paste the job description
    • Add any additional instructions
    • Optionally add custom HTML/CSS prompt injection
    • Click "Generate" to create your tailored CV
  4. View and Print

    • Preview the generated CV in the browser
    • Use the print button to export as PDF (A4 format)
    • View previously generated CVs from the history section

Project Structure

cv-generator/
├── streamlit_app.py       # Main Streamlit application
├── cv_generator.py        # CV generation logic
├── cv_analyzer.py         # CV analysis and extraction
├── cv_renderer.py         # HTML rendering using Jinja2
├── llm.py                 # LLM integration
├── models.py              # Pydantic models
├── cv.json                # Current CV data
├── user_story.txt         # User story file
├── templates/             # Jinja2 templates
│   └── cv_template.html
├── temp/                  # Generated CV files
└── text/                  # Translations
    ├── base.py
    └── en.py

Dependencies

  • streamlit: Web application framework
  • langchain: LLM orchestration
  • langchain-ollama: Ollama integration
  • pydantic: Data validation
  • pypdf: PDF processing
  • jinja2: Template rendering
  • thefuzz: Fuzzy string matching

License

[Add your license here]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages