Skip to content

SAMK-online/CareerCraftAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CareerCraftAI

Master Learning, Portfolios, and Career Growth with AI

A comprehensive AI-powered platform that combines visual learning, portfolio building, resume analysis, and professional content generation. Built with modern web technologies and powered by OpenAI GPT-4 and Anthropic Claude.

React TypeScript FastAPI TailwindCSS

🌟 Features

1. Visual Learner

  • AI-Powered Generation: Enter any topic and get a custom visualization generated by advanced AI models
  • Multiple Visualization Types: Trees, graphs, flowcharts, timelines, processes, and more
  • Interactive Animations: Step-by-step animations that build understanding progressively
  • Playback Controls: Play, pause, step forward/backward, adjust speed, and reset
  • Real-time Explanations: Synced explanations for each animation step
  • Responsive Design: Works beautifully on desktop, tablet, and mobile devices

2. Portfolio Architect

  • AI-Powered Portfolio Generation: Transform project descriptions into professional portfolio websites
  • Dynamic Content Creation: Automatically generate project showcases from code and descriptions
  • Professional Templates: Beautiful, responsive portfolio layouts
  • Export Capabilities: Download and deploy your generated portfolio

3. Resume ATS Analyzer

  • Real-time ATS Scoring: Get instant compatibility scores for Applicant Tracking Systems
  • Keyword Intelligence: Identify missing keywords and optimize your resume
  • Structure Analysis: Evaluate resume structure and formatting
  • AI-Powered Insights: Receive actionable recommendations to improve your resume
  • Progress Tracking: Visual feedback during analysis with detailed progress indicators

4. Cover Letter Generator

  • Personalized Generation: Create tailored cover letters based on your resume and job description
  • Tone Control: Choose from professional, friendly, formal, or casual tones
  • Creativity Settings: Adjust creativity level from conservative to highly creative
  • Length Control: Generate short, medium, or long cover letters
  • Job Role Integration: Use predefined job roles and seniority levels or provide custom job descriptions

5. Cold Email Generator

  • Purpose-Driven Emails: Generate emails for job applications, networking, informational interviews, or referral requests
  • Recipient Personalization: Customize for specific recipients with name and title
  • Tone & Style Control: Adjust tone, creativity, and length to match your needs
  • Professional Templates: Ready-to-send email templates

6. LinkedIn Reach Out Generator

  • Message Type Selection: Connection requests, follow-ups, thank-you messages, or informational interview requests
  • Professional Networking: Generate authentic, value-driven LinkedIn messages
  • Personalization: Tailored messages based on recipient and context
  • Tone Control: Professional, friendly, or casual messaging styles

🏗️ Architecture

This is a full-stack application with a clear separation of concerns:

CareerCraftAI/
├── backend/              # Python FastAPI server
│   ├── app/
│   │   ├── main.py      # FastAPI application with all endpoints
│   │   ├── config.py    # Configuration management
│   │   ├── services/    # Business logic services
│   │   │   ├── resume_parser.py
│   │   │   ├── ats_scorer.py
│   │   │   ├── keyword_intelligence.py
│   │   │   ├── ai_insights.py
│   │   │   ├── cover_letter_generator.py
│   │   │   ├── cold_email_generator.py
│   │   │   └── linkedin_reachout_generator.py
│   │   └── job_config/  # Job description configurations
│   └── requirements.txt
│
├── frontend/            # React TypeScript client
│   ├── src/
│   │   ├── components/  # React components
│   │   │   ├── NewLandingPage.tsx
│   │   │   ├── ResumeATSAnalyzer.tsx
│   │   │   ├── CoverLetterGenerator.tsx
│   │   │   ├── ColdEmailGenerator.tsx
│   │   │   └── LinkedInReachOutGenerator.tsx
│   │   ├── services/    # API services
│   │   ├── types/       # TypeScript types
│   │   └── lib/         # Utilities
│   └── package.json
│
└── README.md

🚀 Quick Start

Prerequisites

  • Python 3.9+ (for backend)
  • Node.js 18+ (for frontend)
  • OpenAI API Key or Anthropic API Key

1. Clone the Repository

git clone <your-repo-url>
cd CareerCraftAI

2. Backend Setup

# Navigate to backend
cd backend

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

# Install dependencies
pip install -r requirements.txt

# Configure environment variables
cp .env.example .env
# Edit .env and add your API key:
# OPENAI_API_KEY=sk-your-key-here
# OR
# ANTHROPIC_API_KEY=sk-ant-your-key-here

# Run the backend server
python run.py

The backend API will be available at http://localhost:8000

API Documentation: http://localhost:8000/api/docs

3. Frontend Setup

