Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

AI Apply Analyzer

AI-powered job application automation and professional profile analysis system. Automate your job search, analyze your profile strengths, and submit tailored applications effortlessly.

πŸš€ Features

For Professionals

  • Profile Analysis: Upload CV and LinkedIn profile for AI-powered analysis
  • Job Matching: Smart job matching based on skills, salary, and location
  • Application Automation: Generate personalized cover letters and answers
  • Analytics Dashboard: Track application progress and success rates

For Students (NEW!)

  • Student Registration: Dedicated signup flow for students
  • Academic Profile: Track GPA, coursework, projects, and internships
  • Career Guidance: AI-powered career recommendations and skill gap analysis
  • Entry-Level Jobs: Matching for internships and entry-level positions
  • Market Relevance: Real-time scoring of profile strength and readiness
  • Profile Analyzer: Specialized analysis for student profiles

General

  • Multi-LLM Support: Works with Claude API and OpenAI
  • Web App + CLI: Both web interface and command-line interface
  • OAuth Authentication: Google, GitHub, and LinkedIn login

πŸ“‹ Project Structure

ai-apply-analyzer/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ api/              # Express backend API
β”‚   β”œβ”€β”€ web/              # Next.js web application
β”‚   β”œβ”€β”€ cli/              # Node.js CLI tool
β”‚   β”œβ”€β”€ shared/           # Shared types and utilities
β”‚   └── database/         # Database migrations
β”œβ”€β”€ docker-compose.yml    # Local development setup
β”œβ”€β”€ .env.example         # Environment variables template
└── README.md

πŸ› οΈ Tech Stack

  • Backend: Express.js + TypeScript + PostgreSQL
  • Frontend: Next.js + React + Tailwind CSS
  • CLI: Commander.js + Chalk
  • AI: Claude API + OpenAI API
  • Cache: Redis
  • Database: PostgreSQL
  • File Parsing: pdf-parse + mammoth
  • Automation: Playwright + Puppeteer

πŸ“¦ Prerequisites

  • Node.js 18+
  • Docker & Docker Compose
  • PostgreSQL 13+ (or use Docker)
  • Redis (or use Docker)
  • Claude API key or OpenAI API key

βš™οΈ Setup & Installation

πŸ“– For detailed step-by-step instructions, see LOCAL_SETUP.md

Quick Start

# 1. Install dependencies
cd ai-apply-analyzer
npm install

# 2. Configure environment
cp .env.example .env
# Edit .env with your API keys (CLAUDE_API_KEY or OPENAI_API_KEY required)

# 3. Start Docker services
npm run docker:up

# 4. Initialize database
docker exec -i ai_apply_postgres psql -U user -d ai_apply_analyzer < packages/database/migrations/001-initial-schema.sql
docker exec -i ai_apply_postgres psql -U user -d ai_apply_analyzer < packages/database/migrations/002-add-student-support.sql

# 5. Start development servers
npm run dev

Access the application:

Minimum required environment variables:

  • CLAUDE_API_KEY or OPENAI_API_KEY (at least one required)
  • JWT_SECRET (generate a secure random string)
  • DATABASE_URL (auto-configured by Docker)
  • REDIS_URL (auto-configured by Docker)

πŸ”‘ API Endpoints

Authentication

  • POST /api/auth/register - Register professional account
  • POST /api/auth/register/student - Register student account (NEW!)
  • POST /api/auth/login - Login
  • POST /api/auth/logout - Logout
  • POST /api/auth/refresh - Refresh tokens
  • GET /api/auth/me - Get current user

Profile

  • POST /api/profile/analyze - Upload CV and analyze
  • GET /api/profile - Get user profile
  • PUT /api/profile/preferences - Update preferences
  • GET /api/profile/recommendations - Get recommendations
  • GET /api/profile/market-analysis - Market analysis

Jobs

  • POST /api/jobs/search - Search jobs
  • GET /api/jobs/:id - Get job details
  • POST /api/jobs/manual - Add job manually
  • GET /api/jobs/recent - Recent jobs
  • GET /api/jobs/user/matches - User's matched jobs

Applications

  • POST /api/applications/draft - Create draft application
  • POST /api/applications/submit - Submit application
  • GET /api/applications - List applications
  • GET /api/applications/:id - Get application details
  • PUT /api/applications/:id - Edit application
  • PUT /api/applications/:id/status - Update status
  • DELETE /api/applications/:id - Withdraw application

Student (NEW!)

  • GET /api/student/profile - Get student profile
  • POST /api/student/profile - Update student profile
  • POST /api/student/analyze - Analyze student profile with AI
  • GET /api/student/recommendations - Get career recommendations
  • GET /api/student/job-matches - Get matched job opportunities
  • GET /api/student/market-relevance - Get market relevance score

Analytics

  • GET /api/analytics/dashboard - Dashboard metrics
  • GET /api/analytics/applications/trend - Application trends
  • GET /api/analytics/success-stats - Success statistics
  • GET /api/analytics/response-rate/trend - Response rate trends

πŸ“š Database Schema

Core tables:

  • users - User accounts (with user_type: professional/student/graduate)
  • user_profiles - Professional profile data and analysis
  • student_profiles - Student academic profiles (NEW!)
  • graduate_profiles - Post-graduation tracking (NEW!)
  • user_oauth_accounts - OAuth connections
  • job_listings - Job postings (with entry-level/internship filters)
  • applications - Job applications
  • job_matches - Cached match scores
  • user_preferences - Search preferences
  • analytics_events - User activity tracking

Migrations:

  • 001-initial-schema.sql - Core tables
  • 002-add-student-support.sql - Student features (NEW!)

πŸ§ͺ Testing

npm test                    # Run all tests
npm test -w packages/api    # API tests only
npm test -w packages/web    # Web tests only

πŸ“¦ Build & Deployment

# Build all packages
npm run build

# Build specific package
npm run build -w packages/api

# Docker deployment
docker-compose -f docker-compose.yml up

πŸ” Security Considerations

  • OAuth tokens are encrypted in database
  • JWT tokens use httpOnly cookies
  • File uploads are validated and scanned
  • SQL injection prevention via parameterized queries
  • Password hashing with bcryptjs
  • CSRF token support

πŸ“ API Documentation

Full API documentation available at /api/docs (when running)

Example: Upload CV and Analyze Profile

curl -X POST http://localhost:3000/api/profile/analyze \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "cv_file=@resume.pdf"

Example: Search Jobs

curl -X POST http://localhost:3000/api/jobs/search \
  -H "Content-Type: application/json" \
  -d '{
    "skills": ["React", "Node.js"],
    "min_salary": 100000,
    "max_salary": 150000,
    "locations": ["San Francisco", "Remote"],
    "limit": 20
  }'

Example: Generate Application Draft

curl -X POST http://localhost:3000/api/applications/draft \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"job_id": "uuid"}'

πŸ›£οΈ Roadmap

  • Email notification system
  • Scheduled job scraping
  • Job board integrations (LinkedIn, Indeed)
  • Auto-fill form submission
  • Advanced matching algorithm
  • Team collaboration features
  • API rate limiting
  • Advanced analytics

🀝 Contributing

Contributions welcome! Please follow the existing code patterns and submit PRs.

πŸ“„ License

MIT License

πŸ†˜ Support

For issues and questions, please open an issue on GitHub or contact support.


Built with Claude AI and OpenAI πŸ€–

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages