Skip to content

AI-powered resume and cover letter generator with Chrome extension integration, vector similarity search, and intelligent job matching using OpenAI and LangChain

Notifications You must be signed in to change notification settings

amirrezaskh/Aria

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

32 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Aria Logo Aria โ€“ AI-Powered Resume & Cover Letter Generation Platform

Python 3.11+ React 19 TypeScript Chrome Extension License: MIT

Aria is an intelligent AI-powered platform that generates personalized resumes and cover letters using advanced language models, vector similarity matching, and seamless browser integration. The platform analyzes job descriptions and automatically creates tailored application materials optimized for specific positions.

๐ŸŒŸ Key Features

๐Ÿค– AI-Powered Document Generation

  • Smart Resume Creation: Generates tailored resumes based on job descriptions and user profile using LangChain workflows
  • Dynamic Cover Letters: Creates personalized cover letters matching specific job requirements
  • Template-Based Generation: Choose from 4 professional templates (ML Engineering, Data Science, Software Engineering, Overall)
  • LaTeX Processing: High-quality PDF generation with professional formatting

๐Ÿ” Intelligent Job Matching & Similarity

  • Vector Similarity Search: Uses OpenAI embeddings (text-embedding-3-small) to find similar job applications
  • Semantic Understanding: Analyzes job descriptions using pgvector for better content matching
  • Duplicate Prevention: Prevents duplicate applications to the same company-position combinations
  • Smart Recommendations: Suggests existing resumes for similar positions

๐ŸŒ Chrome Extension Integration

  • Automatic Job Detection: Extracts job data from LinkedIn, Indeed, and Wellfound/AngelList
  • Side Panel Interface: Embedded React app directly in Chrome browser
  • Real-time Data Transfer: Seamless communication between web pages and application
  • One-Click Generation: Generate documents without leaving the job posting page

๐Ÿ”„ Advanced Workflow Intelligence

  • Selective Generation: Smart routing between full generation vs. cover letter-only workflows
  • Template Reuse: Quickly generate cover letters using existing resume templates
  • Document Management: Organized storage and retrieval of generated documents
  • Context Awareness: Retrieves relevant experience and project information

๐Ÿ“Š Database & Analytics

  • PostgreSQL + pgvector: Advanced vector database for similarity search
  • Job Application Tracking: Comprehensive storage of all job applications
  • System Health Monitoring: Database connection monitoring and health checks
  • Embedding Management: Automatic backfill and management of vector embeddings

๐Ÿ—๏ธ Architecture

Aria/
โ”œโ”€โ”€ ๐ŸŽจ frontend/                    # React + TypeScript Web Application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/            # Reusable UI components (Material-UI)
โ”‚   โ”‚   โ”œโ”€โ”€ features/generate/     # Document generation feature
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ components/        # Generation-specific components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ hooks/             # Custom React hooks (useGenerateForm)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ types/             # TypeScript type definitions
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ constants/         # API endpoints and templates
โ”‚   โ”‚   โ””โ”€โ”€ types/                 # Global TypeScript types
โ”‚   โ”œโ”€โ”€ public/                    # Static assets and icons
โ”‚   โ””โ”€โ”€ package.json               # Dependencies (React 19, Material-UI)
โ”‚
โ”œโ”€โ”€ ๐Ÿค– agent/                      # Python Backend & AI Engine
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ api/                   # Flask REST API
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ routes/            # API route handlers
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ generation.py  # Document generation endpoints
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ jobs.py        # Job management endpoints
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ resumes.py     # Resume serving endpoints
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ database.py    # Database management
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ context.py     # Vector store management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ middleware/        # Error handling and logging
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ utils/             # File helpers and utilities
โ”‚   โ”‚   โ”œโ”€โ”€ chains/                # LangChain conversation chains
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ experience_chain.py      # Experience generation
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ skills_chain.py          # Skills tailoring
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ project_selection_chain.py # Project selection
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ cover_letter_chain.py    # Cover letter generation
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ context_retrieval_chain.py # Context retrieval
โ”‚   โ”‚   โ”œโ”€โ”€ workflows/             # AI workflow orchestration
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ workflows.py       # Main workflow definitions
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ states.py          # Workflow state management
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ nodes.py           # Workflow node implementations
โ”‚   โ”‚   โ”œโ”€โ”€ database/              # Modular database architecture
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ connection.py      # Database connection management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ schema.py          # Schema management & migrations
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ embedding_service.py # Vector operations
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ job_repository.py  # Job CRUD operations
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ similarity_service.py # Similarity search
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ database.py        # Main database orchestrator
โ”‚   โ”‚   โ”œโ”€โ”€ extractors/            # Data extraction utilities
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ latex_extractor.py # LaTeX content extraction
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ job_extractor.py   # Job posting analysis
โ”‚   โ”‚   โ”œโ”€โ”€ format/                # Document formatting
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ latex_formatter.py # LaTeX document formatting
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ pdf_generator.py   # PDF generation utilities
โ”‚   โ”‚   โ””โ”€โ”€ config/                # Configuration management
โ”‚   โ”‚       โ””โ”€โ”€ settings.py        # Environment configuration
โ”‚   โ”œโ”€โ”€ data/                      # Templates & sample data
โ”‚   โ”‚   โ”œโ”€โ”€ resumes/               # Resume templates (PDF)
โ”‚   โ”‚   โ”œโ”€โ”€ projects/              # Project descriptions
โ”‚   โ”‚   โ”œโ”€โ”€ experiences/           # Experience templates
โ”‚   โ”‚   โ””โ”€โ”€ papers/                # Research papers
โ”‚   โ”œโ”€โ”€ output/                    # Generated documents
โ”‚   โ”‚   โ”œโ”€โ”€ resumes/               # Generated resume PDFs
โ”‚   โ”‚   โ””โ”€โ”€ cover_letters/         # Generated cover letter PDFs
โ”‚   โ”œโ”€โ”€ server.py                  # Flask application entry point
โ”‚   โ”œโ”€โ”€ setup_db.py               # Database initialization
โ”‚   โ””โ”€โ”€ requirements.txt           # Python dependencies
โ”‚
โ”œโ”€โ”€ ๐Ÿงฉ chrome-extension/           # Chrome Browser Extension
โ”‚   โ”œโ”€โ”€ manifest.json             # Extension configuration (Manifest V3)
โ”‚   โ”œโ”€โ”€ background.js             # Service worker for extension
โ”‚   โ”œโ”€โ”€ content.js                # Content script for job sites
โ”‚   โ”œโ”€โ”€ sidepanel.html            # Side panel HTML interface
โ”‚   โ”œโ”€โ”€ sidepanel-react.js        # React app integration
โ”‚   โ”œโ”€โ”€ sidepanel.css             # Extension styling
โ”‚   โ””โ”€โ”€ icons/                    # Extension icons (agent.png)
โ”‚
โ””โ”€โ”€ ๐Ÿ“š Documentation/
    โ”œโ”€โ”€ PRODUCT_ROADMAP.md         # Product development roadmap
    โ”œโ”€โ”€ CHROME_EXTENSION_ARCHITECTURE.md # Extension architecture
    โ””โ”€โ”€ ENHANCEMENT_ROADMAP.md     # Technical enhancement plans

