一个面向小规模 B2B 获客的本地优先工具,用于发现公开商业联系人、保存证据、评估数据质量、管理客户并安全发送邮件。
本项目与 LinkedIn Corporation 无关联,也未获得其认可。使用浏览器辅助或自动化功能时,请遵守目标网站条款、
robots.txt、适用法律和账号限制。本项目不提供验证码绕过、访问控制规避或浏览器指纹伪装。
- 公开网络采集:公司官网、团队页、新闻稿、公开 PDF、协会和展会目录。
- 多来源发现:Tavily、Bing、ImportYeti 等来源按可用性组合使用。
- LinkedIn 浏览器辅助:保存用户当前可见的搜索结果或资料页信息。
- 证据优先:为姓名、职位、公司、邮箱和电话保留来源 URL 与采集时间。
- 质量分级:区分真实身份、公司联系渠道、已验证个人渠道和拒绝数据。
- 客户管理:去重、隔离、筛选、状态跟进和数据导出。
- 发送安全:按质量分、邮箱状态、来源可信度和批量上限过滤。
- 本地存储:默认使用 SQLite,客户数据不会随源码提交到 GitHub。
推荐使用 Python 3.11 或 3.12。
py -m venv .venv
.\.venv\Scripts\Activate.ps1
py -m pip install -r requirements.txt
py scripts/init_config.py
py run.py web浏览器打开 http://localhost:8501。Chrome 扩展的本地接口需要时可按项目 UI 中的提示启动。
项目不会提交真实 API Key、代理、邮箱账号、LinkedIn 会话或浏览器 Cookie。
- 复制
config/api_keys.example.json为config/api_keys.json。 - 复制
config/linkedin_config.example.json为config/linkedin_config.json,或运行py scripts/init_config.py自动创建。 - 在本地文件或应用设置页中填写凭据。
API Key 也可以通过环境变量提供:
$env:TAVILY_API_KEY="your-key"
$env:APOLLO_API_KEY="your-key"
$env:PEOPLE_DATA_LABS_API_KEY="your-key"data/、browser_profile/、output/、真实配置文件和构建产物均已加入 .gitignore。
- 有姓名、决策相关职位、公司和可访问证据,才视为有效身份。
- 猜测邮箱只是候选;仅在域名可信且邮箱验证通过后进入默认可发送范围。
- Catch-all、无法验证或来源不明的数据不会自动视为高质量联系人。
- Google Maps 等目录来源默认作为公司线索,不包装成真实个人联系人。
- 自动化遇到验证码、登录失效、限流或安全验证时应立即停止,不进行绕过。
src/core/ 核心搜索、质量、证据、数据库和发送逻辑
src/web_app.py Streamlit Web 界面
chrome_extension/ 浏览器辅助采集扩展
scripts/ 初始化、迁移、构建和维护脚本
tests/ 单元测试与集成测试
config/*.example.json 可公开的配置模板
py -m compileall -q src tests scripts
py -m pytest -q部分 SMTP、外部网站和真实 API 测试依赖网络或个人配置。提交 Pull Request 时,请确保离线单元测试通过,并在说明中标注未运行的外部集成测试。
请阅读 CONTRIBUTING.md。安全问题请按 SECURITY.md 私下报告,不要在 Issue 中粘贴 API Key、Cookie、客户数据或邮箱密码。
本项目采用 MIT License。