Skip to content

Angelaho1128/ForgeLink

Repository files navigation

logo

ForgeLink

Cold emails that warm up: from research to relationships.

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributors
  4. Contact
  5. Acknowledgments

About The Project

Built with

Next React Javascript CSS HTML Python Gemini

Demo

Watch the demo

Features

  • Profile summary:
    BrowserUse → collects text + sources → Gemini extracts 5–10 concise facts (roles, companies, skills, notable work).

  • Auto-intent drafting:
    No dropdown needed. The server classifies your prompt into one of:

    • Email (subject + body)
    • Questions (3–6 tailored questions)
    • Message (short DM/intro)
    • Summary (talking points)
  • Grounded generation:
    Gemini receives the target’s facts, sources, best URL, and a clipped profile excerpt, plus overlap reasoning with your profile so that drafts stay specific.

  • Chat UX built for flow:

    • System intro bubble at the top with profile highlights.
    • Thinking bubble while Gemini drafts.
    • Clean, copy-ready results.
  • Targets sidebar (organized outreach):
    Stacked list of people you’ve researched; add from the enter-info page, click to open chat, and delete via a trash icon.

  • Simple auth & security:
    JWT signup/login; all targets and actions are bound to the authenticated user (no IDs passed in requests).

  • Data model (MongoDB Atlas):

    • Users: username, passwordHash, name, headline, (optional) experiences, interests, tone
    • Targets: ownerUserId, name, headline, facts, sources, profileUrl, profileText, confidence
    • Drafts: ownerUserId, targetId, subject/body or questions
  • Dev-friendly setup:
    React + Vite, Express, Nodemon, .env config, robust JSON parsing for LLM outputs, and CORS enabled for local dev.

Color codes

Primary Secondary Accent

Project Structure

FORGELINK/
├── node_modules/
├── python/.venv
├── public/
│   ├── main.jsx
│   ├── styles.css
│   └── assets/
│       ├── icon.png
├── scripts/
│   ├── collect_profile.py
│   └── seed_user.js
├── server/
│   ├── middleware/
│   │   └── requireAuth.js
│   ├── models/
│   │   └── User.js
│   ├── routes/
│   │   ├── auth.js
│   │   └── targets.js
│   ├── services/
│   │   └── ai.js
│   └── server.js
├── src/
│   ├── components/
│   │   ├── Button.jsx
│   │   ├── Message.jsx
│   │   └── Sidebar.js
│   ├── pages/
│   │   ├── Chat.jsx
│   │   ├── EnterInfo.jsx
│   │   ├── Login.jsx
│   │   └── SignUp.jsx
│   ├── styles/
│   │   ├── Chat.css
│   │   ├── EnterInfo.css
│   │   ├── Login.css
│   │   ├── Sidebar.css
│   │   └── SignUp.css
│   ├── utils/
│   │   ├── api.js
│   │   ├── auth.js
│   │   └── targets.js
│   ├── App.jsx
│   ├── App_test.jsx
│   ├── index.html
│   └── index.jsx
├── .env
├── .gitignore
├── nodemon.json
├── package-lock.json
├── package.json
├── README.md
└── vite.config.js

Getting Started

  1. Create a MongoDB atlas account here

  2. Download dependencies in npm:

npm init -y
npm i react react-dom react-router-dom cors express mongoose @google/generative-ai bcryptjs jsonwebtoken
npm i -D vite @vitejs/plugin-react concurrently
  1. Create virtual env in root directory (ForgeLink)
python3 -m venv python/.venv
source python/.venv/bin/activate
  1. Download dependencies with pip:
pip install browser-use python-dotenv playwright
python -m playwright install --with-deps chromium
  1. In .env:
PORT=3000
GOOGLE_API_KEY=""
MONGODB_URI=""
NODE_ENV=development
PYTHON_BIN=python/.venv/bin/python
JWT_SECRET=
VITE_API_BASE=
  1. Kickstart ForgeLink
npm run dev

Then open http://localhost:5173/!

API will be hosted at port 3000

Contributors

Team member Roles
Vienna BrowserUse, Gemini, linking backend and frontend, authentication, Login/Sign up logic, chat page, sidebar
Angela Designs and aesthetics for pages, login and sign up pages, EnterInfo page

Contact

Vienna Zhao - GitHub - LinkedIn - [email protected]

Angela Ho - GitHub - LinkedIn - [email protected]

Project Link: https://github.com/Angelaho1128/ForgeLink

Acknowledgements

Flaticon

Readme Template 1 - othneildrew

Readme Template 2 - Louis3797

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •