title: CareerAI
emoji: 🚀
colorFrom: green
colorTo: blue
sdk: docker
app_port: 7860
pinned: true
CareerAI
🧠 AI-Powered Career Assistant | Asistente Inteligente de Carrera
Analyze your CV · Generate Cover Letters · Simulate Interviews · Search Jobs
🇺🇸 English
🎬 What is CareerAI?
CareerAI is an AI-powered web application that helps you boost your professional career. Upload your documents (CV, cover letters, certificates) and the AI assistant analyzes them using advanced Retrieval-Augmented Generation (RAG) to give you personalized recommendations, generate professional documents, and prepare you for job interviews.
✨ 100% Free · No hallucinations · Based on your real documents
🚀 Key Features
🤖 Custom AI Models
| Model | Engine | Description |
|---|---|---|
| 🧠 CareerAI Pro | Llama 3.3 70B | Maximum quality · Detailed responses |
| ⚡ CareerAI Flash | Llama 3.1 8B | Ultra fast · Instant responses |
💬 5 Assistant Modes
| Mode | What it does |
|---|---|
| 💬 General Chat | Ask anything about your professional career |
| 🎯 Job Match | Analyze your compatibility with job offers (% match) |
| ✉️ Cover Letter | Generate personalized cover letters using your real CV |
| 📈 Skills Gap | Identify missing skills + roadmap to improve |
| 🎤 Interview | Simulate interviews with technical and STAR method questions |
📋 Full Feature List
| Feature | Description |
|---|---|
| 📄 Multi-format | Supports PDF, DOCX, TXT, images (JPG, PNG, WebP) |
| 🖼️ Vision AI | Smart reading of scanned PDFs and document photos |
| ⚡ Streaming | Real-time token-by-token responses |
| 📤 Premium Export | Export to PDF, DOCX, HTML, TXT with professional formatting |
| 📊 Dashboard | Skills charts, professional timeline, AI insights |
| 🔐 Full Auth | Register, login, Google OAuth, password reset |
| 💼 Job Search | Integration with LinkedIn, Indeed, Glassdoor via JSearch |
| 🎨 Premium UI | Claude/ChatGPT-style design with dark mode |
| 📱 Responsive | Works on desktop, tablet, and mobile |
| 💾 Persistence | Chat history synced to the cloud |
🧠 RAG Pipeline v2.0
CareerAI uses an advanced retrieval pipeline combining multiple techniques to find the most relevant information from your documents:
📝 User Query
│
├── 1️⃣ Vector Search (Semantic)
│ └── ChromaDB + BGE-M3 (100+ languages)
│
├── 2️⃣ Keyword Search (Lexical)
│ └── BM25 lexical matching
│
├── 3️⃣ Reciprocal Rank Fusion (RRF)
│ └── Merges semantic + lexical results
│
├── 4️⃣ Reranking (Cross-Encoder)
│ └── BGE-Reranker-v2-m3 (relevance reordering)
│
└── 5️⃣ LLM with optimized context
└── Groq + Llama 3.3 70B (streaming)
Available Embedding Models
| Model | Languages | Size | Performance |
|---|---|---|---|
| 🌍 BGE-M3 (Recommended) | 100+ | ~2.3 GB | ⭐⭐⭐⭐⭐ |
| 🚀 GTE Multilingual | 70+ | ~580 MB | ⭐⭐⭐⭐ |
| 📐 Multilingual E5 | 100+ | ~1.1 GB | ⭐⭐⭐⭐ |
| ⚡ MiniLM v2 | English | ~90 MB | ⭐⭐⭐ |
🛠️ Tech Stack
| Layer | Technology |
|---|---|
| Backend | FastAPI + Uvicorn |
| Frontend | HTML5 + CSS3 + JavaScript (Claude-style) |
| LLM | Groq API (Llama 3.3 70B / Llama 3.1 8B) |
| RAG | ChromaDB + BM25 + BGE-M3 + Reranker + RRF |
| Database | SQLite + SQLAlchemy |
| Auth | JWT + BCrypt + Google OAuth |
| FastAPI-Mail + Gmail SMTP | |
| Vision AI | Groq + Llama 4 Scout |
| Embeddings | HuggingFace (BGE-M3, GTE, E5, MiniLM) |
| Export | FPDF2, python-docx |
| Job Search | JSearch API (RapidAPI) |
� Installation & Setup
1. Clone the repository
git clone https://github.com/Nicola671/CareerAI.git
cd CareerAI
2. Create virtual environment
python -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
3. Install dependencies
pip install -r requirements.txt
4. Configure environment variables
Create a .env file in the project root:
# Groq API Key (free from console.groq.com)
GROQ_API_KEY=your_api_key_here
# JWT Secret (change to something random)
SECRET_KEY=your_very_long_random_secret_key
# Email for password recovery (optional)
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
MAIL_FROM=your_email@gmail.com
# JSearch API Key for job search (optional)
JSEARCH_API_KEY=your_jsearch_key
5. Get Groq API Key (FREE)
- Go to console.groq.com
- Create a free account
- Go to "API Keys" → "Create API Key"
- Copy your key (starts with
gsk_...) - Paste it in your
.envfile
6. Run
uvicorn api:app --reload --port 8000
Open http://localhost:8000 in your browser 🚀
� API Endpoints (22 routes)
| Group | Endpoints | Description |
|---|---|---|
| 🏠 Frontend | GET / |
Serves the web app |
| ⚙️ Config | GET /api/status, POST /api/config |
Status & configuration |
| 💬 Chat | POST /api/chat, POST /api/chat/stream |
Chat with/without streaming |
| 📄 Docs | POST /api/documents, GET /api/documents, DELETE /api/documents/{file} |
Document CRUD |
| 📤 Export | POST /api/export, POST /api/export/conversation |
Export to PDF/DOCX/HTML/TXT |
| 💼 Jobs | GET /api/jobs |
Job search |
| 📊 Dashboard | GET /api/dashboard |
AI-powered profile analysis |
| 🔐 Auth | POST /api/auth/register, POST /api/auth/login, GET /api/auth/me |
Full authentication |
Interactive API docs: http://localhost:8000/docs (Swagger UI)
📊 Project Metrics
| Metric | Value |
|---|---|
| Lines of code | 8,400+ |
| API Endpoints | 22 |
| Frontend functions | 80+ |
| Backend functions | 60+ |
| Assistant modes | 5 |
| Export formats | 4 (PDF, DOCX, HTML, TXT) |
| Upload formats | 7 (PDF, DOCX, TXT, JPG, PNG, WEBP) |
| Embedding models | 4 |
🇦🇷 Español
🎬 ¿Qué es CareerAI?
CareerAI es una aplicación web de inteligencia artificial que te ayuda a impulsar tu carrera profesional. Subís tus documentos (CV, cartas, certificados) y el asistente los analiza con IA avanzada (RAG) para darte recomendaciones personalizadas, generar documentos profesionales y prepararte para entrevistas.
✨ Todo esto 100% gratis · Sin alucinaciones · Basado en tus documentos reales
🚀 Funcionalidades Principales
🤖 Modelos de IA Personalizados
| Modelo | Motor | Descripción |
|---|---|---|
| 🧠 CareerAI Pro | Llama 3.3 70B | Máxima calidad · Respuestas detalladas |
| ⚡ CareerAI Flash | Llama 3.1 8B | Ultra rápido · Respuestas al instante |
💬 5 Modos del Asistente
| Modo | Qué hace |
|---|---|
| 💬 Chat General | Consultá lo que quieras sobre tu carrera profesional |
| 🎯 Job Match | Analizá tu compatibilidad con ofertas de trabajo (% de match) |
| ✉️ Cover Letter | Generá cartas de presentación personalizadas usando tu CV real |
| 📈 Skills Gap | Identificá habilidades faltantes + roadmap para mejorar |
| 🎤 Entrevista | Simulá entrevistas con preguntas técnicas y método STAR |
📋 Lista Completa de Características
| Feature | Descripción |
|---|---|
| 📄 Multi-formato | Soporta PDF, DOCX, TXT, imágenes (JPG, PNG, WebP) |
| 🖼️ Vision AI | Lectura inteligente de PDFs escaneados y fotos de documentos |
| ⚡ Streaming | Respuestas en tiempo real token por token |
| 📤 Export Premium | Exportá a PDF, DOCX, HTML, TXT con formato profesional |
| 📊 Dashboard | Gráficos de skills, timeline profesional, insights de IA |
| 🔐 Auth Completo | Registro, login, Google OAuth, reset de contraseña |
| 💼 Búsqueda de Empleo | Integración con LinkedIn, Indeed, Glassdoor via JSearch |
| 🎨 UI Premium | Diseño tipo Claude/ChatGPT con dark mode |
| 📱 Responsive | Funciona en desktop, tablet y celular |
| 💾 Persistencia | Historial de chats sincronizado en la nube |
🧠 Pipeline RAG v2.0
CareerAI usa un pipeline de retrieval avanzado que combina múltiples técnicas para encontrar la información más relevante de tus documentos:
📝 Query del usuario
│
├── 1️⃣ Vector Search (Semántico)
│ └── ChromaDB + BGE-M3 (100+ idiomas)
│
├── 2️⃣ Keyword Search (Léxico)
│ └── BM25 lexical matching
│
├── 3️⃣ Reciprocal Rank Fusion (RRF)
│ └── Combina resultados semánticos + léxicos
│
├── 4️⃣ Reranking (Cross-Encoder)
│ └── BGE-Reranker-v2-m3 (reordena por relevancia)
│
└── 5️⃣ LLM con contexto optimizado
└── Groq + Llama 3.3 70B (streaming)
🛠️ Stack Tecnológico
| Capa | Tecnología |
|---|---|
| Backend | FastAPI + Uvicorn |
| Frontend | HTML5 + CSS3 + JavaScript (estilo Claude) |
| LLM | Groq API (Llama 3.3 70B / Llama 3.1 8B) |
| RAG | ChromaDB + BM25 + BGE-M3 + Reranker + RRF |
| Base de datos | SQLite + SQLAlchemy |
| Auth | JWT + BCrypt + Google OAuth |
| FastAPI-Mail + Gmail SMTP | |
| Vision AI | Groq + Llama 4 Scout |
| Embeddings | HuggingFace (BGE-M3, GTE, E5, MiniLM) |
| Exportación | FPDF2, python-docx |
| Búsqueda | JSearch API (RapidAPI) |
🚀 Instalación y Setup
1. Clonar el repositorio
git clone https://github.com/Nicola671/CareerAI.git
cd CareerAI
2. Crear entorno virtual
python -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
3. Instalar dependencias
pip install -r requirements.txt
4. Configurar variables de entorno
Creá un archivo .env en la raíz del proyecto:
# Groq API Key (gratis desde console.groq.com)
GROQ_API_KEY=tu_api_key_aqui
# JWT Secret (cambiá por algo aleatorio)
SECRET_KEY=tu_secret_key_muy_larga_y_aleatoria
# Email para recuperación de contraseña (opcional)
MAIL_USERNAME=tu_email@gmail.com
MAIL_PASSWORD=tu_app_password
MAIL_FROM=tu_email@gmail.com
# JSearch API Key para búsqueda de empleos (opcional)
JSEARCH_API_KEY=tu_jsearch_key
5. Obtener API Key de Groq (GRATIS)
- Andá a console.groq.com
- Creá una cuenta gratis
- Andá a "API Keys" → "Create API Key"
- Copiá tu key (empieza con
gsk_...) - Pegala en el archivo
.env
6. Ejecutar
uvicorn api:app --reload --port 8000
Abrí http://localhost:8000 en tu navegador 🚀
� Estructura del Proyecto
CareerAI/
├── api.py # 🚀 Backend FastAPI (22 endpoints)
├── requirements.txt # 📦 Dependencias Python
├── .env # 🔐 Variables de entorno (NO se sube a Git)
├── README.md # 📖 Este archivo
│
├── frontend/ # 🎨 UI tipo Claude
│ ├── index.html # Estructura HTML
│ ├── app.js # Lógica completa (1,842 líneas)
│ ├── styles.css # Sistema de diseño (1,695 líneas)
│ ├── icon-pro.png # 🧠 Icono CareerAI Pro
│ ├── icon-flash.png # ⚡ Icono CareerAI Flash
│ └── favicon.png # Favicon
│
├── src/ # 🧠 Core Engine
│ ├── career_assistant.py # Motor IA con 5 modos especializados
│ ├── rag_engine.py # RAG v2.0 (Hybrid + Reranking + RRF)
│ ├── document_processor.py # Procesador multi-formato + Vision AI
│ ├── profile_extractor.py # Extractor de perfil para dashboard
│ ├── exporter.py # Exportación PDF/DOCX/HTML/TXT
│ ├── auth.py # Autenticación (JWT + Google OAuth)
│ └── models.py # Modelos SQLAlchemy (User, Conversation)
│
└── data/ # 💾 Datos (no se suben a Git)
├── uploads/ # Documentos subidos
└── vectordb/ # ChromaDB persistencia
🆓 ¿Por qué es 100% Gratis? / Why is it 100% Free?
| Component | Cost |
|---|---|
| Groq API (Llama 3.3 70B) | ✅ Free (generous rate limits) |
| BGE-M3 Embeddings | ✅ Free (runs locally) |
| BGE-Reranker-v2-m3 | ✅ Free (runs locally) |
| BM25 Keyword Search | ✅ Free (runs locally) |
| ChromaDB Vector Store | ✅ Free (runs locally) |
| FastAPI + Frontend | ✅ Free (open source) |
| SQLite Database | ✅ Free (runs locally) |
🤝 Contributing
Contributions are welcome! If you want to improve CareerAI:
- Fork the repository
- Create a branch:
git checkout -b feature/new-feature - Commit:
git commit -m "Add new feature" - Push:
git push origin feature/new-feature - Open a Pull Request
📄 License
This project is licensed under the MIT License. Feel free to use, modify, and distribute it.
👨💻 Author / Autor
Nicolás Medina
If this project helped you, consider giving it a ⭐ on GitHub!
Si este proyecto te ayudó, ¡considerá darle una ⭐ en GitHub!
CareerAI v1.0 — FastAPI + RAG v2.0 + Groq
Made with ❤️ in Argentina 🇦🇷