Inspiration
My mother inspired me to overcome challenges by finding solutions instead of complaining. She suggested I develop a platform for students in even the most remote areas to collaborate with students from top universities like UC Berkeley and Stanford. I have seen so many people on Reddit struggle to find a project idea to work on, that's why I want to leverage GPT-OSS to help other people do so. Having grown up near a small rice-farm village in Southern Vietnam, I saw many peers who couldn't attend college. They missed the chance to be exposed to and engaged in higher education, and this long-standing inspiration to help people from difficult backgrounds motivated me. This project was also created to address a critical issue in 2025: the rising unemployment among recent college graduates. Despite sending thousands of applications, they are unable to find jobs. Quote: "STEM fields have the highest unemployment with new grads, with computer science and computer engineering leading the pack at 6.1% and 7.5% unemployment rates, respectively. One-third of computer science graduates are pursuing master's degrees."
After COVID-19 and especially during this time of AI, the one thing people miss most is the lack of feedback and real human interaction and collaboration. This project was developed to provide that.
An idea came to me when I asked myself, "What if I could create a platform that allows people to do exactly what they would do at an internship, but at a much faster rate, while being exposed to a lot of people and getting feedback along with real-time collaboration?" This led to the name "interns.so", which is a team-matching platform, similar to League of Legends, with fast, short project sprints ranging from 3 to 12 hours.
What it does
Interns.so will help match people with different backgrounds to work together. The key thing here is that as a team, it is not about the best fit, but about best complement. It also include a wide range of projects that will also help students improve their coding skills while working with other students from different schools, while getting feedbacks from their peers. Once they attached their resume, they will be queue'd up in no time. Once in the room, the group will be given a project by GPT-OSS based on it's evaluation on everyone's resume, and inside the room will contain a kanban board to track progress and a real-time chat system to allow communication. Once all requirements are completed, everyone will need to submit and one person will submit the final project.
How we built it
Interns.so was developed using modern tech stack including:
- Frontend: Vite, Reactjs, Supabase, React-Router.
- Backend: Python, FastAPI, qDrant, Supabase and GPT-OSS 20B parameters with OpenRouter.
I spent the first couple days developing a FIFO distributed system to ingest data from the user and set up the schemas in Pydantic. The data will flow from register to onboarding and to Supabase. For resumes and images, I created a S3 Bucket in Supabase as a persistant data.
The second pipeline is to parse the resume using PyMuPDF into different sections (chunks) that will be ingested through a vectorization pipeline and stored inside qDrant. If the user updated their resume, it will triggered the pipeline to upsert data related to the user.
The vectorized database will then be polled from qDrant through a pipeline allowing GPT-OSS for faster query and return a results with project idea that will best fits for the entire team.
I moved on to the backend, first I did all the authentication services like Login and Signup using Supabase Authjs, and I implemented motions and react-router along with different react hooks for smooth and intuitive UI. After that, I decide to setup Supabase broadcast for Websocket communication between users once they're in the room.
Challenges we ran into
- The hardest part was solving race conditions during team matching. If two people clicked "join" at the exact same time, both would be redirected to a blank screen.
- There was also a race condition where all teammates were trying to generate project ideas simultaneously.
- Had a lot of trouble parsing resumes so that the resume validator would work correctly.
- Developing a fast, real-time service that was synchronized among all members was also a significant challenge.
Accomplishments that we're proud of
- Finish the project on time :)
- Achieve a fast, real-time result with good project ideas generator.
- Push through hardest part which is getting the model to work.
What we learned
I learned not to over-complicate or prematurely optimize things that aren't needed. Initially, I planned to use a Redis cache for resume hits and misses, but it kept crashing, so I had to change my plans. There were multiple situations where I had to pivot, which was very difficult. I also learned the importance of ensuring everything is connected from end to end.
What's next for interns.so
Well, there's only one way to go from here, is to get more people to use. I plan on adding a new features where once the user finished working with a group, their project can be view and be upvote by other players. The more upvote they have, the higher the ranking will be. So it will continue to improve the player's ranking and there will be a leaderboard as well.
Built With
- java
- javascript
- pymupdf
- python
- python-package-index
- qdrant
- react
- supabase
Log in or sign up for Devpost to join the conversation.