RaiderMatch — Intelligent Internship Matching Platform 🌟 Inspiration
As a student entering Computer Science at Texas Tech, I saw firsthand how overwhelming the internship hunt can be—especially for freshmen and sophomores. Most students rely on generic platforms like Handshake, LinkedIn, or Indeed, which often flood them with irrelevant roles or dead listings. I wanted to build something hyper-focused on my community: a platform where TTU students could upload a résumé, immediately see roles they’re actually competitive for, and start applying.
The idea for RaiderMatch was inspired by two frustrations:
Signal vs noise → Big platforms have too much noise; students don’t know where to start.
First impressions matter → Many students apply blindly and lose motivation when they don’t hear back. I wanted to solve this by providing curated roles and feedback on competitiveness.
🛠️ How I Built It
Tech Stack
Frontend: React 18 + TypeScript + Vite, styled with Tailwind CSS and shadcn/ui
Backend: Supabase (PostgreSQL, Auth, Row-Level Security, Edge Functions)
Other Tools: React Query for caching, PapaParse for CSV ingestion, Resend for email notifications, Sonner for toast feedback
Key Features
TTU-only authentication → Only @ttu.edu emails allowed.
Résumé upload + parsing → Skills extracted and stored for matching.
Internship ingestion → Admin CSV import to seed database with roles.
Filters → Location (Texas emphasis), visa sponsorship, tech stack.
One-click Apply → Opens application link in a new tab and logs the application in the system.
What I Learned
The importance of curation → Having 100 quality roles is far more impactful than 500 random ones.
How to enforce security with RLS → Learned to set row-level policies so students only see their own data.
UX is everything → A broken filter or clunky search can kill trust immediately. I learned to test features as if I were a student signing in for the first time.
Real-world data challenges → Job postings aren’t standardized; titles, skills, and requirements vary wildly. Normalizing data was harder than I expected.
⚡ Challenges I Faced
Getting real internships → The hardest part was sourcing credible internship listings that students would actually care about. Filtering out “one-office” unknown companies while still giving variety took time.
Matching algorithm accuracy → At first, the algorithm felt arbitrary. If scores looked wrong, students would lose trust. I had to tune weights and rethink how to balance GPA vs skills vs experience.
UI responsiveness → Filters broke on mobile until I rebuilt them with a sheet-on-mobile + sidebar-on-desktop pattern.
Trust vs aspiration → Including Amazon/Meta internships was exciting but risked giving students false hope. I had to think carefully about balancing aspirational and realistic roles.
Next Steps
Add a Résumé Template Library (anonymized examples from TTU students who landed top roles).
Expand beyond TTU once traction is proven locally.
Add alumni connections so recruiters and past interns can directly post and support.
Experiment with AI résumé feedback to explain why a student isn’t competitive for a role.
Built With
- auth
- date-fns-(date-utilities)
- dompurify-(xss-protection)-deployment-&-devops:-vercel-(hosting-&-analytics)
- edge-functions)-data-&-apis:-resend-(email-notifications)
- eslint
- frontend:-react-18
- github-(version-control)
- lucide-react-(icons)
- papaparse-(csv-ingestion)
- react-hook-form
- react-query-(data-caching)-libraries-&-tools:-zod-(validation)
- row-level-security
- shadcn/ui-backend:-supabase-(postgresql
- sonner-(toast)
- tailwind-css
- typescript
- vite

Log in or sign up for Devpost to join the conversation.