# Open a new terminal and navigate to frontend
cd frontend

# Install dependencies
npm install

# Create environment file (optional - uses localhost:8000 by default)
cp .env.example .env

# Run the development server
npm run dev

The frontend will be available at http://localhost:5173

📖 Usage

Visual Learner

  1. Click "Open Visual Learner" from the home page
  2. Enter a topic (e.g., "Binary Search Tree", "Neural Networks")
  3. Click "Generate Visualization"
  4. Explore the interactive visualization with playback controls

Portfolio Architect

  1. Click "Explore Portfolio Architect" from the home page
  2. Upload project files or provide project descriptions
  3. Generate your professional portfolio
  4. Download and deploy

Resume ATS Analyzer

  1. Click "Resume ATS Analyzer" from the home page
  2. Upload your resume (PDF or DOCX)
  3. Select job role and seniority level, or provide a job description
  4. Click "Analyze Resume"
  5. Review your ATS score, keyword analysis, structure evaluation, and AI insights

Cover Letter Generator

  1. Click "Cover Letter Generator" from the home page
  2. Upload your resume
  3. Provide job description or select job role/seniority
  4. Adjust tone, creativity, and length settings
  5. Click "Generate Cover Letter"
  6. Copy or download your personalized cover letter

Cold Email Generator

  1. Click "Cold Email Generator" from the home page
  2. Upload your resume
  3. Enter recipient name and title
  4. Select purpose (job application, networking, etc.)
  5. Provide job description or select job role/seniority
  6. Adjust tone, creativity, and length
  7. Generate and copy your cold email

LinkedIn Reach Out Generator

  1. Click "LinkedIn Reach Out" from the home page
  2. Upload your resume
  3. Enter recipient name and title
  4. Select message type (connection request, follow-up, etc.)
  5. Provide context or job description
  6. Adjust tone, creativity, and length
  7. Generate your LinkedIn message

🔌 API Endpoints

Resume Analysis

  • POST /api/analyze-resume: Analyze resume with ATS scoring, keyword intelligence, structure analysis, and AI insights
  • POST /api/rewrite-resume-text: AI-powered text rewriting for resume sections

Content Generation

  • POST /api/generate-cover-letter: Generate personalized cover letters
  • POST /api/generate-cold-email: Generate cold emails
  • POST /api/generate-linkedin-reachout: Generate LinkedIn messages

Job Configuration

  • GET /api/jobs/roles: Get available job roles
  • GET /api/jobs/seniority-levels: Get available seniority levels

Visual Learning

  • POST /api/generate-visualization: Generate interactive visualizations
  • GET /api/examples: Get example topics

Health

  • GET /health: Health check endpoint

🛠️ Technology Stack

Backend

  • Framework: FastAPI (async Python web framework)
  • AI: OpenAI GPT-4 / Anthropic Claude
  • Validation: Pydantic
  • Server: Uvicorn
  • Rate Limiting: SlowAPI
  • File Processing: PyPDF2, python-docx
  • ML/AI: LangChain, scikit-learn, numpy, pandas

Frontend

  • Framework: React 18 + TypeScript
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • Animation: Framer Motion
  • HTTP Client: Axios
  • Icons: Lucide React

🔒 Security

  • API keys stored in environment variables (never committed)
  • Rate limiting enabled by default (10 requests/minute)
  • CORS configured for specific origins
  • Input validation with Pydantic
  • Structured error handling
  • Secure file upload handling

📊 Performance

  • Resume Analysis: ~40-50 seconds (parallelized processing)
  • Content Generation: 5-15 seconds per document
  • Visualization Generation: 5-15 seconds
  • Rate Limit: 10 requests per minute per IP
  • Real-time Progress: Visual feedback for long-running operations

🐛 Troubleshooting

Backend Issues

Port 8000 already in use:

# Change port in backend/.env
PORT=8001

AI API errors:

  • Verify your API key is correct
  • Check you have credits/quota remaining
  • Ensure correct model name

Resume parsing errors:

  • Ensure resume is in PDF or DOCX format
  • Check file size limits
  • Verify file is not corrupted

Frontend Issues

API connection failed:

  • Verify backend is running on port 8000
  • Check VITE_API_BASE_URL in frontend/.env

Build errors:

# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm install

📝 License

MIT License - feel free to use this project for learning and teaching!

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🙏 Acknowledgments

  • OpenAI for GPT-4 API
  • Anthropic for Claude API
  • React and Vite teams
  • Tailwind CSS and Framer Motion contributors
  • FastAPI and Python community

📧 Support

For questions or issues, please open a GitHub issue or contact the maintainers.


CareerCraftAI - Empowering professionals and students with AI-driven career tools.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors