e0d9c4e434
- 硬性预筛门槛: 外贸经验必须(仅工作经历匹配), 培养类拦截, 毕业2020-2026, 年龄<=35 - 七维评分+动态阈值+打招呼纪律 - Hermes每日自动化: daily-runner(09:30-18:00)/daily-report/enforce-cutoff/stop-tasks - v10.4: 每累计200人自动刷新页面 - 修正: CDP端口9222(反向隧道), 通知只发私聊(防串台), hr2任务禁用 - WSL端: cdp-tunnel.sh 浏览器工人守护
3.0 KiB
Executable File
3.0 KiB
Executable File
招聘数据库 Schema
路径: ~/.hermes/data/recruitment/recruitment.db
引擎: SQLite 3(WAL 模式)
Node.js: better-sqlite3
Python: sqlite3(标准库)
candidates 表
CREATE TABLE candidates (
id TEXT PRIMARY KEY, -- MD5(name|age|edu|exp|school)[:12]
platform TEXT NOT NULL DEFAULT 'zhaopin',
account TEXT NOT NULL DEFAULT 'hr1', -- v0.2 多账号:hr1/hr2
name TEXT NOT NULL,
age INTEGER,
education TEXT, -- 本科/硕士/大专等
experience TEXT, -- 原始文本如"3年经验"
exp_years REAL, -- 数值化经验年数,便于筛选
school TEXT,
expected_city TEXT,
expected_salary TEXT,
activity TEXT DEFAULT '', -- 活跃度文本如"10分钟前有回复"
role_tag TEXT DEFAULT '', -- 岗位推荐标签:有经验岗/应届生岗/不限
score INTEGER, -- 7维度总分 7-35
score_level TEXT, -- 推荐/待定/不推荐
greeted INTEGER NOT NULL DEFAULT 0,
greeted_at TEXT,
raw_text TEXT, -- 完整简历原文
education_detail TEXT,
work_detail TEXT,
cert_detail TEXT,
card_info TEXT, -- 列表卡片原始信息 JSON
score_details TEXT, -- 评分明细 JSON
scraped_at TEXT,
updated_at TEXT,
notes TEXT DEFAULT '' -- 人工备注
);
greet_log 表
CREATE TABLE greet_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
candidate_id TEXT NOT NULL REFERENCES candidates(id),
account TEXT NOT NULL DEFAULT 'hr1', -- v0.2 多账号:hr1/hr2
action TEXT NOT NULL, -- 'greet'
result TEXT, -- 'success' / 'button_not_found' / ...
created_at TEXT NOT NULL DEFAULT (datetime('now','localtime'))
);
scrape_log 表
CREATE TABLE scrape_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
mode TEXT, -- 'full' / 'incremental'
target_count INTEGER,
new_count INTEGER,
skip_count INTEGER,
greet_count INTEGER,
error_count INTEGER,
created_at TEXT NOT NULL DEFAULT (datetime('now','localtime'))
);
常用查询
-- 推荐人员
SELECT name, age, education, school, score, greeted
FROM candidates WHERE score_level = '推荐' ORDER BY score DESC;
-- 未打招呼的推荐/待定
SELECT name, score, score_level, school
FROM candidates WHERE score_level IN ('推荐','待定') AND greeted = 0;
-- 评分分布
SELECT score_level, COUNT(*) FROM candidates GROUP BY score_level;
-- 最近抓取的10人
SELECT name, score, score_level, scraped_at
FROM candidates ORDER BY scraped_at DESC LIMIT 10;
-- 打招呼成功率
SELECT action, result, COUNT(*) FROM greet_log GROUP BY action, result;