Skip to content

Commit 569c88b

Browse files
committed
Add LEGAL_NOTICE.md and require acceptance during onboarding
1 parent 8d74f40 commit 569c88b

3 files changed

Lines changed: 86 additions & 7 deletions

File tree

LEGAL_NOTICE.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# LEGAL NOTICE – OpenOutreach
2+
3+
**Effective upon use of this software**
4+
5+
OpenOutreach is an open-source tool that automates actions on LinkedIn using **your** personal LinkedIn account credentials and browser session. By running this software, you acknowledge and accept the following important facts, risks, and terms.
6+
7+
### 1. LinkedIn Automation Is Prohibited by LinkedIn
8+
LinkedIn's User Agreement (Section 8.2 and related Help articles) **explicitly prohibits**:
9+
- Using bots, scripts, software, browser extensions, or any other automated means to access the service, send messages, add connections, visit profiles, or perform other actions.
10+
- Developing, supporting, or using unauthorized automated methods for any activity on LinkedIn.
11+
12+
Running OpenOutreach (or any similar tool) **violates LinkedIn's Terms of Service**. This can result in:
13+
- Temporary or permanent restriction/suspension/ban of your LinkedIn account
14+
- Loss of connections, messages, leads, or professional network
15+
- In extreme cases, legal action from LinkedIn against users or tool providers
16+
17+
LinkedIn actively detects and penalizes automation. **There is no "safe" level of automation** — even low-volume use carries risk.
18+
19+
### 2. Automatic Newsletter Subscription (Non-GDPR Jurisdictions)
20+
On first run, OpenOutreach detects the country associated with your LinkedIn account. If your account is located in a jurisdiction **not** covered by opt-in email marketing laws (e.g. GDPR, CASL, LGPD, Spam Act, etc.), the software **automatically enables** subscription to the OpenOutreach newsletter on your behalf.
21+
22+
- **What happens**: Your `subscribe_newsletter` setting is set to `True` without explicit opt-in. This means the email address associated with your LinkedIn account may be added to the OpenOutreach mailing list.
23+
- **Protected jurisdictions**: Accounts in the EU/EEA, UK, Switzerland, Canada, Brazil, Australia, Japan, South Korea, and New Zealand are **not** auto-subscribed (existing preference is preserved).
24+
- **Unknown location**: If your country cannot be determined, the software defaults to treating you as protected (no auto-subscription).
25+
- **Opting out**: You can disable this at any time by setting `subscribe_newsletter` to `False` in the Django Admin under your LinkedInProfile, or during the initial onboarding prompt.
26+
27+
### 3. No Warranty – Use at Your Own Risk
28+
OpenOutreach is provided **AS IS**, without any warranties of any kind (express or implied), including but not limited to fitness for a particular purpose, non-infringement, or that it will not cause harm to your accounts or data.
29+
30+
The developer(s):
31+
- Do not guarantee any results from using the tool
32+
- Are not responsible for any account bans, lost business, legal consequences, or other damages
33+
- Recommend you **review LinkedIn's current User Agreement** and automation policies yourself before use
34+
35+
### 4. Freemium Promotional Actions
36+
OpenOutreach is free to use under a **freemium model**. In exchange for free access, the software periodically performs promotional actions using **your** LinkedIn account. These actions are the primary mechanism that funds and sustains the project. Paid plans that reduce or remove them may be offered in the future.
37+
38+
- **What happens**: On average every N of your campaign actions, the tool automatically selects a LinkedIn profile (unrelated to your campaign targets — your own qualified leads are never affected), sends a connection request (if not already connected), and delivers a promotional message on behalf of OpenOutreach.
39+
- **Remote configuration**: N (the average interval), the ranking model used to select targets, and the message content are **retrieved from a remote server** at startup. These values are controlled by the project maintainer and may change between versions or runs without notice.
40+
- **Impact on you**: These messages appear as sent from **your** account.
41+
- **Opting out**: These actions cannot be disabled without modifying the source code yourself, which is permitted under the licence.
42+
43+
### 5. Your Responsibility
44+
By downloading, installing, configuring, or running OpenOutreach, you:
45+
- Confirm you are of legal age and have authority to accept these terms
46+
- Agree to use the tool only in compliance with all applicable laws (including data protection/privacy laws like GDPR if relevant)
47+
- Accept full responsibility for any consequences of automation on your LinkedIn account(s)
48+
- Understand that modifying the code to remove/disable freemium promotional actions is permitted under the licence, but doing so remains your responsibility
49+
50+
If you do **not** agree with any part of this notice — especially the freemium promotional actions or the violation of LinkedIn's terms — **do not use this software**. Delete it immediately.
51+
52+
Questions or concerns? Open an issue on the repository or contact the maintainer(s).
53+
54+
**Continued use constitutes acceptance of this Legal Notice.**

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,16 +244,14 @@ Join for support and discussions:
244244

245245
---
246246

247-
## 📜 Legal Disclaimer
247+
## 📜 Legal Notice
248248

249249
**Not affiliated with LinkedIn.**
250250

251-
Automation may violate LinkedIn's terms (Section 8.2). Risk of account suspension exists.
251+
By using this software you accept the [Legal Notice](LEGAL_NOTICE.md). It covers LinkedIn ToS risks, built-in self-promotional actions, automatic newsletter subscription for non-GDPR accounts, and liability disclaimers.
252252

253253
**Use at your own risk — no liability assumed.**
254254

255-
<sub>Accounts in non-GDPR jurisdictions are auto-subscribed to the OpenOutreach newsletter on first run. You can disable this via `subscribe_newsletter` in your [account config](./docs/configuration.md#gdpr-location-detection).</sub>
256-
257255
---
258256

259257
<div align="center">

linkedin/onboarding.py

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,18 +216,45 @@ def _onboard_account(campaign):
216216
return profile
217217

218218

219+
def _require_legal_acceptance() -> None:
220+
"""Require the user to read and accept the legal notice before continuing."""
221+
url = "https://github.com/eracle/linkedin/blob/master/LEGAL_NOTICE.md"
222+
print()
223+
print("=" * 60)
224+
print(" LEGAL NOTICE")
225+
print("=" * 60)
226+
print()
227+
print(f"Please read the Legal Notice before continuing:\n {url}")
228+
print()
229+
while True:
230+
answer = input("Do you accept the Legal Notice? (y/n): ").strip().lower()
231+
if answer == "y":
232+
return
233+
if answer == "n":
234+
print()
235+
print(
236+
"You must accept the Legal Notice to use OpenOutreach. "
237+
"Please read it carefully and try again."
238+
)
239+
print()
240+
continue
241+
print("Please type 'y' or 'n'.")
242+
243+
219244
def ensure_onboarding() -> None:
220-
"""Ensure LLM config, Campaign, and active LinkedInProfile exist.
245+
"""Ensure Campaign, LinkedInProfile, LLM config, and legal acceptance.
221246
222247
If missing, runs interactive prompts to configure them.
223248
"""
224249
from linkedin.models import Campaign, LinkedInProfile
225250

226-
_ensure_llm_config()
227-
228251
campaign = Campaign.objects.first()
229252
if campaign is None:
230253
campaign = _onboard_campaign()
231254

232255
if not LinkedInProfile.objects.filter(active=True).exists():
233256
_onboard_account(campaign)
257+
258+
_ensure_llm_config()
259+
260+
_require_legal_acceptance()

0 commit comments

Comments
 (0)