Inspiration
We've lived this problem. Every placement season, we'd open six browser tabs, three spreadsheets, and a notes app just to keep track of where we'd applied. We'd find out we weren't a fit for a role only after the rejection email. We'd miss deadlines we genuinely cared about because they were buried in a calendar we forgot to check.
The tools we had were passive — they stored information but never did anything with it. We wanted the opposite: an agent that doesn't wait for you to ask. One that reads a job posting, tells you where you stand, builds your prep plan, and taps you on the shoulder before a deadline slips. That idea became OrbitKeeper.
What it does
OrbitKeeper is an autonomous AI career agent. You paste in a job description, and a team of six specialized agents goes to work:
- Job Analysis — pulls out the real requirements, skills, and deadline from messy job text
- Resume Match — scores your fit from 0–100 and shows your strengths and gaps
- Career Planning — generates a prioritized, trackable prep plan for that exact role
- Interview Prep — writes technical, behavioral, and project questions tailored to you
- Career Copilot — a chat assistant that knows your entire application history
- Deadline Monitor — runs around the clock and emails you 24h and 12h before any deadline, completely on its own
The result: less tab-juggling, fewer missed chances, and a clear answer to "am I actually ready for this one?"
How we built it
We built OrbitKeeper on Google Agent Platform, using Gemini 3.5 Flash for all reasoning, planning, and generation.
The heart of the system is a real MongoDB MCP server built with the official Model Context Protocol SDK. Instead of letting our agents touch the database directly, we exposed 14 standardized MCP tools (query, insert, update, aggregate, store analysis, fetch deadlines, log notifications, and more). Every agent reasons with Gemini and acts only through these tools — clean separation, fully auditable.
- Frontend: React 18, Tailwind CSS, Vite, Recharts, Firebase Auth (Google OAuth)
- Backend: Node.js, Express, Mongoose, the MCP server, and a
node-crondeadline monitor - Data & memory: MongoDB Atlas stores applications, profiles, and the agent's long-term career memory
- Notifications: Nodemailer over Gmail SMTP for the autonomous reminders
- Hosting: Vercel (frontend) and Render (backend) — running at $0/month
Challenges we ran into
- MongoDB replication lag. Right after a resume upload, a follow-up read sometimes hit a secondary node and came back empty, so match scores showed 0. We fixed it with primary read preference, majority write concern, and retry logic in our
get_profiletool. - Gemini 3 model access. Our first calls returned a 404. We discovered the Gemini 3 family is served on the global endpoint, not regional
us-central1. Switching the location resolved it. - Keeping reminders honest. We needed reminders that fire once — not every cron tick. We built tight time windows (20–24h and 10–12h before deadline) plus per-application flags so nobody gets spammed.
- MCP discipline. It was tempting to just import the database into an agent. We held the line: every data operation goes through an MCP tool, which made the whole system far easier to reason about.
Accomplishments that we're proud of
- A working multi-agent system where agents genuinely coordinate, not just one model behind a chat box.
- A real MCP server with 14 tools — not a wrapper, an actual protocol implementation.
- A fully autonomous deadline agent that has already sent us real reminder emails before our own deadlines.
- Shipping the entire thing — auth, AI pipeline, database, email, and a polished UI — to production for $0.
What we learned
- Agents are about action, not answers. The moment we stopped thinking "chatbot" and started thinking "tools + reasoning + execution," the design clicked.
- MCP is a real architectural win. Decoupling reasoning from data access made testing, debugging, and scaling dramatically easier.
- Production teaches you things localhost hides — replication lag, blocked SMTP ports, regional model endpoints. Each bug made the system tougher.
What's next for OrbitKeeper
- Resume tailoring — auto-generate a customized resume per application
- Company research agent — culture, interview process, and recent news in one place
- Mock interview agent — voice-based practice with real-time feedback
- Analytics dashboard — response rates, match-score trends, and pipeline insights
- Browser extension — one-click save straight from LinkedIn or any careers page
Built With
- express.js
- firebase
- firebase-auth
- gemini
- google-agent-platform
- javascript
- mcp
- model-context-protocol
- mongodb
- mongodb-atlas
- node-cron
- node.js
- nodemailer
- react
- recharts
- render
- tailwindcss
- vercel
- vertex-ai
- vite
Log in or sign up for Devpost to join the conversation.