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.
- 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
- 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
- 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
- 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
- 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
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
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
- 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)
# 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)# 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.pycd 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:8080cd frontend
# Install dependencies
npm install
# Start development server
npm run dev
# Frontend will start on http://localhost:3000# 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- Web Application: http://localhost:3000
- Backend API: http://localhost:8080
- Chrome Extension: Click the Aria icon in Chrome toolbar
- Test Job Sites: Visit LinkedIn, Indeed, or Wellfound job postings
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=trueThe 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);-
Job Information Entry
- Enter job title, company name, and paste job description
- Application automatically detects if Chrome extension provided data
-
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
-
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
-
Preview & Download
- Preview documents in browser before downloading
- Download individual PDF files
- Access previously generated documents
-
Installation & Setup
- Load extension in Chrome developer mode
- Ensure Aria backend is running on localhost:8080
- Frontend should be accessible on localhost:3000
-
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
-
Automatic Data Transfer
- Job information is automatically extracted and populated
- Generate documents without manual data entry
- Seamless workflow from job discovery to application materials
| 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 |
| LaTeX + pdflatex | High-quality document generation |
- ๏ฟฝ 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
- ๐ 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
- ๐ฅ 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
This project is licensed under the MIT License - see the LICENSE file for details.
