💡 Inspiration
As a CS/AI student, I live with a frustrating paradox: there has never been more opportunity in my field, and it has never been harder to keep track of it. Hackathons, fellowships, scholarships, research labs, internships, and shifting skill demands are scattered across a hundred tabs. Generic advice ("learn DSA, do projects") doesn't tell me which of 200 programs actually fits my level and interests, or what gap stands between me and the role I want.
I didn't want another chatbot that answers questions. I wanted a copilot that knows me and acts on my behalf — one profile that powers knowledge growth, trend awareness, opportunity discovery, higher-education guidance, and placement help. That idea became DevPath AI.
How we built it
I built DevPath AI as a solo, all-Python project. Gemini 2.5 Flash is the reasoning brain, Google ADK handles the multi-agent orchestration, and MongoDB Atlas Vector Search is the semantic memory. The frontend is a Streamlit dashboard with email/ password login, a student profile, and persistent chat.
The design is one orchestrator routing to six specialist sub-agents — profile,
opportunity, career, trends, learning, and higher-ed — that all share the same student
profile and tools. I embed every opportunity, job, trend, and program into 768-dim vectors
with gemini-embedding-001 and rank them by cosine similarity against the profile vector,
using a single Atlas $vectorSearch index with a category filter.
I deliberately used MongoDB two ways: as an MCP server (the official
mongodb-mcp-server wired into the orchestrator via ADK's MCPToolset, giving the agent live
DB tools) and as semantic memory (Atlas Vector Search). Finally, I deployed the dashboard
on Cloud Run and the agent itself on Vertex AI Agent Engine, with secrets in Secret
Manager.
Challenges we ran into
- My system Python (3.9) broke everything — it failed both the MCP client and the gcloud CLI, so I had to install a standalone Python 3.12 to unblock the whole toolchain.
- Atlas free-tier index limit — M0 caps search indexes, so I redesigned four separate
collections into one
corpuscollection with acategoryfilter behind a single index. - TLS handshake errors from the cloud — a scary
TLSV1_ALERT_INTERNAL_ERRORturned out to be the Atlas IP access list blocking Cloud Run's dynamic IPs, not an actual SSL bug. - The hardest one — Agent Engine sessions failing with 403. The managed session service kept hitting my API key's other Google project. I fixed it by not passing the API key to the deployment (so the agent runs on Vertex AI in the right project) and passing the embedding key under a separate variable used only by the embedding client.
Accomplishments that we're proud of
As a student building solo, I shipped a real multi-agent system end to end — not a single
prompt pretending to be agents. The moment I'm proudest of: asking "What should I focus on
this month?" triggers the orchestrator to transfer to a specialist, read my profile from
MongoDB, run a live $vectorSearch, and return ranked opportunities with a "why this fits
you" reason and deadline alerts. I also got it running on two Google Cloud services
(Cloud Run + Vertex AI Agent Engine) and integrated MongoDB in two distinct ways, with login
and persistent chat history on top.
What we learned
- Multi-agent design is mostly about the shared spine. Once the profile store, orchestrator, and vector tool existed, every new capability became a thin prompt — which is how I covered so many features solo.
- Embeddings need care — model availability, output dimensionality, and matching the index dimension all matter (and cosine similarity being scale-invariant saved me from normalizing vectors).
- Managed runtimes have their own rules — Vertex AI Agent Engine reserves certain environment variables and expects the agent to run in Vertex mode for sessions.
- Practical cloud skills I didn't have before: Secret Manager, IAM, Cloud Run, and reading Cloud Logging to debug a container I couldn't see into.
What's next for DevPathAI
- Live data ingestion — pull real hackathons, scholarships, and job postings on a schedule instead of a seeded corpus.
- Proactive notifications — alert me before a matched deadline closes.
- Deeper higher-ed matching — embed professor- and lab-level research so the guidance gets sharper.
- Smarter skill-gap roadmaps — turn the gap analysis into a tracked, adaptive learning plan that updates as I grow.
Built With
- atlas-vector-search
- cloud-build
- cloud-run
- gemini
- gemini-2.5-flash
- gemini-embedding
- google-adk
- google-cloud
- google-genai
- mcp
- model-context-protocol
- mongodb-atlas
- mongodb-mcp-server
- multi-agent
- pymongo
- python
- rag
- secret-manager
- streamlit
- vertex-ai
- vertex-ai-agent-engine
Log in or sign up for Devpost to join the conversation.