Skip to content

Repository files navigation

ScoutAI 🚀

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 Demo

🚀 Try ScoutAI

Live Application:
https://scout-ai-ecru.vercel.app/

🎬 Demo Video

ScoutAI Demo

▶️ Watch the full ScoutAI demo on YouTube


✨ Features

  • 🔎 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

📸 Screenshots

🔎 Personalized Opportunity Search

Users can create a profile and describe the opportunities they are looking for using natural language.

ScoutAI Search


🤖 AI-Powered Opportunity Matching

ScoutAI analyzes discovered opportunities and provides relevance scores, match explanations, and potential skill gaps.

ScoutAI AI Matching


📋 Application Tracker

Users can save opportunities and track their application progress from discovery to application.

ScoutAI Application Tracker


🧠 How ScoutAI Works

┌──────────────────────────────┐
│            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**.

About

AI-powered opportunity discovery platform that uses live web search and Gemini to find, rank, and personalize internships and career opportunities.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Used by

Contributors

Languages