AI-powered Chrome extension for generating smart, context-aware LinkedIn replies with human review before send.
ReplyPilot is a product-focused Chrome extension that helps users respond faster and more thoughtfully inside LinkedIn messaging.
Instead of switching tabs, copying messages into another tool, and manually drafting replies, ReplyPilot works directly in the LinkedIn workflow:
- it extracts recent message context from the active conversation
- sends that context to a custom backend
- generates a reply using Groq
- lets the user choose a tone
- inserts the reply back into the LinkedIn composer
- keeps sending fully manual
The goal is simple: reduce reply friction without taking control away from the user.
AI reply generationpowered by a custom backend and GroqLinkedIn context extractionfrom the active message threadTone selectionwithprofessional,friendly, andshortmodesOne-click insertinto the LinkedIn composerManual-send safetyso users always review before sendingLightweight trackingfor core extension usage events
ReplyPilot is split into two main parts:
- a Chrome extension built with Plasmo + React that runs inside LinkedIn
- a lightweight Node/Express backend that formats prompts, calls the AI provider, and returns a generated reply
The extension handles UI, context extraction, and insertion. The backend handles reply generation logic and provider communication.
flowchart LR
A[LinkedIn Messaging UI] --> B[ReplyPilot Chrome Extension]
B --> C[Context Extraction]
C --> D[Reply Panel + Tone Selection]
D --> E[Backend API]
E --> F[Prompt Builder]
F --> G[Groq API]
G --> E
E --> H[Generated Reply]
H --> B
B --> I[Insert into LinkedIn Composer]
At a high level, the user flow looks like this:
- Open a LinkedIn conversation.
- Click
Generate Reply. - ReplyPilot reads the recent conversation context.
- The selected tone and message context are sent to the backend.
- The backend builds a prompt and calls Groq.
- A generated reply is returned to the extension.
- The user reviews the draft and clicks
Insert Reply. - The draft is inserted into the LinkedIn composer for manual sending.
flowchart TD
A[User opens LinkedIn chat] --> B[Click Generate Reply]
B --> C[Extract recent conversation context]
C --> D[Choose tone]
D --> E[Send request to backend]
E --> F[Build prompt]
F --> G[Call Groq]
G --> H[Return generated reply]
H --> I[Preview in reply panel]
I --> J[User clicks Insert Reply]
J --> K[Insert into LinkedIn composer]
K --> L[User reviews and manually sends]
PlasmoReactTypeScriptTailwind CSSChrome Extension Manifest V3
Node.jsExpressTypeScriptts-nodenodemon
Groq APIas the primary MVP providerOpenAI APIsupport available as an alternative provider path
- lightweight backend event tracking
- current MVP focuses on extension usage signals rather than a full analytics dashboard
ReplyPilot/
├── backend/
│ ├── src/
│ │ ├── config/
│ │ ├── controllers/
│ │ ├── middleware/
│ │ ├── providers/
│ │ ├── routes/
│ │ ├── services/
│ │ ├── types/
│ │ ├── utils/
│ │ └── app.ts
│ ├── .env.example
│ ├── package.json
│ └── tsconfig.json
├── extension/
│ ├── assets/
│ ├── src/
│ │ ├── adapters/
│ │ ├── background/
│ │ ├── contents/
│ │ ├── lib/
│ │ ├── popup/
│ │ └── types/
│ ├── package.json
│ ├── tailwind.config.js
│ └── tsconfig.json
├── docs/
│ ├── banner.png
│ ├── popup-preview.png
│ ├── reply-panel.png
│ ├── reply-generation.gif
│ ├── architecture.png
│ └── workflow.png
├── README.md
└── SETUP.md
git clone https://github.com/your-username/replypilot.git
cd replypilotcd backend
npm installCreate a .env file inside backend/ using backend/.env.example as a reference.
Example:
PORT=3001
NODE_ENV=development
AI_PROVIDER=groq
GROQ_API_KEY=gsk_your-groq-api-key-here
OPENAI_API_KEY=sk-your-openai-api-key-herecd backend
npm run devThe API should start on http://localhost:3001.
cd extension
npm installIf your local setup uses pnpm, you can also run:
pnpm installcd extension
npm run dev- Open
chrome://extensions - Enable
Developer mode - Click
Load unpacked - Select the generated extension build folder from the Plasmo dev output
To test ReplyPilot on LinkedIn:
- Open LinkedIn messaging and enter an active conversation.
- Click the
Generate Replybutton injected by the extension. - Review the extracted conversation context in the reply panel.
- Choose a tone:
professionalfriendlyshort
- Generate the reply.
- Click
Insert Replyto place it into the LinkedIn composer. - Review the draft and manually click
Sendyourself if it looks right.
ReplyPilot is intentionally designed with a manual-send workflow.
- replies are
generated, not auto-sent - inserted drafts remain
editable - the user is expected to
review before sending - no automated outbound LinkedIn messaging is performed by the extension
ReplyPilot is currently in MVP stage with a working end-to-end LinkedIn reply flow.
- LinkedIn content script integration
- context extraction from message threads
- inline reply panel UX
- backend API for reply generation
- Groq-based AI reply generation
- tone selection
- draft insertion into the LinkedIn composer
- lightweight event tracking
- stronger personalization
- smarter context cleanup and filtering
- more robust insertion reliability across LinkedIn UI variants
- production deployment for the backend
- packaged release flow
Personalization: smarter reply style adaptation per user preferenceContext Quality: better filtering of noisy or low-value thread textAI Quality: improved prompt tuning and safer, more natural repliesDeployment: hosted backend environment for real-world usageChrome Web Store: extension packaging and store submissionAnalytics Dashboard: a lightweight internal dashboard for product insights
Built by Atharv Navatre
- LinkedIn:
(https://www.linkedin.com/in/atharv-navatre-1201662b1/)/ - GitHub:
(https://github.com/Atharv-navatre)
This project is available under the MIT License.


