Internify: AI-Powered Internship Outreach Platform
Full-stack AI platform that generates personalized internship cold emails using resume context and real-time job data.

Overview
Internify is a full-stack web application designed to streamline the internship application process by combining real-time internship discovery with AI-driven personalized email generation. Users can upload their resume, browse relevant opportunities, and generate tailored cold emails within a single unified workflow.
The Problem
Applying to internships is often repetitive and inefficient. Students spend significant time searching across platforms and manually drafting cold emails that are either too generic or too time-consuming to personalize effectively. While most platforms help users discover internships, they rarely assist in crafting structured and personalized outreach. The challenge was building a system that reduces application friction while maintaining meaningful personalization at scale.
Architecture
Internify follows a modular full-stack architecture. The frontend is built with Next.js and TypeScript, providing interfaces for resume uploads, internship browsing, email generation, and application tracking. The backend, developed using FastAPI, handles resume processing, AI-based email generation, authentication, and external API communication. Real-time internship data is fetched via SerpAPI, while Supabase manages authentication, PostgreSQL database storage, and file handling. AI logic is decoupled from core business logic to maintain extensibility and clean separation of concerns.
Backend Design Decisions
The backend is implemented using FastAPI with asynchronous endpoints for efficient request handling. JWT-based authentication is managed through Supabase to ensure secure user sessions. LLM integration is abstracted into a dedicated service layer to isolate prompt engineering from route logic. Resume uploads are processed through a structured parsing pipeline, and storage is abstracted to prevent tight coupling between file handling and application logic. The system prioritizes modularity, clarity, and maintainability.
LLM Integration
Internify integrates an LLM (via Groq or Gemini APIs) to generate personalized cold emails using structured inputs derived from parsed resume data and selected internship details. The prompt design injects resume context and role-specific information while maintaining consistent formatting and tone. Instead of relying on static templates, the system dynamically generates outreach content tailored to each opportunity. The LLM layer is provider-agnostic, allowing flexibility for future expansion or model switching.
Database Structure
Supabase (PostgreSQL) stores user accounts, authentication metadata, parsed resume data, and generated email history. Relational mappings ensure each user’s resume and outreach entries remain linked. Internship listings may be cached to reduce redundant API calls. Resume files are stored separately in Supabase storage buckets to decouple structured relational data from file storage. The schema is designed for simplicity, integrity, and efficient querying.
Technical Tradeoffs
SerpAPI was chosen over direct scraping for stability and compliance, accepting API dependency in exchange for reliability. LLM-generated emails were preferred over fixed templates to improve personalization, though this introduces variability and slight latency. Supabase was selected as a managed backend solution to accelerate development, trading infrastructure-level control for faster iteration. Prompt-based personalization was used instead of fine-tuning to enable rapid experimentation and model flexibility.
Future Improvements
Future improvements include adding a feedback loop to refine email quality, implementing recruiter response tracking analytics, introducing multi-provider LLM fallback mechanisms, improving resume parsing accuracy through structured extraction pipelines, and adding caching strategies to optimize internship API usage. Additional user-level personalization controls, such as tone selection and outreach intensity, could further enhance the user experience.
Tech Stack
Timeline
October 2025 - January 2026