Skip to main content

招聘冷邮件智能生成工具 - 基于候选人简历文本自动生成 Cold Email

Project description

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

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

功能特性

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

安装

pip install cold-msg

或从源码安装:

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

快速开始

1. 配置环境变量

cp .env.example .env

编辑 .env 文件,填入 LLM 相关配置:

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

2. 准备职位列表

在项目根目录创建 config.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 库

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 命令行

# 生成冷邮件
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 界面

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 预览模板

生成邮件请求示例:

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. 内置默认值

开发

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

# 代码检查
ruff check .

# 类型检查
mypy cold_msg

# 运行测试
pytest

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cold_msg-0.1.0.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cold_msg-0.1.0-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

Details for the file cold_msg-0.1.0.tar.gz.

File metadata

  • Download URL: cold_msg-0.1.0.tar.gz
  • Upload date:
  • Size: 28.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for cold_msg-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7a79628e417d62f2fd07f0cb9ab95da4077de3ef84f5907ba65d79b9dad9f872
MD5 54641f8501b5e919a90e1b211c49a36b
BLAKE2b-256 c7dbd4d1c967d12d9ef48969c324590160dc40ebbba32a1b5a9dcd9068bae5ff

See more details on using hashes here.

File details

Details for the file cold_msg-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cold_msg-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for cold_msg-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7074918d4c2387c78c6c898b5495a0c4e0bf80c35adce79521b4d8b2e947d26
MD5 40fb61d082fc4ae11739f12ba28ef26d
BLAKE2b-256 b73fa0553a822d2d1c588c0f08e268aee148d12b91a732fb83c4c5b430f1855d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page