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.
- 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
- 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
- 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
- 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
- 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
- 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
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
- Python 3.9+ (for backend)
- Node.js 18+ (for frontend)
- OpenAI API Key or Anthropic API Key
git clone <your-repo-url>
cd CareerCraftAI# 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.pyThe backend API will be available at http://localhost:8000
API Documentation: http://localhost:8000/api/docs
# 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 devThe frontend will be available at http://localhost:5173
- Click "Open Visual Learner" from the home page
- Enter a topic (e.g., "Binary Search Tree", "Neural Networks")
- Click "Generate Visualization"
- Explore the interactive visualization with playback controls
- Click "Explore Portfolio Architect" from the home page
- Upload project files or provide project descriptions
- Generate your professional portfolio
- Download and deploy
- Click "Resume ATS Analyzer" from the home page
- Upload your resume (PDF or DOCX)
- Select job role and seniority level, or provide a job description
- Click "Analyze Resume"
- Review your ATS score, keyword analysis, structure evaluation, and AI insights
- Click "Cover Letter Generator" from the home page
- Upload your resume
- Provide job description or select job role/seniority
- Adjust tone, creativity, and length settings
- Click "Generate Cover Letter"
- Copy or download your personalized cover letter
- Click "Cold Email Generator" from the home page
- Upload your resume
- Enter recipient name and title
- Select purpose (job application, networking, etc.)
- Provide job description or select job role/seniority
- Adjust tone, creativity, and length
- Generate and copy your cold email
- Click "LinkedIn Reach Out" from the home page
- Upload your resume
- Enter recipient name and title
- Select message type (connection request, follow-up, etc.)
- Provide context or job description
- Adjust tone, creativity, and length
- Generate your LinkedIn message
- 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
- 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
- GET
/api/jobs/roles: Get available job roles - GET
/api/jobs/seniority-levels: Get available seniority levels
- POST
/api/generate-visualization: Generate interactive visualizations - GET
/api/examples: Get example topics
- GET
/health: Health check endpoint
- 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
- Framework: React 18 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Animation: Framer Motion
- HTTP Client: Axios
- Icons: Lucide React
- 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
- 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
Port 8000 already in use:
# Change port in backend/.env
PORT=8001AI 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
API connection failed:
- Verify backend is running on port 8000
- Check
VITE_API_BASE_URLinfrontend/.env
Build errors:
# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm installMIT License - feel free to use this project for learning and teaching!
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- OpenAI for GPT-4 API
- Anthropic for Claude API
- React and Vite teams
- Tailwind CSS and Framer Motion contributors
- FastAPI and Python community
For questions or issues, please open a GitHub issue or contact the maintainers.
CareerCraftAI - Empowering professionals and students with AI-driven career tools.