Skip to content

Electrium-Mobility/Outreach-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Electrium Mobility Outreach Bot

A semi-automated outreach toolkit for recruiting University of Waterloo (UW) Computer Science and Engineering students to join Electrium Mobility.

Note: This project is intended for educational purposes. It is still in development and should be used responsibly.

📁 Project Structure

Outreach-Tool/
├── README.md
├── requirements.txt
├── .env.example
├── scraper.py
├── message_generator.py
├── outreach.py
└── main.py

Features

1) Scrape LinkedIn Search Results (Profiles)

  • Uses Playwright to scrape LinkedIn search results for a query (like “University of Waterloo Computer Science”).
  • Extracts:
    • Name
    • Headline
    • Profile link
  • Saves results to SQLite (default: outreach.db) or CSV.

✅ Command:

python main.py scrape --query "University of Waterloo Computer Science" --max 50

2) Generate Personalized Messages

  • Creates human-sounding outreach messages.
  • Avoids spam style, avoids links in the first message.
  • Optionally uses OpenAI (if OPENAI_API_KEY is set) for smarter personalization.

✅ Command:

python main.py generate --db outreach.db --max 25

3) Simulate Outreach + Rate Limiting / Daily Caps

  • Logs the message contents.
  • Ensures random delays (30–120s).
  • Enforces daily cap 20–30 messages.
  • Prevents duplicate messages (by profile).

✅ Dry-run:

python main.py outreach --db outreach.db --dry-run

✅ Real-run (records as “sent”):

python main.py outreach --db outreach.db

Safety / Anti-ban Design Included

  • ✅ Randomized delays (30–120s)
  • ✅ Daily sending cap (default: 25)
  • ✅ Prevents duplicates (only 1 message per profile)
  • ✅ No links in first outreach message
  • ✅ Logs everything in outreach.db
  • ✅ Doesn’t send actual LinkedIn messages (safe)

Files / Roles

scraper.py

  • Scrapes LinkedIn search results using Playwright
  • Saves profile info into SQLite/CSV

message_generator.py

  • Generates personalized outreach text
  • Optional OpenAI integration (OPENAI_API_KEY)

outreach.py

  • Handles enqueueing, queuing, logging, and simulated sending
  • Rate-limit logic + daily cap + logging + no duplicates

main.py

  • CLI entry point with 3 subcommands:
    • scrape
    • generate
    • outreach

Setup Instructions

1) Create & activate a Python venv

python -m venv .venv
.\\.venv\\Scripts\\activate

2) Install deps

pip install -r requirements.txt
python -m playwright install

3) Configure .env

Copy .env.example → .env and fill in your credentials.


Author:

Ishan A


About

A semi-automated outreach toolkit for recruiting University of Waterloo Computer Science and Engineering students to join Electrium Mobility. The tool is still in development, we are working on making it completely automated and creating a workaround LinkedIn TOS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages