HTML企业官网

business-leads-ai-automation — HTML 企业官网模板

作者 asiifdev

Prospex 是一个采用 MIT 许可的自托管开源销售线索自动化平台,通过抓取 Google Maps 获取线索,结合 AI 生成邮件、WhatsApp 等外联内容,并提供 CRM 管道与数据分析面板。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-01查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

抓取 Google Maps 获取销售线索,并结合 AI 进行线索评分

02

按线索生成个性化邮件、WhatsApp、Instagram DM、LinkedIn 与冷电话话术

03

内置 CRM 管道,覆盖 New、Contacted、Replied、Won/Lost 全生命周期

04

提供转化漏斗、行业分布与活动 ROI 分析面板

05

支持 CSV、JSON、vCard 导出,以及带 Swagger 文档的 REST API

06

支持 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 等外部服务可能另行收费或需单独核对许可。

HTML企业官网

适合你的项目吗?

适用场景

  • 中小企业或代理机构搭建自托管的线索获取与外联工作流
  • 销售团队按行业或地区批量抓取 Google Maps 商家线索并评分
  • 为不同线索自动生成邮件、WhatsApp 或 LinkedIn 外联文案
  • 在 CRM 管道中跟踪线索从初次接触到成交或流失的状态
  • 通过分析面板查看活动转化漏斗与行业分布

适合人群

  • 希望自行托管销售线索自动化系统的中小企业
  • 需要批量获取本地商家线索并开展外联的代理机构
  • 具备 Node.js、Docker 与 PostgreSQL 运维能力的开发团队
  • 需要将 AI 外联与 CRM 管道整合在同一仪表盘中的销售运营人员

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Node.js 20+、pnpm 9+ 与 Docker 环境

  2. 2

    复制 .env.example 到 apps/api/.env 与 packages/database/.env,并填写 DATABASE_URL 等配置

  3. 3

    运行 docker compose up -d 启动 PostgreSQL 与 Redis,再执行数据库 schema 推送与 Prisma 生成

  4. 4

    分别启动 API(3001 端口)与 Dashboard(3000 端口)开发服务器

  5. 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 原文

docker compose -f docker-compose.prod.yml up -d

README 原文
https://github.com/asiifdev/business-leads-ai-automation/blob/main/LICENSEhttps://github.com/asiifdev/business-leads-ai-automation/blob/main/README.md

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>

  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)](https://www.typescriptlang.org/)
  [![Next.js](https://img.shields.io/badge/Next.js-16-black.svg)](https://nextjs.org/)
  [![NestJS](https://img.shields.io/badge/NestJS-10-red.svg)](https://nestjs.com/)
  [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-blue.svg)](https://www.postgresql.org/)
  [![Docker](https://img.shields.io/badge/Docker-Compose-2496ED.svg)](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>
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。