feat: IMAP mail sync with thread-to-contact matching (PRD §6.1)

Real IMAP connection via imapflow library:
- Connects to IMAP server (IMAPFlow, TLS on port 993)
- Fetches recent messages (configurable limit, default 20)
- Extracts: from, fromEmail, subject, date, snippet (200 chars)
- Thread-to-contact matching (PRD §6.1):
  1. Match sender email against persons table
  2. If no person match, extract domain and match against company.website
  3. Returns matchedCompany + matchedPerson for each email
- Audit-logged (action: crm.mailsync:imap)
- Zod validated (host, port, user, password, folder, limit)
- 502 on IMAP connection failure with detail
- 400 on validation failure

Tested: invalid creds → 502 'IMAP connection failed', missing host → 400
This commit is contained in:
Z User committed 2026-10-27 22:50:50 +00:00
1 parent 7acc0c5451
commit e45b68bb8b
1089 files changed
+260614

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
# 技术 / 研发 / 数据 简历模板
## 结构
```
姓名|电话|邮箱|GitHub|城市|目标岗位
【个人简介 / Summary】(可选,1~2 行)
X 年 ___ 经验,专注 ___(高并发后端 / 推荐系统 / LLM 应用 / ...),熟悉 ___ 技术栈
【技能】(技术岗放前面,让 HR 一眼看到栈是否对口)
- 语言:Java(精通)、Python(熟练)、Go(了解)
- 后端:Spring Boot、Spring Cloud、gRPC、Kafka、Redis、MySQL、ClickHouse
- 大数据 / 算法:Spark、Flink、Hive、PyTorch(如果是算法岗)
- 工程:Docker、Kubernetes、Linux、Git、CI/CD
- 其他:TypeScript、AWS
【工作经历】
公司 A | 职级(高级工程师 / 资深工程师 / Tech Lead)| 起止
- 系统级成绩(含 QPS、延迟、可用性、规模等数字)
- 架构 / 设计贡献(你设计了什么、为什么这么选)
- 业务影响(推动了什么业务结果)
【项目经历】
项目名 | 角色 | 技术栈 | 时间
- 背景:业务规模 / 痛点(一句话)
- 方案:你的核心设计 + 关键技术决策(讲为什么)
- 结果:性能 / 稳定性 / 成本 数字
【教育背景】
【开源 / 论文 / 比赛】(强加分)
- GitHub 项目(star 数 / 主要 contributor)
- 论文(标注会议 / 期刊)
- 比赛(Kaggle / ACM / 天池 / 黑客松,含名次)
```
## 风格要点
- **少形容词,多数字 + 技术细节**
- 弱:"优化了系统性能"
- 强:"通过引入二级缓存 + SQL 改写,将商品详情接口 P99 从 480ms 降至 110ms"
- **讲清楚『你做了什么』vs『团队做了什么』**:用"主导"/"负责"明确 ownership 边界
- 算法岗:技能列表里**强调具体模型 / 框架版本**(避免堆砌 buzzword)
- LLM / Agent 岗:明确写"训练 / 微调 / 推理 / 应用"中你做的部分,避免被以为是 prompt-only
- 长度:1~2 页
## 常见雷区
- 简历里写"精通",面试问到一脸懵 → 不熟就写"熟练 / 了解"
- 列出 20+ 技能,问哪个都不深 → 删到 8~12 个真正会的
- 把课程内容当项目经历 → 标注"课程项目 (Course Project)",不要假装是工业项目
- 项目描述只有"什么是 ___",没有"我做了什么" → 重写