Author: Prince Soni
GitHub: @NyXdeity
Email: soniprince.work@gmail.com
License: MIT License
Copyright: © 2024 Prince Soni. All rights reserved.
Outreachly helps you automate personalized email outreach to potential learners or clients. You can upload a list of users with their LinkedIn URLs, and the app will:
- Scrape each user's public LinkedIn profile
- Generate a personalized email draft for each user
- Let you review, download, and send these emails directly via your Gmail account
- Upload an Excel file with user details and LinkedIn URLs
- Enter course or offering details and a target persona
- Securely enter your Gmail credentials (credentials are never stored)
- Scrape LinkedIn profiles using the Bright Data API and generate custom email drafts for each user
- Download all results as a CSV
- Send emails to all users with a single click, with detailed logging for each step
- UI never resets during sending, and all results/logs are visible after actions
- Streamlit (user interface)
- Bright Data API (for LinkedIn scraping)
- Anthropic Claude API (for generating personalized emails)
- pandas (for Excel file handling)
- Supabase or MongoDB (for storing results, if configured)
- Clone this repository and install dependencies:
pip install -r requirements.txt
- Create a
.envfile in the project root with your API keys and database credentials. Example:ANTHROPIC_API_KEY=your_claude_api_key SUPABASE_URL=your_supabase_url SUPABASE_KEY=your_supabase_key BRIGHTDATA_API_KEY=your_brightdata_api_key
- Run the app:
streamlit run main.py
- Enter your course details and the persona you want to target.
- Upload an Excel file with at least one column containing LinkedIn profile URLs (and, optionally, email addresses).
- Enter your Gmail credentials (Gmail App Password recommended).
- Start the workflow. The app will scrape LinkedIn profiles using the Bright Data API and generate email drafts.
- Review the results, download the CSV, and send emails directly from the app.
- Your Gmail credentials are only used in-memory for the session and never stored.
- Use a Gmail App Password for sending emails (see Google instructions).
- Your Bright Data API key is required for LinkedIn scraping and should be kept secure in your
.envfile. - For production use, consider setting up OAuth for Gmail.
- Make sure your Gmail credentials and Bright Data API key are correct.
- If scraping fails, check your Bright Data API key, quota, or network connection.
- If emails are not sending, ensure your Gmail App Password is valid and you have not hit sending limits.
Prince Soni
B.Tech CSE '27, passionate about Web3 technologies and Web development.
- GitHub: @NyXdeity
- Email: soniprince.work@gmail.com
- LinkedIn: Prince Soni
- Twitter: @prints_twt
Outreachly Copyright © 2024 Prince Soni. All rights reserved.