diff --git a/manager/src/main/java/org/jiayunet/service/JobCleanService.java b/manager/src/main/java/org/jiayunet/service/JobCleanService.java
index 566d537..9edd7eb 100644
--- a/manager/src/main/java/org/jiayunet/service/JobCleanService.java
+++ b/manager/src/main/java/org/jiayunet/service/JobCleanService.java
@@ -72,7 +72,7 @@ public class JobCleanService {
* 定时任务A:岗位清洗(每5分钟)
*
1. 批量锁定待清洗数据 2. 多线程并发调用AI清洗 3. 写入业务表
*/
- @Scheduled(cron = "0 */5 * * * ?")
+ @Scheduled(cron = "0 */1 * * * ?")
public void cleanJob() {
List dataList = jobCleanTransactionService.lockBatch(batchSize);
if (dataList.isEmpty()) {
@@ -255,21 +255,23 @@ public class JobCleanService {
返回JSON数组格式,如:["java", "spring boot", "mysql", "redis"]
规则:
1. 统一使用小写字母
- 2. 尽量简短,使用业界通用缩写(如 js 而非 javascript,k8s 而非 kubernetes)
- 3. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等
- 4. 不提取纯软技能(如沟通能力、团队协作、学习能力、积极主动)
- 5. 如果岗位完全没有专业能力要求(纯看态度和素质),返回空数组 []
- 6. 最多15个,按重要性排序
- 7. 只返回JSON数组,不要其他内容
+ 2. 只保留核心词,去掉多余修饰(如"plc编程"→"plc","c语言"→"c","cad制图"→"cad")
+ 3. 同一技能只保留最具体的表述,不要同时出现上位词和下位词(如有"机械设计"就不要再出"机械")
+ 4. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等
+ 5. 不提取纯软技能(如沟通能力、团队协作、学习能力、积极主动)
+ 6. 不提取过于宽泛的标签(如"办公软件"、"windows")
+ 7. 如果岗位完全没有专业能力要求(纯看态度和素质),返回空数组 []
+ 8. 最多15个,按重要性排序
+ 9. 只返回JSON数组,不要其他内容
示例1(技术岗):
- 输入:需要熟悉Java、Spring Boot框架,了解MySQL数据库和Redis缓存
- 输出:["java", "spring boot", "mysql", "redis"]
+ 输入:需要熟悉Java、Spring Boot框架,了解MySQL数据库和Redis缓存,会PLC编程
+ 输出:["java", "spring boot", "mysql", "redis", "plc"]
示例2(财务岗):
输入:负责费用管理与审核,月度经营利润分析,要求财务管理、会计学相关专业
- 输出:["财务管理", "会计核算", "经营分析", "费用审核"]
- 示例3(科研岗):
- 输入:开展生物合成等相关专业研究,啤酒生物发酵工程方向
- 输出:["生物合成", "发酵工程"]
+ 输出:["财务管理", "会计", "经营分析"]
+ 示例3(制造岗):
+ 输入:负责模具开发,熟悉CAD制图,了解注塑成型工艺,有SolidWorks经验
+ 输出:["模具", "cad", "注塑", "solidworks"]
示例4(纯素质岗):
输入:具备较强的沟通能力和创新意识,积极主动,专业不限
输出:[]
@@ -314,7 +316,7 @@ public class JobCleanService {
*/
private Long findOrCreateSkillTag(String name) {
// 先尝试插入(忽略重复),ID 由 IdWorker 生成
- skillTagMapper.insertIgnore(IdWorker.getId(), name, Instant.now());
+ skillTagMapper.insertIgnore(IdWorker.getId(), name);
// 再查询拿ID
SkillTag tag = skillTagMapper.selectOne(new LambdaQueryWrapper().eq(SkillTag::getName, name).last("LIMIT 1"));
diff --git a/manager/src/main/java/org/jiayunet/service/UserProfileAnalyzeService.java b/manager/src/main/java/org/jiayunet/service/UserProfileAnalyzeService.java
index b9ca616..f095d4e 100644
--- a/manager/src/main/java/org/jiayunet/service/UserProfileAnalyzeService.java
+++ b/manager/src/main/java/org/jiayunet/service/UserProfileAnalyzeService.java
@@ -228,21 +228,23 @@ public class UserProfileAnalyzeService {
返回JSON数组格式,如:["java", "spring boot", "mysql", "redis"]
规则:
1. 统一使用小写字母
- 2. 尽量简短,使用业界通用缩写(如 js 而非 javascript,k8s 而非 kubernetes)
- 3. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等
- 4. 不提取纯软技能(如沟通能力、团队协作、学习能力、积极主动)
- 5. 如果简历中完全没有专业能力体现,返回空数组 []
- 6. 最多15个,按熟练度排序
- 7. 只返回JSON数组,不要其他内容
+ 2. 只保留核心词,去掉多余修饰(如"plc编程"→"plc","c语言"→"c","cad制图"→"cad")
+ 3. 同一技能只保留最具体的表述,不要同时出现上位词和下位词(如有"机械设计"就不要再出"机械")
+ 4. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等
+ 5. 不提取纯软技能(如沟通能力、团队协作、学习能力、积极主动)
+ 6. 不提取过于宽泛的标签(如"办公软件"、"windows")
+ 7. 如果简历中完全没有专业能力体现,返回空数组 []
+ 8. 最多15个,按熟练度排序
+ 9. 只返回JSON数组,不要其他内容
示例1(技术岗):
- 输入:3年Java开发经验,熟悉Spring Boot、MySQL、Redis
- 输出:["java", "spring boot", "mysql", "redis"]
+ 输入:3年Java开发经验,熟悉Spring Boot、MySQL、Redis,会PLC编程
+ 输出:["java", "spring boot", "mysql", "redis", "plc"]
示例2(财务岗):
输入:负责费用管理与审核,月度经营利润分析,会计学专业
- 输出:["财务管理", "会计核算", "经营分析", "费用审核"]
- 示例3(科研岗):
- 输入:开展生物合成相关研究,发酵工程方向博士
- 输出:["生物合成", "发酵工程"]
+ 输出:["财务管理", "会计", "经营分析"]
+ 示例3(制造岗):
+ 输入:从事模具开发,熟悉CAD制图,了解注塑成型工艺
+ 输出:["模具", "cad", "注塑"]
示例4(无专业能力):
输入:具备较强的沟通能力和创新意识,积极主动
输出:[]