๐Ÿ“ System Architecture

High-Level Architecture

graph TD
    subgraph "Client Layer"
        WEB[React Web App]
        EXT[Chrome Extension]
        SP[Side Panel]
    end
    
    subgraph "API Gateway"
        FLASK[Flask Server :8080]
        CORS[CORS Handler]
        AUTH[Request Validation]
    end
    
    subgraph "Business Logic"
        WF[AI Workflows]
        CHAIN[LangChain Orchestration]
        GEN[Document Generation]
        SIM[Similarity Engine]
    end
    
    subgraph "AI Services"
        OPENAI[OpenAI API]
        EMB[Embedding Service]
        LLM[Language Models]
    end
    
    subgraph "Data Layer"
        PG[(PostgreSQL + pgvector)]
        FS[File System Storage]
        VEC[Vector Store]
    end
    
    subgraph "Document Processing"
        TEX[LaTeX Processing]
        PDF[PDF Generation]
        TMPL[Template Engine]
    end
    
    WEB --> FLASK
    EXT --> SP
    SP --> WEB
    FLASK --> CORS
    CORS --> AUTH
    AUTH --> WF
    WF --> CHAIN
    CHAIN --> GEN
    CHAIN --> SIM
    GEN --> OPENAI
    SIM --> EMB
    EMB --> OPENAI
    WF --> PG
    SIM --> VEC
    VEC --> PG
    GEN --> TEX
    TEX --> PDF
    PDF --> FS
    GEN --> TMPL
Loading

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.11+ with pip
  • Node.js 18+ with npm
  • PostgreSQL 15+ with pgvector extension
  • OpenAI API Key with GPT and embedding access
  • Chrome Browser (for extension)

1. Clone & Environment Setup

# Clone the repository
git clone https://github.com/amirrezaskh/aria.git
cd aria

# Set up environment variables
cp agent/.env.example agent/.env
# Edit agent/.env with your configuration (see Configuration section)

2. Database Setup

# Start PostgreSQL and create database
createdb aria_db

# Install pgvector extension
psql -d aria_db -c "CREATE EXTENSION IF NOT EXISTS vector;"

# Initialize database schema
cd agent
python setup_db.py

3. Backend Setup

cd agent

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Start the backend server
python server.py
# Server will start on http://localhost:8080

4. Frontend Setup

cd frontend

# Install dependencies
npm install

# Start development server
npm run dev
# Frontend will start on http://localhost:3000

5. Chrome Extension Setup

