Inspiration

We wanted to help students who feel lost in their careers. Many don't know what to do next or where to start. We built Graid so they have one place to plan, get advice, and keep their goals and info in order. The idea is simple: goals meet pathways, and AI helps you take the next step.

What it does

Graid is an AI career app for UC Davis students. You sign in with Google and answer a few questions (school, scores, what you want to do). Then you chat with Oasis, an AI advisor that:

  • Gives advice based on your profile (GPA, test scores, goals, etc.)
  • Remembers your past chats so it can help with follow-up questions
  • Saves important things as cards in a Console (schools, deadlines, notes). You can add your own cards and attach them to messages so the AI uses that info
  • Works for different paths: Pre-Med, CS and Tech, Business, Sciences, or your own path
  • Has a Network where you can find other recent graduates students by major We made sure the AI does not make up numbers (like acceptance rates or tuition). It says when it is not sure and tells you what is a fact vs. what is its opinion. #How we built it
  • Frontend: React and TypeScript. We used Zustand for state, Framer Motion for animations, and Tailwind for styling. There is a chat panel with streaming messages and a Console panel with cards. You can add cards with a plus button (scores, deadlines, notes, blank cards).
  • Backend: Node and Express. We use Firebase for login and Socket.io for real-time chat and card updates. We added rate limits and checks to keep the API safe.
  • AI: Google Gemini for chat. We store your conversation chunks in Pinecone (RAG) so we can pull in relevant past context. When the AI talks about schools or deadlines, we can create cards from that. The flow is: save your message, get context from RAG and your cards, generate the reply, save it, then look for card ideas.
  • Cards: Each session has its own cards. You can edit your cards (scores, notes, etc.). Some cards come from the AI. New cards show up in real time.
  • Login and profile: Google sign-in. We save your profile (scores, pathways, goals) and use it to personalize the AI.

Challenges we ran into

  • Keeping the AI honest: We had to change the prompts so it never invents stats. We added rules and made it say things like "I'll look this up" when it doesn't know.
  • When to create cards: We had to decide when the AI should create cards and how to not fill the screen with too many. We use the AI to suggest topics and only create cards when it makes sense. We also made blank cards ask for a name and optional content first.
  • RAG: We had to filter context so we only use relevant past chats. We chunk text and filter by your pathway.
  • Real-time: Keeping chat and cards in sync (and after you refresh) took care with Socket.io rooms and client state.
  • Scraping: When we pull data from other sites for research cards, things can fail. We retry and show "Loading..." until we have data.

Accomplishments we're proud of

  • One place for your profile, chat, and cards. When you attach cards to a message, the AI really uses them. So your conversation and your info stay connected.
  • Different paths (Pre-Med, CS, Business, etc.) get different prompts and card types. It feels built for your path.
  • Chat streams word by word and new cards appear right away.
  • We separate "verified" from "our analysis" so you know what to trust.
  • Simple onboarding and a clear landing page: "Plan your career, where goals meet pathways and AI guides your next steps."

What we learned

  • RAG helps but we had to keep it focused (good chunks, filters) so the AI doesn't get confused.
  • Cards that you and the AI both see (and that you can attach to messages) made the app more useful than chat alone.
  • Using both HTTP and Socket.io for chat and updates needed clear rules and good handling when the connection drops.
  • Making the AI not make up numbers took many prompt tries. Being very clear and repeating the rules worked best.

What's next for Graid

  • Better research cards with real data from school sites and clear sources.
  • Show action items and deadlines from the chat in the Console or a simple checklist.
  • Make the Network more like a community (profiles, shared paths, study groups).
  • Mobile-friendly design and reminders for deadlines.
  • Support more schools beyond UC Davis with the same idea: help students who feel lost in their careers.

Built With

  • api
  • firestore)
  • gemini
  • google
  • pinecone
  • playwright
  • rag)
  • serpapi
  • socket.io
  • typescript-react-vite-tailwind-css-node.js-express-firebase-(auth
  • zustand
Share this project:

Updates