system-prompts-and-models-o.../dealix/auto_client_acquisition/targeting_os/linkedin_strategy.py
Sami Assiri b13cb389cc feat(dealix): sync full Dealix package to repo
- API routers, ACA modules, integrations (draft operators)
- Docs, landing pages, scripts (launch readiness, scorecard)
- Tests and CI workflow updates for Dealix

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-01 21:01:17 +03:00

64 lines
2.3 KiB
Python

"""LinkedIn-compliant strategy — Lead Gen, ads, manual tasks only."""
from __future__ import annotations
from typing import Any
def linkedin_do_not_do() -> list[str]:
return [
"scraping_profiles",
"auto_dm",
"auto_connect",
"bulk_export_without_consent",
"browser_automation_on_linkedin_feed",
]
def recommend_linkedin_strategy(segment: str, goal: str) -> dict[str, Any]:
return {
"strategy": "lead_gen_forms_first",
"segment": segment,
"goal": goal,
"do_not_do": linkedin_do_not_do(),
"summary_ar": "استخدم Lead Gen Forms والإعلانات والمهام اليدوية المعتمدة — لا scraping ولا رسائل آلية.",
"demo": True,
}
def build_lead_gen_form_plan(segment: str, offer: str, campaign_name: str) -> dict[str, Any]:
return {
"campaign_name": campaign_name or "dealix_pilot",
"audience_hint": f"{segment} — أصحاب قرار في الخدمات B2B",
"offer": offer,
"hidden_fields_suggested": ["campaign_name", "sector", "sales_owner"],
"next_steps_ar": [
"أنشئ حملة Lead Gen في LinkedIn Campaign Manager.",
"اربط الحقول المخفية بمصدر Dealix.",
"لا تفعّل إرسالاً آلياً من Dealix إلى InMail بدون سياسة.",
],
"demo": True,
}
def build_manual_research_task(account: dict[str, Any], role: str) -> dict[str, Any]:
return {
"task_type": "manual_linkedin_lookup",
"company": account.get("company"),
"target_role": role,
"instructions_ar": f"ابحث يدوياً عن {role} في {account.get('company')} — انسخ الرابط العام فقط، لا أتمتة.",
"demo": True,
}
def build_safe_connection_message(role: str, company: str, offer: str) -> dict[str, Any]:
return {
"message_ar": (
f"تحية، أتابع عمل {company}. نعمل على {offer} لفرق المبيعات في السعودية. "
f"إن كان عندكم اهتمام، أرسل ملخصاً قصيراً دون التزام."
),
"approval_required": True,
"channel": "linkedin_manual_only",
"demo": True,
}