# Load extension in Chrome
1. Open Chrome and navigate to chrome://extensions/
2. Enable "Developer mode" (top-right toggle)
3. Click "Load unpacked"
4. Select the chrome-extension/ directory
5. Pin the Aria extension to your toolbar

6. Access & Test

๐Ÿ”ง Configuration

Environment Variables

Create agent/.env with the following configuration:

# OpenAI Configuration (Required)
OPENAI_API_KEY=your_openai_api_key_here

# Database Configuration
DATABASE_URL=postgresql://username:password@localhost:5432/aria_db
DB_HOST=localhost
DB_PORT=5432
DB_NAME=aria_db
DB_USER=your_db_user
DB_PASSWORD=your_db_password

# Server Configuration
FLASK_ENV=development
FLASK_DEBUG=True
PORT=8080
HOST=localhost

# AI Configuration
SIMILARITY_THRESHOLD=0.8
MAX_SIMILAR_JOBS=5
EMBEDDING_MODEL=text-embedding-3-small
CHAT_MODEL=gpt-4

# File Paths
RESUMES_DIR=./output/resumes
COVER_LETTERS_DIR=./output/cover_letters
TEMPLATES_DIR=./data/resumes
PROJECTS_DIR=./data/projects
EXPERIENCES_DIR=./data/experiences

# Chrome Extension
FRONTEND_URL=http://localhost:3000
EXTENSION_ENABLED=true

Database Schema

The application automatically creates the following tables:

-- Job applications with vector embeddings
CREATE TABLE job_applications (
    id SERIAL PRIMARY KEY,
    company_name VARCHAR(255) NOT NULL,
    position_title VARCHAR(255) NOT NULL,
    job_description TEXT NOT NULL,
    resume_generated BOOLEAN DEFAULT FALSE,
    embedding vector(1536),  -- OpenAI embedding dimension
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE(company_name, position_title)
);

-- Vector similarity index for fast search
CREATE INDEX ON job_applications USING ivfflat (embedding vector_cosine_ops);

๐Ÿ“– Usage Guide

Web Application Workflow

  1. Job Information Entry

    • Enter job title, company name, and paste job description
    • Application automatically detects if Chrome extension provided data
  2. Generation Strategy Selection

    • Generate New: Create both resume and cover letter from scratch
    • Use Template: Select from pre-built professional templates
    • View Similar Jobs: See previously generated resumes for similar positions
  3. Document Generation Process

    • AI analyzes job requirements using OpenAI models
    • Generates tailored experiences, skills, and project highlights
    • Creates professional LaTeX-formatted documents
    • Converts to high-quality PDF files
  4. Preview & Download

    • Preview documents in browser before downloading
    • Download individual PDF files
    • Access previously generated documents

Chrome Extension Usage

  1. Installation & Setup

    • Load extension in Chrome developer mode
    • Ensure Aria backend is running on localhost:8080
    • Frontend should be accessible on localhost:3000
  2. Job Site Integration

    • Visit supported job sites: LinkedIn, Indeed, Wellfound
    • Extension automatically detects job postings
    • Click extension icon to open side panel with embedded Aria app
  3. Automatic Data Transfer

    • Job information is automatically extracted and populated
    • Generate documents without manual data entry
    • Seamless workflow from job discovery to application materials

Key Technologies

Component Technology Purpose
Frontend React 19 + TypeScript Modern, type-safe web application
Backend Flask + Python 3.11 REST API and AI processing
Database PostgreSQL + pgvector Vector similarity search
AI OpenAI + LangChain Document generation and embeddings
Extension Chrome Manifest V3 Browser integration
Styling Material-UI + CSS Professional UI design
PDF LaTeX + pdflatex High-quality document generation

๐Ÿ”ฎ Upcoming Features

Phase 1: Enhanced AI Capabilities

  • ๏ฟฝ Advanced AI Models: Integration with GPT-4 and Claude
  • ๐Ÿ“Š Application Success Prediction: ML models to predict application success
  • ๐ŸŽฏ ATS Optimization: Resume optimization for Applicant Tracking Systems
  • ๐Ÿ“ˆ Performance Analytics: Track application success rates and improvements

Phase 2: Extended Platform Integration

  • ๐Ÿ”— Job Board APIs: Direct integration with major job platforms
  • ๐Ÿ“ฑ Mobile App: Native iOS and Android applications
  • ๐Ÿค– Slack/Teams Integration: Generate documents from team channels
  • ๐Ÿ“ง Email Integration: Auto-generate applications from job emails

Phase 3: Advanced Features

  • ๐Ÿ‘ฅ Team Collaboration: Multi-user accounts and shared templates
  • ๐Ÿ”„ Version Control: Track document versions and changes
  • ๐Ÿ“Š Interview Preparation: AI-powered interview question generation
  • ๐ŸŽจ Custom Branding: Personalized templates and styling

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

AI-powered resume and cover letter generator with Chrome extension integration, vector similarity search, and intelligent job matching using OpenAI and LangChain

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published