Metadata-Version: 2.4
Name: cold-msg
Version: 0.1.0
Summary: 招聘冷邮件智能生成工具 - 基于候选人简历文本自动生成 Cold Email
Author-email: Chandler <275737875@qq.com>
License: MIT
Keywords: cold-email,recruiting,llm,ai,hr
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Email
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: llmdog>=0.1.0
Requires-Dist: flask>=3.0.0
Requires-Dist: typer>=0.9.0
Requires-Dist: rich>=13.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: python-dotenv>=1.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"

# ColdMsg - 招聘冷邮件智能生成工具

基于候选人简历文本，利用 LLM 自动匹配职位并生成专业的招聘 Cold Email。

## 功能特性

- **智能匹配**：AI 根据候选人技术背景自动匹配最合适的职位
- **模板可配**：邮件模板各字段均可自定义，支持占位符变量替换
- **多种使用方式**：Python 库 / CLI 命令行 / Web 界面
- **职位管理**：支持 YAML/JSON 导入导出，Web 端增删改查
- **配置灵活**：`.env` + `config.yaml` + 环境变量三层优先级

## 安装

```bash
pip install cold-msg
```

或从源码安装：

```bash
git clone https://github.com/example/cold-msg.git
cd cold-msg
pip install -e .
```

## 快速开始

### 1. 配置环境变量

```bash
cp .env.example .env
```

编辑 `.env` 文件，填入 LLM 相关配置：

```env
LLM_MODEL=deepseek-v3.1-terminus
COLDMSG_SENDER_NAME=Michael
COLDMSG_TEAM_NAME=高端招聘团队
```

### 2. 准备职位列表

在项目根目录创建 `config.yaml`：

```yaml
sender_name: Michael
team_name: 高端招聘团队
company_desc: 国际知名大型科技公司
llm_model: deepseek-v3.1-terminus

jobs:
  - job_title: 大模型Agent专家
    qualification: Agent，Agentic技术，博士，5年+经验
    location: 北上深等
  - job_title: 编译器实验室专家
    qualification: 编译器技术精通，MLIR，LLVM，GCC，AI编译等
    location: 北上深杭等

email_template:
  sender_name: Michael
  team_name: 高端招聘团队
  company_desc: 国际知名大型科技公司
  greeting: "您好{FullName}，"
  intro: "我来自{TeamName}，很冒昧的给您发邮件。"
  body: "我负责{CompanyDesc}招聘，向您推荐\"{JobTitle}\"的职位。"
  location_line: "职位地点： {Location}"
  closing: "如果您有兴趣具体了解的话，可以留个电话或者微信~"
  sign_off: "祝颂商祺"
  signature: "Michael"
```

## 使用方式

### Python 库

```python
from cold_msg import generate_cold_email

result = generate_cold_email(
    resume_text="张三，10年AI研发经验，精通大模型训练、推理优化..."
)

if result.match_job_title:
    print(f"推荐职位: {result.recommend_title}")
    print(result.email_content)
else:
    print("未匹配到合适职位")
```

### CLI 命令行

```bash
# 生成冷邮件
cold-msg generate "张三，10年AI研发经验，精通大模型训练、推理优化..."

# 指定模型和输出文件
cold-msg generate "简历文本" --model deepseek-v3.1-terminus -o result.json

# 输出原始 JSON
cold-msg generate "简历文本" --raw

# 启动 Web 界面
cold-msg web --port 6060

# 查看配置
cold-msg config show

# 管理职位
cold-msg jobs list
cold-msg jobs add --title "高级算法工程师" --qual "NLP, LLM, 3年+" --loc "北京"
cold-msg jobs import --file jobs.yaml
cold-msg jobs export --file jobs.json

# 管理邮件模板
cold-msg template show
cold-msg template set greeting "您好{FullName}，您好！"
cold-msg template preview
cold-msg template reset
```

### Web 界面

```bash
cold-msg web
```

浏览器访问 `http://127.0.0.1:6060`，提供三个页面：

| 页面 | 路径 | 功能 |
|------|------|------|
| 生成邮件 | `/` | 粘贴简历文本，一键生成冷邮件 |
| 职位管理 | `/jobs` | 增删改查职位，支持 YAML 导入导出 |
| 模板配置 | `/config` | 自定义邮件模板各字段，实时预览 |

## REST API

| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/generate` | 生成冷邮件 |
| GET | `/api/config` | 获取当前配置 |
| POST | `/api/config` | 保存配置 |
| GET | `/api/jobs` | 获取职位列表 |
| POST | `/api/jobs` | 更新职位列表 |
| POST | `/api/jobs/import-yaml` | YAML 导入职位 |
| GET | `/api/email-template` | 获取邮件模板 |
| POST | `/api/email-template` | 更新邮件模板 |
| POST | `/api/email-template/preview` | 预览模板 |

生成邮件请求示例：

```bash
curl -X POST http://127.0.0.1:6060/api/generate \
  -H "Content-Type: application/json" \
  -d '{"resume_text": "张三，10年AI研发经验，精通大模型训练..."}'
```

## 邮件模板占位符

| 占位符 | 含义 | 替换来源 |
|--------|------|----------|
| `{FullName}` | 候选人全名 | AI 从简历自动识别 |
| `{TeamName}` | 招聘团队名称 | 配置项 `team_name` |
| `{CompanyDesc}` | 公司描述 | 配置项 `company_desc` |
| `{JobTitle}` | 推荐职位名称 | AI 根据匹配结果填入 |
| `{Location}` | 职位工作地点 | AI 根据匹配职位填入 |

## 项目结构

```
cold_msg/
├── __init__.py             # 包入口
├── cli.py                  # CLI 命令行接口 (typer)
├── core/
│   ├── config.py           # 配置管理 (dataclass + yaml + dotenv)
│   ├── prompt.py           # Prompt 构建
│   ├── llm.py              # LLM 调用 (llmdog)
│   └── generator.py        # 核心生成器
└── web/
    ├── app.py              # Flask Web 应用 + REST API
    └── templates/          # HTML 模板
        ├── index.html
        ├── config.html
        └── jobs.html
```

## 配置优先级

从高到低：

1. **环境变量** — `LLM_MODEL`, `COLDMSG_SENDER_NAME` 等
2. **`.env` 文件** — 项目根目录
3. **`config.yaml`** — 项目根目录
4. **内置默认值**

## 开发

```bash
# 安装开发依赖
pip install -e ".[dev]"

# 代码检查
ruff check .

# 类型检查
mypy cold_msg

# 运行测试
pytest
```

## License

MIT
