AI-powered ATS resume optimization platform that decodes hiring algorithms and maximizes your job search success
ATSPro is a comprehensive career advancement platform built to help job seekers navigate modern hiring systems. Using AI-powered resume optimization and intelligent job tracking, ATSPro helps you get noticed by ATS systems and land more interviews.
- Upload resume documents (PDF, TXT, Markdown) for AI-powered extraction and optimization
- Intelligent parsing of work experience, education, skills, and certifications
- Real-time resume updates and version management
- Comprehensive job application management with status tracking
- Document generation for each application (resumes, cover letters, research reports)
- Activity timeline tracking for all job-related actions
- Application analytics and response rate monitoring
- Real-time dashboard with job search statistics
- Weekly progress tracking and trend analysis
- Response rate calculations and performance metrics
- Recent activity feed for quick updates
- Email and password authentication via Better-Auth
- Session management with cookie-based authentication
- User data isolation and privacy protection
- Framework: SvelteKit 2.0 with Svelte 5 runes
- Runtime: Bun for fast JavaScript runtime
- Database: PostgreSQL with connection pooling
- Authentication: Better-Auth with SvelteKit integration
- AI: Vercel AI SDK with Anthropic Claude integration
- UI Components: shadcn/ui with Tailwind CSS
- Styling: Tailwind CSS 4.0
- Testing: Vitest with Playwright browser testing
- Bun: v1.0+ (recommended runtime)
- PostgreSQL: v13+ database server
- Node.js: v18+ (if not using Bun)
- Anthropic API Key: For AI-powered resume processing
git clone https://github.com/dylan-gluck/atspro
cd atsprobun installCreate a .env file in the root directory:
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/atspro"
# Anthropic API (for AI features)
ANTHROPIC_API_KEY="your-anthropic-api-key"
# Application
PUBLIC_APP_URL="http://localhost:5173"
# Better-Auth
BETTER_AUTH_SECRET="your-secret-key"
BETTER_AUTH_URL="http://localhost:5173"
PUBLIC_BETTER_AUTH_URL="http://localhost:5173"Run the database migrations using the built-in migration system:
# Run all pending migrations
bun run migrate
# Check migration status
bun run migrate:statusbun run devThe application will be available at http://localhost:5173
src/
βββ app.html # HTML template
βββ hooks.server.ts # Server hooks
βββ lib/
β βββ ai/ # AI integration utilities
β βββ auth.ts # Authentication configuration
β βββ auth-client.ts # Client-side auth utilities
β βββ db/ # Database operations
β βββ components/ui/ # Reusable UI components
β βββ services/ # Remote functions (SvelteKit)
β β βββ resume.remote.ts
β β βββ job.remote.ts
β β βββ document.remote.ts
β β βββ activity.remote.ts
β βββ types/ # TypeScript type definitions
β βββ utils.ts # Utility functions
βββ routes/
β βββ (app)/ # Authenticated application routes
β β βββ app/ # Main dashboard
β β βββ onboarding/ # User onboarding flow
β βββ (marketing)/ # Public marketing pages
β β βββ auth/ # Authentication pages
β βββ api/ # API endpoints
βββ static/ # Static assets
# Development server
bun run dev
# Build for production
bun run build
# Preview production build
bun run preview
# Type checking
bun run check
# Format code
bun run format
# Lint code
bun run lint
# Database migrations
bun run migrate # Run pending migrations
bun run migrate:status # Check migration status
bun run migrate:rollback # Rollback last migration
# Testing
bun run test:unit # Run unit tests
bun run test # Run all unit tests
bun run test:coverage # Run tests with coverage
bun run test:watch # Run tests in watch mode
bun run test:e2e # Run end-to-end tests
bun run test:e2e:ui # Run E2E tests with UI
bun run test:e2e:debug # Debug E2E tests
bun run test:all # Run all tests (unit + E2E)
bun run test:summary # Generate test summaryThe application uses PostgreSQL with the following main tables:
- user: User accounts and authentication (Better-Auth)
- session: User session management (Better-Auth)
- userResume: Stores user resume data with JSONB fields for flexible structure
- userJobs: Tracks job applications with status management
- jobDocuments: Versioned document storage for each job application (with HTML and markdown content)
- jobActivity: Activity timeline for tracking user actions
- migrations: Database migration tracking system
ATSPro uses SvelteKit's experimental remote functions feature for type-safe client-server communication:
- Query functions: For data fetching with automatic caching
- Command functions: For data mutations with validation
- Form functions: For file uploads and form processing
- Resume parsing and optimization using Anthropic Claude models
- Intelligent field extraction from uploaded documents (PDF and text)
- Content generation for cover letters and application materials
- ATS score calculation and keyword optimization
- Company research and job matching
- Email/password registration and login
- Session management with secure cookies
- Protected routes with server-side validation
bun run buildEnsure all production environment variables are configured:
DATABASE_URL: Production PostgreSQL connection stringANTHROPIC_API_KEY: Anthropic API key for AI featuresPUBLIC_APP_URL: Production application URLBETTER_AUTH_SECRET: Secret key for authentication (generate a secure random string)BETTER_AUTH_URL: Production authentication URLPUBLIC_BETTER_AUTH_URL: Public authentication URL
Run the migration system on your production database:
# Set production DATABASE_URL environment variable
export DATABASE_URL="postgresql://user:pass@host:port/dbname"
# Run all migrations
bun run migrateThis project is private and proprietary.
Note: This project is in active development. Some features may be incomplete or subject to change. Check the TODO.md file for current development status and planned features.