Find opportunities. Scout smarter.
ScoutAI is an AI-powered opportunity discovery platform that helps students find internships, jobs, and career opportunities that match their skills, interests, education, and goals.
Instead of manually searching across multiple job boards and internship portals, users can describe what they are looking for in natural language. ScoutAI searches the live web through SerpApi, analyzes opportunities using Google Gemini, and ranks results based on their relevance to the user's profile.
Live Application:
https://scout-ai-ecru.vercel.app/
- 🔎 Natural-language opportunity search
- 🌐 Live web opportunity discovery through SerpApi
- 🤖 Gemini-powered opportunity analysis
- 👤 Personalized profile matching
- 📊 AI-generated relevance scores
- 💡 Match explanations
⚠️ Potential skill-gap identification- 🏷️ Opportunity category detection and filtering
- 📈 Sort opportunities by relevance
- 💾 Save and unsave opportunities
- 📋 Application tracker
- 🔗 Direct links to original opportunity sources
- 🎓 Profile-aware recommendations based on education, academic year, skills, interests, and search intent
- 🛡️ Backend API protection
- 🚦 Rate limiting for search requests
- 🔐 API credentials kept server-side
Users can create a profile and describe the opportunities they are looking for using natural language.
ScoutAI analyzes discovered opportunities and provides relevance scores, match explanations, and potential skill gaps.
Users can save opportunities and track their application progress from discovery to application.
┌──────────────────────────────┐
│ User │
│ Profile + Natural Language │
│ Query │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ React + TypeScript │
│ Frontend │
└──────────────┬───────────────┘
│ REST API
▼
┌──────────────────────────────┐
│ Node.js + Express │
│ Backend │
└───────────┬───────────┬──────┘
│ │
▼ ▼
┌────────────┐ ┌─────────────┐
│ SerpApi │ │ Gemini │
│ Live Search│ │ AI Analysis │
└──────┬─────┘ └──────┬──────┘
│ │
└──────┬───────┘
▼
┌──────────────────────┐
│ Opportunity Analysis │
│ + Ranking + Match │
│ Explanation │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Personalized Results │
└──────────┬───────────┘
│
┌─────┴─────┐
▼ ▼
Save Opportunity Track Application
│ │
└─────┬─────┘
▼
Browser Storage
localStorage
Architecture Diagram
🔍 Search Flow
The user enters a natural-language request.
The frontend sends the request and profile information to the backend.
The Express backend queries SerpApi for live web results.
Search results are collected and structured.
Google Gemini analyzes the opportunities against the user's profile.
ScoutAI generates relevance scores, explanations, and potential skill gaps.
Opportunities are ranked and returned to the frontend.
Users can save opportunities and track their application status.
🎯 AI Matching
ScoutAI considers multiple factors when evaluating an opportunity:
Education
Academic year
Technical skills
Interests
Search query
Location requirements
Opportunity relevance
Each opportunity can include:
Match score
Why it is relevant
Matching skills
Potential skill gaps
Required or identified skills
Original opportunity source
The goal is to move beyond:
"What opportunities exist?"
and help answer:
"Which opportunities are most relevant to me, and why?"
🛠️ Tech Stack
Frontend
React
TypeScript
Vite
CSS
Backend
Node.js
Express.js
CORS
dotenv
AI & Search
Google Gemini API
SerpApi
Client-Side Persistence
Browser localStorage
Deployment
Vercel — Frontend
Render — Backend
📁 Project Structure
ScoutAI/
├── backend/
│ ├── server.js
│ ├── package.json
│ └── .env
│
├── public/
│
├── src/
│ ├── assets/
│ ├── App.tsx
│ ├── App.css
│ ├── index.css
│ └── main.tsx
│
├── docs/
│ ├── architecture.png
│ └── screenshots/
│ ├── search.png
│ ├── results.png
│ └── tracker.png
│
├── .gitignore
├── eslint.config.js
├── index.html
├── package.json
├── package-lock.json
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
├── vite.config.ts
└── README.md
🚀 Getting Started
Prerequisites
Make sure you have installed:
Node.js
npm
A Google Gemini API key
A SerpApi API key
1. Clone the repository
git clone https://github.com/RaghavendraRathod/ScoutAI.git
cd ScoutAI
2. Install frontend dependencies
From the project root:
npm install
3. Install backend dependencies
cd backend
npm install
4. Configure backend environment variables
Create a .env file inside the backend directory:
GEMINI_API_KEY=your_gemini_api_key
SERPAPI_KEY=your_serpapi_api_key
Never commit API keys or other secrets to GitHub.
5. Configure frontend environment variables
Create a .env file in the project root:
VITE_API_URL=http://localhost:5000
6. Start the backend
From the backend directory:
npm start
The backend runs on:
http://localhost:5000
7. Start the frontend
Open another terminal and return to the project root:
cd ..
npm run dev
Vite will provide the local development URL, typically:
http://localhost:5173
🌐 Deployment
ScoutAI uses a separate frontend and backend deployment architecture.
Frontend
The React/Vite frontend is deployed on Vercel.
Live application:
https://scout-ai-ecru.vercel.app/
Backend
The Node.js/Express backend is deployed on Render.
The frontend communicates with the deployed backend using the configured VITE_API_URL environment variable.
🔐 Security
ScoutAI implements several basic security practices:
🔑 Gemini API credentials remain on the backend.
🔑 SerpApi credentials remain on the backend.
🚫 API keys are never exposed through the frontend.
📁 .env files are excluded from Git.
🌐 Backend CORS is restricted to the deployed frontend and local development environment.
🚦 Search requests are rate-limited to reduce excessive API usage and abuse.
🖥️ External API calls are handled by the backend instead of directly from the browser.
The current rate limiter is an in-memory implementation intended for the current portfolio/hackathon-scale deployment. It resets when the backend restarts.
💡 Example Queries
Try natural-language requests such as:
Find AI internships for students in Bengaluru
Find software engineering internships for 3rd year students
Find machine learning internships that match my skills
Find backend development opportunities for students
Find GenAI internships in India
Profile information can further personalize the ranking and explanations.
🎬 Demo Workflow
The demo demonstrates the complete ScoutAI workflow:
User Profile
↓
Natural-Language Search
↓
Live Opportunity Discovery
↓
AI Analysis
↓
Relevance Ranking
↓
Match Explanation
↓
Save Opportunity
↓
Application Tracking
Watch the Demo
▶️ Watch ScoutAI on YouTube
🎯 Why ScoutAI?
Students often search across multiple job boards, company websites, internship portals, and career platforms.
The challenge isn't simply finding opportunities.
The harder questions are:
Is this opportunity relevant to me?
Do I meet the requirements?
Which of my skills match?
What skills am I missing?
Which opportunities should I prioritize?
ScoutAI combines live opportunity discovery with AI-powered analysis and personalization to help answer these questions in one workflow.
Instead of simply returning a list of links, ScoutAI attempts to provide context, relevance, and prioritization for each opportunity.
📌 Current Limitations
ScoutAI currently relies on search-result information returned through SerpApi and AI analysis.
Therefore:
Opportunity details may change after search results are indexed.
Deadlines and eligibility should be verified on the original source.
Some results may represent job directories rather than individual openings.
Saved opportunities and application tracking are currently stored in browser localStorage.
The current rate limiter is in-memory and resets when the backend restarts.
Users should always verify important details on the original opportunity page before applying.
🔮 Future Improvements
Potential future improvements include:
🔍 Multi-query search expansion
🌐 Additional opportunity sources
✅ Direct webpage fetching for stronger evidence verification
📅 Deadline extraction and verification
📍 Advanced location and salary filters
🔔 Email and opportunity alerts
📄 Resume-aware opportunity matching
🧠 Skill-gap learning recommendations
👤 User authentication
☁️ Cloud-synced saved opportunities
🗄️ Persistent database storage
🧹 Duplicate opportunity detection
📈 More advanced ranking and recommendation models
## 📄 License
ScoutAI is a portfolio project built to demonstrate the use of **AI-powered search, personalized matching, and full-stack web development**.
It is intended for **educational, demonstration, and personal use**.


