A cutting-edge web application that matches students with internships using AI-powered resume analysis and intelligent ranking algorithms. Built with FastAPI, OpenAI embeddings, and a responsive modern frontend.
- Responsive Frontend: Clean, modern UI with flashcard-style internship recommendations
- AI-Powered Matching: Uses OpenAI GPT for resume analysis and embeddings for similarity matching
- Resume Parsing: Supports PDF, DOC, and DOCX resume formats
- Automated Scraping: Hourly updates of internship data from various sources
- Real-time Recommendations: Get top 5 matched internships with match scores
- Progress Bars: Visual representation of match percentages
- Mobile-Friendly: Fully responsive design for all devices
Internship_Recommender/
โโโ index.html # Frontend HTML
โโโ style.css # Frontend CSS styling
โโโ script.js # Frontend JavaScript
โโโ backend.py # FastAPI backend with AI integration
โโโ requirements.txt # Python dependencies
โโโ README.md # This file
โโโ data/ # Data directory
โ โโโ internships.csv
โ โโโ internships_cleaned.csv
โโโ notebooks/ # Jupyter notebooks
โโโ data_cleaning.py
โโโ Data_scraping.py
- Python 3.8 or higher
- OpenAI API key
- Modern web browser
-
Navigate to the project directory:
cd /Users/charan/Internship_Recommender -
Create a virtual environment:
python -m venv internify_env source internify_env/bin/activate # On Windows: internify_env\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Get your OpenAI API key:
- Visit OpenAI Platform
- Create a new API key
- Copy the key
-
Set up environment variable:
Option A: Environment Variable (Recommended)
export OPENAI_API_KEY="your-openai-api-key-here"
Option B: Direct in Code (For Testing)
- Edit
backend.pyline 47 - Replace
"your-openai-api-key-here"with your actual API key
- Edit
-
Start the backend server:
python backend.py
The server will start on
http://localhost:8000 -
Open the frontend:
- Open
index.htmlin your web browser - Or visit
http://localhost:8000/static/index.html
- Open
-
Fill out the form:
- Enter your full name and email
- Select your field of study
- List your skills and interests (comma-separated)
- Upload your resume (PDF, DOC, or DOCX)
-
Get recommendations:
- Click "Get My Recommendations"
- Wait for AI analysis (usually 10-30 seconds)
- View your top 5 matched internships as flashcards
-
Review results:
- Each card shows company, role, location, skills required
- Match percentage is displayed as a progress bar
- Click "Search Again" to try different criteria
-
API Endpoints:
POST /recommend- Get internship recommendationsGET /internships- Get all available internshipsGET /health- Health check endpoint
-
Customization:
- Add more internship sources in
scraper._scrape_example_job_board() - Modify AI prompts in
analyze_resume_with_gpt() - Adjust similarity scoring in
compute_similarity_scores()
- Add more internship sources in
- Resume Analysis: Uses GPT-3.5-turbo to extract skills, experience level, and projects
- Embeddings: Uses OpenAI's text-embedding-ada-002 for vector representations
- Similarity Matching: Cosine similarity between user profile and internship embeddings
- PDF: Uses PyPDF2 for text extraction
- DOCX: Uses python-docx for document parsing
- Error Handling: Graceful fallbacks for parsing errors
- Scheduler: APScheduler runs every hour
- Extensible: Easy to add new job board sources
- Deduplication: Prevents duplicate internships
- Responsive Design: Works on desktop, tablet, and mobile
- Progress Animations: Smooth progress bar animations
- Form Validation: Client-side validation with error messages
- Loading States: Visual feedback during AI processing
-
"OpenAI API Error"
- Check your API key is correct
- Ensure you have sufficient OpenAI credits
- Verify internet connection
-
"Resume parsing failed"
- Ensure file is PDF, DOC, or DOCX format
- Check file size is under 10MB
- Try with a different resume file
-
"No recommendations returned"
- Check backend logs for errors
- Verify internship data is loaded
- Try with different skills/field of study
-
Frontend not loading
- Ensure backend is running on port 8000
- Check browser console for errors
- Try refreshing the page
Enable debug logging by modifying backend.py:
logging.basicConfig(level=logging.DEBUG)- User Accounts: Save profiles and recommendation history
- More Job Boards: Integrate with LinkedIn, Indeed, Glassdoor
- Advanced Filtering: Filter by location, salary, company size
- Email Notifications: Alert users about new matching internships
- Analytics Dashboard: Track recommendation success rates
- Mobile App: Native iOS/Android applications
The system comes with 12 pre-loaded internships from major companies:
- Google, Microsoft, Apple, Meta, Amazon
- Tesla, Netflix, Spotify, Airbnb, Stripe
- Uber, LinkedIn
Each includes realistic job descriptions, required skills, and locations.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is open source and available under the MIT License.
For issues or questions:
- Check the troubleshooting section above
- Review the backend logs
- Create an issue in the repository
Happy internship hunting! ๐โจ