Inspiration
We've all been there you meet someone incredible at a hackathon, career fair, or conference, exchange LinkedIn connections, and then nothing. Life gets busy, the conversation fades, and three months later they're a stranger. We built Orbit because the problem isn't making connections, it's maintaining them. We wanted to build something that lives where networking already happens and makes follow through effortless.
What it does
Orbit is a Chrome extension that injects a smart sidebar directly into LinkedIn profile pages. It lets you save contacts with conversation notes, tracks how recently you've been in touch using a colour coded relationship heat score (green, yellow, red), and uses Google Gemini AI to generate personalized follow-up messages based on your notes. When you're ready to reach out, one click copies the message and opens LinkedIn messaging so sending takes seconds. Currently Orbit runs as a local developer extension anyone can install it by loading it unpacked in Chrome with their own free Gemini API key.
How we built it
We built Orbit as a Chrome Manifest V3 extension using vanilla JavaScript and CSS. The sidebar is dynamically injected into LinkedIn profile pages using a content script and MutationObserver to handle LinkedIn's single-page navigation. Contact data is stored locally using chrome.storage.local no backend or database required. AI message generation is powered by the Google Gemini API (gemini-2.5-flash), with prompts tailored to the contact's name, title, company, and personal conversation notes.
Challenges we ran into
LinkedIn's Content Security Policy blocked direct API calls from the page context, which took significant debugging to resolve. We also had to handle LinkedIn's dynamic single-page app navigation standard page load events don't fire when browsing between profiles, so we had to detect URL changes using a MutationObserver. Getting the AI prompts to produce messages that felt genuinely human rather than templated also took several iterations. On top of that, balancing the free tier API rate limits while testing rapidly was a constant challenge throughout the build.
Accomplishments that we're proud of
We're proud that Orbit works as a fully functional prototype not just a mockup or demo. The core loop works end-to-end: visit a profile, add a contact, write notes, generate an AI message, and send it all without leaving LinkedIn. The relationship heat score gives an instant at-a-glance view of your entire network's health. We shipped this in under 24 hours. The main limitation is that it currently requires manual installation as a developer extension rather than being published to the Chrome Web Store, but all the core functionality is real and working.
What we learned
We learned a lot about Chrome extension architecture specifically how content scripts, service workers, and host permissions interact under Manifest V3. We also learned how much prompt engineering matters: small changes to how we described the task to Gemini made a significant difference in the quality and tone of the generated messages. And we learned that LinkedIn's frontend is complex enough to require creative workarounds for even basic tasks like detecting page navigation.
What's next for Orbit
The immediate next step is publishing Orbit to the Chrome Web Store so anyone can install it with one click no developer setup or API key required. We'd move the Gemini API key to a secure backend proxy so it works out of the box. Beyond that, we want to add proactive reminders when contacts are going cold, cross-device sync so your notes follow you everywhere, and a meeting notes importer. Long term, Orbit could expand beyond LinkedIn to track relationships across email, Slack, and other platforms becoming a true relationship OS for professionals.
Log in or sign up for Devpost to join the conversation.