← back to Li Followhub

README.md

47 lines

# LinkedIn Follow Hub

A **local, resumable, cadence-guarded click-list** for manually following LinkedIn
leads / interior designers / hospitality reps.

**http://127.0.0.1:9819**

## Why it exists
Driving Steve's real LinkedIn account to bulk-Follow trips active bot-detection
(PerimeterX `uc=scraping`, invisible reCAPTCHA, click-swallowing). Standing rule:
**LinkedIn = manual + tooling only, never auto-act (TOS).** So this hub does the
*tooling* half — it surfaces every person to follow and remembers your progress —
while **you** do the clicking in your normal Chrome. It never drives LinkedIn.

## What it fixes vs. the old `~/li-clicklist.html`
The old page was static HTML with no memory — reload and you lost your place.
This one persists every follow to `data/progress.json`, so it **survives reloads
and reboots**, shows a live daily count, and warns when you hit a human-paced cap.

## Data sources (read live each request, never written)
- `~/li-hospitality-reps.json` — curated reps
- `~/li-leads.json` — 167 Sales Navigator leads (new + warm)
- `~/li-profile-urls.json` — resolved direct `/in/` profile links
- `~/li-designer-queue.json` — ~1,827 interior designer / architect profiles
- `~/li-designers-followed.json` — prior follow-events (soft "likely already" hint)

## Your progress
- `data/progress.json` — `{ followed: { <id>: {ts} }, dailyTarget }` (git-ignored; personal state)

## Run
```sh
node ~/Projects/li-followhub/server.js        # foreground
# or keep it always-on:
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.steve.li-followhub.plist
```

## Cadence
Default cap 20/day (editable in the header). Bunched follows are what re-trip the
scraping flag — the ring + red banner exist to keep you under the radar. The cap
is advisory; the buttons still work — it's your call, it just warns.

## Hard rules honored
- Never clicks Follow, never drives LinkedIn, never touches openclaw.
- Never sends **Connect** (that's an invite) — only surfaces the profile so you Follow.
- Does not auto-rescrape Sales Navigator (that scrape is what gets flagged) — a fresh
  lead pull must come from you in a normal SalesNav session.