抓取 Google Maps 获取销售线索,并结合 AI 进行线索评分
business-leads-ai-automation — HTML 企业官网模板
作者 asiifdev
Prospex 是一个采用 MIT 许可的自托管开源销售线索自动化平台,通过抓取 Google Maps 获取线索,结合 AI 生成邮件、WhatsApp 等外联内容,并提供 CRM 管道与数据分析面板。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
按线索生成个性化邮件、WhatsApp、Instagram DM、LinkedIn 与冷电话话术
内置 CRM 管道,覆盖 New、Contacted、Replied、Won/Lost 全生命周期
提供转化漏斗、行业分布与活动 ROI 分析面板
支持 CSV、JSON、vCard 导出,以及带 Swagger 文档的 REST API
支持 OpenRouter 或本地 Ollama 等 OpenAI 兼容的 AI 服务
模板详细介绍
Prospex 是一个自托管、开源的企业销售线索自动化平台,将线索发现、AI 外联内容生成和 CRM 管理整合在同一个仪表盘中。项目采用 Turborepo + pnpm 工作区组织,前端为 Next.js 应用,后端为 NestJS REST API,数据存储使用 PostgreSQL,异步任务队列基于 BullMQ 与 Redis,AI 能力通过 OpenAI SDK 接入,并支持 OpenRouter 或本地 Ollama 等兼容 OpenAI 接口的服务。
核心模块包括:线索发现(抓取 Google Maps 并进行 AI 评分)、AI 内容引擎(按线索生成个性化邮件、WhatsApp、Instagram DM、LinkedIn 消息与冷电话话术)、活动管理器(多查询批量活动与实时进度跟踪)、CRM 管道(New → Contacted → Replied → Won/Lost 全生命周期)、分析(转化漏斗、行业分布、活动 ROI)以及 CSV、JSON、vCard 导出。API 提供 Swagger 文档与 API key 管理。
使用限制方面:项目需要 Node.js、pnpm 与 Docker 环境,本地开发通过 Docker Compose 启动 PostgreSQL 与 Redis;生产部署使用独立的 docker-compose.prod.yml,包含 PostgreSQL、Redis、NestJS API、Next.js 与 Nginx。AI 功能依赖外部或本地模型服务,未配置 OPENAI_API_KEY 时可使用 mock AI。抓取 Google Maps 依赖外部数据源,其可用性与合规性需自行评估。代码采用 MIT 许可,但演示图片、字体、图标等第三方素材以及域名、托管、数据库、AI 等外部服务可能另行收费或需单独核对许可。
适合你的项目吗?
适用场景
- 中小企业或代理机构搭建自托管的线索获取与外联工作流
- 销售团队按行业或地区批量抓取 Google Maps 商家线索并评分
- 为不同线索自动生成邮件、WhatsApp 或 LinkedIn 外联文案
- 在 CRM 管道中跟踪线索从初次接触到成交或流失的状态
- 通过分析面板查看活动转化漏斗与行业分布
适合人群
- 希望自行托管销售线索自动化系统的中小企业
- 需要批量获取本地商家线索并开展外联的代理机构
- 具备 Node.js、Docker 与 PostgreSQL 运维能力的开发团队
- 需要将 AI 外联与 CRM 管道整合在同一仪表盘中的销售运营人员
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 20+、pnpm 9+ 与 Docker 环境
- 2
复制 .env.example 到 apps/api/.env 与 packages/database/.env,并填写 DATABASE_URL 等配置
- 3
运行 docker compose up -d 启动 PostgreSQL 与 Redis,再执行数据库 schema 推送与 Prisma 生成
- 4
分别启动 API(3001 端口)与 Dashboard(3000 端口)开发服务器
- 5
生产部署使用 docker-compose.prod.yml,需配置强密码与真实 API key
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- AI 功能需配置 OpenAI API key 或兼容服务;未配置时仅能使用 mock AI,无法获得真实生成内容。
- 使用 OpenRouter 需自行注册账号并获取 API key,可能产生第三方服务费用。
- 使用 Ollama 需在本地自行安装并运行 Ollama 服务,占用本地算力。
- 线索抓取依赖 Google Maps 外部数据源,其可用性与合规性需自行评估,可能受第三方条款限制。
- 生产部署需自行准备 Docker 环境、强密码与真实 API key,并承担服务器与数据库等外部成本。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
OPENAI_API_KEY=sk-your-key-here # or leave empty for mock AI
README 原文
OPENAI_BASE_URL=https://openrouter.ai/api/v1
README 原文
OPENAI_BASE_URL=http://localhost:11434/v1
README 原文
Scrape Google Maps with AI-powered lead scoring
README 原文
https://github.com/asiifdev/business-leads-ai-automation/blob/main/LICENSEhttps://github.com/asiifdev/business-leads-ai-automation/blob/main/README.mddocker compose -f docker-compose.prod.yml up -d
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-01。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 91 / 100
- 技术栈
- HTML
- 网站类型
- 企业官网
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-08-18
- 截图检查日期
- 2026-10-01
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 HTML。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 01596281238ad095ff7ddc8a1e35bd901d9d343a16fa5fb3fec3d375f62252d5
2026-10-01T04:28:43.776Z
来源文件 / 仓库<div align="center"> <h1>Prospex</h1> <p><strong>Open-source AI-powered GTM automation platform</strong></p> <p>Find leads · Score them with AI · Generate personalized outreach · Close deals</p> [](https://opensource.org/licenses/MIT) [](https://www.typescriptlang.org/) [](https://nextjs.org/) [](https://nestjs.com/) [](https://www.postgresql.org/) [](https://docs.docker.com/compose/) </div> ## What is Prospex? Prospex is a **self-hosted, open-source** platform that combines lead discovery, AI-powered outreach generation, and CRM management in one dashboard. Think Apollo.io + Instantly.ai — but open-source, self-hosted, and free. ### Features | Module | Description | |--------|-------------| | **Lead Discovery** | Scrape Google Maps with AI-powered lead scoring | | **AI Content Engine** | Personalized Email, WhatsApp, Instagram DM, LinkedIn, Cold Call scripts per lead | | **Campaign Manager** | Multi-query batch campaigns with real-time progress tracking | | **CRM Pipeline** | Full lead lifecycle: New → Contacted → Replied → Won/Lost | | **Analytics** | Conversion funnel, industry breakdown, campaign ROI | | **Export** | Download leads as CSV, JSON, or vCard | | **API** | REST API with Swagger docs + API key management | ### Tech Stack | Layer | Technology | |-------|-----------| | **Frontend** | Next.js 16, App Router, shadcn/ui, Tailwind CSS, Recharts | | **Backend** | NestJS 10, Prisma ORM, REST API | | **Database** | PostgreSQL 16 | | **Queue** | BullMQ + Redis 7 | | **AI** | OpenAI SDK (supports OpenRouter & Ollama) | | **Monorepo** | Turborepo + pnpm workspaces | | **Deploy** | Docker Compose | --- ## Quickstart ### Prerequisites - [Node.js 20+](https://nodejs.org/) - [pnpm 9+](https://pnpm.io/) - [Docker](https://www.docker.com/) ### 1. Clone & install ```bash git clone https://github.com/asiifdev/business-leads-ai-automation.git cd business-leads-ai-automation pnpm install ``` ### 2. Configure environment ```bash cp .env.example apps/api/.env cp .env.example packages/database/.env ``` Edit `apps/api/.env` with your values: ```env DATABASE_URL="postgresql://prospex:yourpassword@localhost:5432/prospex" OPENAI_API_KEY=sk-your-key-here # or leave empty for mock AI OPENAI_MODEL=gpt-4o-mini # Optional: use OpenRouter or Ollama # OPENAI_BASE_URL=https://openrouter.ai/api/v1 ``` ### 3. Start infrastructure ```bash docker compose up -d # starts PostgreSQL + Redis pnpm --filter @prospex/database db:push # push schema pnpm --filter @prospex/database exec prisma generate ``` ### 4. Run development servers ```bash # Terminal 1 — API (port 3001) pnpm --filter @prospex/api dev # Terminal 2 — Dashboard (port 3000) pnpm --filter @prospex/web dev ``` Open [http://localhost:3000](http://localhost:3000) and you're in. Swagger API docs: [http://localhost:3001/api/docs](http://localhost:3001/api/docs) --- ## Project Structure ``` prospex/ ├── apps/ │ ├── web/ # Next.js 16 dashboard │ ├── api/ # NestJS REST API │ └── marketing/ # Landing page ├── packages/ │ ├── database/ # Prisma schema + migrations │ ├── types/ # Shared TypeScript types │ └── config/ # Shared eslint/tsconfig ├── docker-compose.yml # Local dev (PostgreSQL + Redis) ├── docker-compose.prod.yml # Production stack └── nginx.conf # Nginx reverse proxy config ``` --- ## API Endpoints | Method | Endpoint | Description | |--------|----------|-------------| | `GET` | `/api/health` | Health check | | `GET/POST` | `/api/campaigns` | List / create campaigns | | `GET/PATCH/DELETE` | `/api/campaigns/:id` | Campaign detail / update / delete | | `POST` | `/api/scraper/campaigns/:id/start` | Start scraping + AI pipeline | | `GET` | `/api/leads` | List leads (filter by `?campaignId=`) | | `PATCH` | `/api/leads/:id/crm` | Update CRM status | | `GET` | `/api/analytics` | Overview stats | | `GET` | `/api/analytics/industries` | Leads by industry | | `GET` | `/api/export/leads/csv` | Export leads as CSV | | `GET` | `/api/export/leads/json` | Export leads as JSON | | `GET` | `/api/export/leads/vcard` | Export leads as vCard | | `GET/POST/DELETE` | `/api/settings/api-keys` | API key management | | `GET/POST` | `/api/settings/integrations` | Integration config | Full interactive docs at `/api/docs` (Swagger). --- ## Using OpenRouter / Ollama Prospex supports any OpenAI-compatible AI provider: **OpenRouter** (access Claude, Gemini, Llama, etc.): ```env OPENAI_API_KEY=sk-or-your-openrouter-key OPENAI_BASE_URL=https://openrouter.ai/api/v1 OPENAI_MODEL=anthropic/claude-haiku-4-5 ``` **Ollama** (local, fully offline): ```env OPENAI_API_KEY=ollama OPENAI_BASE_URL=http://localhost:11434/v1 OPENAI_MODEL=llama3.2 ``` --- ## Production Deployment ```bash cp .env.example .env # Edit .env with production values (strong passwords, real API key) docker compose -f docker-compose.prod.yml up -d ``` This starts: PostgreSQL + Redis + NestJS API + Next.js + Nginx. --- ## Development ```bash pnpm install # install all dependencies pnpm dev # start all apps (requires turbo) pnpm build # build all apps pnpm --filter @prospex/database db:studio # Prisma Studio (DB browser) ``` --- ## Changelog ### 2026-07-29 - **Fix**: search queries now combine each campaign's search term with every area in its `location` field (split on commas) before scraping — previously `location` was stored but never sent to the scraper, so results could drift to the scraping server's IP-based region instead of the requested cities. - **Feature**: leads now capture `lat`/`lng` coordinates (parsed from the scraped Google Maps place URL) and store them on the `Lead` model. - **Feature**: campaign detail page has a new "Map" tab with a Leaflet-based lead map (custom priority-colored markers, auto-fit bounds, popups linking to lead detail) alongside the existing "List" view. - **Fix**: scraping progress no longer gets stuck at 0% — the scraper now reports incremental progress per search query/area combo while scraping runs (previously progress only updated before scraping started and after it fully finished, so long-running scrapes appeared frozen). - **Fix**: campaign and lead list polling (every 2s while a campaign is running) no longer flashes the whole page back to a loading skeleton on every refresh — only the initial fetch shows the skeleton, so live progress/lead updates render smoothly. - **Fix**: lead scoring/ordering no longer ranks by raw star rating alone (a 5.0★ lead with 1 review could previously outrank a 4.5★ lead with thousands of reviews). Review count is now scraped and stored, and rating contribution to the score uses a Bayesian average (weighted toward a neutral 4.0★ prior by review volume) so low-review, high-star leads no longer unfairly beat well-reviewed ones. --- ## License MIT — see [LICENSE](LICENSE). --- <div align="center"> <sub>Built with ❤️ by <a href="https://github.com/asiifdev">asiifdev</a></sub> </div>
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

mazer
Free and Open-source Bootstrap 5 Admin Dashboard Template and Landing Page
HTML · 后台

Freelancer
Freelancer 是 Start Bootstrap 出品的单页作品集模板,专为自由职业者、设计师和小型工作室设计。 页面结构清晰,包含多个内容区块、响应式作品集网格,每个作品项目配有模态窗口展示详情。
HTML · 作品集

Creative
Creative 是 Start Bootstrap 团队维护的一款单页营销模板,定位明确:为创意机构或产品服务提供一个以作品展示和行动号召为核心的落地页。
HTML · 企业官网

startbootstrap-agency
Agency 是 Start Bootstrap 维护的单页代理商作品集主题,基于 Bootstrap 构建,MIT 许可。
HTML · 企业官网

startbootstrap-landing-page
这是 Start Bootstrap 系列中一款通用型落地页模板,基于 Bootstrap 构建,定位是给产品或服务做单页推广。
HTML · 企业官网

Landing-Page
Tailwind CSS Starter Template - Landing Page
HTML · 企业官网
