knowme-careerforge-skill 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +227 -0
- package/README.zh-CN.md +231 -0
- package/SKILL.md +179 -0
- package/agents/claude/knowme-careerforge.md +16 -0
- package/agents/codex/knowme-careerforge.yaml +15 -0
- package/agents/cursor/knowme-careerforge.mdc +12 -0
- package/agents/gemini/knowme-careerforge.json +6 -0
- package/agents/opencode/skill.yaml +11 -0
- package/agents/windsurf/knowme-careerforge.rules +10 -0
- package/bin/knowme.js +32 -0
- package/dist/cli/src/commands/init.d.ts +10 -0
- package/dist/cli/src/commands/init.js +130 -0
- package/dist/cli/src/commands/list.d.ts +5 -0
- package/dist/cli/src/commands/list.js +92 -0
- package/dist/cli/src/index.d.ts +6 -0
- package/dist/cli/src/index.js +149 -0
- package/dist/scripts/render-pdf.d.ts +11 -0
- package/dist/scripts/render-pdf.js +105 -0
- package/dist/scripts/validate-ats.d.ts +23 -0
- package/dist/scripts/validate-ats.js +169 -0
- package/dist/scripts/validate-layout.d.ts +24 -0
- package/dist/scripts/validate-layout.js +161 -0
- package/package.json +58 -0
- package/scripts/analyze-jd.py +108 -0
- package/scripts/build-gallery.py +233 -0
- package/scripts/build-knowledge.py +81 -0
- package/scripts/instantiate-resume.py +83 -0
- package/scripts/release.py +101 -0
- package/scripts/render-pdf.ts +86 -0
- package/scripts/run-all-tests.py +41 -0
- package/scripts/search-template.py +147 -0
- package/scripts/sync-version.py +57 -0
- package/scripts/validate-ats.ts +173 -0
- package/scripts/validate-layout.ts +161 -0
- package/scripts/validate-resume.py +139 -0
- package/skill.json +47 -0
- package/src/knowledge/ats-rules.json +37 -0
- package/src/knowledge/career/seniority-signals.json +24 -0
- package/src/knowledge/index.json +734 -0
- package/src/knowledge/industries/enterprise-saas.json +21 -0
- package/src/knowledge/industries/fintech.json +21 -0
- package/src/knowledge/industries/tech-ai.json +21 -0
- package/src/knowledge/layouts.json +59 -0
- package/src/knowledge/resume/action-verbs.json +20 -0
- package/src/knowledge/resume/fab-model.json +22 -0
- package/src/knowledge/roles/ai-agent-engineer.json +52 -0
- package/src/knowledge/roles/android-engineer.json +45 -0
- package/src/knowledge/roles/architect.json +48 -0
- package/src/knowledge/roles/cpp-systems.json +47 -0
- package/src/knowledge/roles/frontend.json +49 -0
- package/src/knowledge/roles/ios-engineer.json +45 -0
- package/src/knowledge/roles/java-backend.json +49 -0
- package/src/knowledge/roles/node-fullstack.json +49 -0
- package/src/knowledge/roles/product-manager.json +48 -0
- package/src/knowledge/skills/skill-matrix.json +29 -0
- package/src/knowledge/styles.json +73 -0
- package/src/knowledge/templates.json +255 -0
- package/src/references/ats.md +17 -0
- package/src/references/evidence-first.md +22 -0
- package/src/references/pdf.md +40 -0
- package/src/references/resume-writing.md +25 -0
- package/src/references/template-design.md +57 -0
- package/src/templates/classic/README.md +12 -0
- package/src/templates/classic/metadata.json +34 -0
- package/src/templates/classic/style.css +164 -0
- package/src/templates/classic/template.html +133 -0
- package/src/templates/common/resume-contract.md +69 -0
- package/src/templates/executive/README.md +12 -0
- package/src/templates/executive/metadata.json +37 -0
- package/src/templates/executive/style.css +235 -0
- package/src/templates/executive/template.html +101 -0
- package/src/templates/minimal/README.md +12 -0
- package/src/templates/minimal/metadata.json +37 -0
- package/src/templates/minimal/style.css +219 -0
- package/src/templates/minimal/template.html +114 -0
- package/src/templates/modern/README.md +12 -0
- package/src/templates/modern/metadata.json +38 -0
- package/src/templates/modern/style.css +277 -0
- package/src/templates/modern/template.html +139 -0
- package/src/workflows/analyze-job.md +16 -0
- package/src/workflows/define-goal.md +16 -0
- package/src/workflows/forge-resume.md +25 -0
- package/src/workflows/know-me.md +21 -0
- package/src/workflows/position.md +19 -0
- package/src/workflows/review.md +31 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/* 页面物理约束 */
|
|
3
|
+
--resume-page-width: 210mm;
|
|
4
|
+
--resume-page-min-height: 297mm;
|
|
5
|
+
|
|
6
|
+
/* 配色体系 */
|
|
7
|
+
--resume-color-sidebar-bg: #254665; /* 经典深海蓝 Navy */
|
|
8
|
+
--resume-color-sidebar-text: #f8fafc; /* 侧边栏反白字 */
|
|
9
|
+
--resume-color-sidebar-muted: #94a3b8; /* 侧边栏辅助文字 */
|
|
10
|
+
--resume-color-sidebar-accent: #38bdf8;/* 侧边栏亮色高亮 */
|
|
11
|
+
|
|
12
|
+
--resume-color-main-bg: #ffffff;
|
|
13
|
+
--resume-color-primary: #0f172a; /* Slate 900 */
|
|
14
|
+
--resume-color-secondary: #334155; /* Slate 700 */
|
|
15
|
+
--resume-color-muted: #64748b; /* Slate 500 */
|
|
16
|
+
--resume-color-accent: #254665; /* 主舞台强调色 */
|
|
17
|
+
--resume-color-border: #e2e8f0; /* Slate 200 */
|
|
18
|
+
|
|
19
|
+
/* 字阶系统 */
|
|
20
|
+
--resume-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
|
|
21
|
+
--resume-font-size-name: 22pt;
|
|
22
|
+
--resume-font-size-target: 11pt;
|
|
23
|
+
--resume-font-size-h2: 12pt;
|
|
24
|
+
--resume-font-size-body: 9.2pt;
|
|
25
|
+
--resume-font-size-meta: 8.5pt;
|
|
26
|
+
--resume-line-height-body: 1.45;
|
|
27
|
+
|
|
28
|
+
/* 间距 Tokens (Agent 自愈参数) */
|
|
29
|
+
--resume-space-section: 12pt;
|
|
30
|
+
--resume-space-item: 8pt;
|
|
31
|
+
--resume-space-bullet: 2.5pt;
|
|
32
|
+
--resume-sidebar-width: 32%;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
36
|
+
|
|
37
|
+
body {
|
|
38
|
+
background-color: #e2e8f0;
|
|
39
|
+
font-family: var(--resume-font-body);
|
|
40
|
+
display: flex;
|
|
41
|
+
justify-content: center;
|
|
42
|
+
padding: 24px 0;
|
|
43
|
+
-webkit-font-smoothing: antialiased;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.resume-page {
|
|
47
|
+
width: var(--resume-page-width);
|
|
48
|
+
min-height: var(--resume-page-min-height);
|
|
49
|
+
background: var(--resume-color-main-bg);
|
|
50
|
+
display: grid;
|
|
51
|
+
grid-template-columns: var(--resume-sidebar-width) 1fr;
|
|
52
|
+
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
|
|
53
|
+
overflow: hidden;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* 左侧深色侧边栏 */
|
|
57
|
+
.resume-sidebar {
|
|
58
|
+
background-color: var(--resume-color-sidebar-bg);
|
|
59
|
+
color: var(--resume-color-sidebar-text);
|
|
60
|
+
padding: 16mm 6mm 16mm 10mm;
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-direction: column;
|
|
63
|
+
gap: 14pt;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.sidebar-avatar-wrapper {
|
|
67
|
+
display: flex;
|
|
68
|
+
justify-content: center;
|
|
69
|
+
margin-bottom: 4pt;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.avatar-placeholder {
|
|
73
|
+
width: 76pt;
|
|
74
|
+
height: 98pt;
|
|
75
|
+
border-radius: 4pt;
|
|
76
|
+
background: rgba(255, 255, 255, 0.15);
|
|
77
|
+
border: 1px dashed rgba(255, 255, 255, 0.4);
|
|
78
|
+
display: flex;
|
|
79
|
+
align-items: center;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
font-size: 8.5pt;
|
|
82
|
+
color: var(--resume-color-sidebar-muted);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.sidebar-title {
|
|
86
|
+
font-size: 11pt;
|
|
87
|
+
font-weight: 700;
|
|
88
|
+
color: var(--resume-color-sidebar-accent);
|
|
89
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
|
|
90
|
+
padding-bottom: 3pt;
|
|
91
|
+
margin-bottom: 6pt;
|
|
92
|
+
text-transform: uppercase;
|
|
93
|
+
letter-spacing: 0.5px;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.sidebar-info-list {
|
|
97
|
+
list-style: none;
|
|
98
|
+
font-size: 8.5pt;
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-direction: column;
|
|
101
|
+
gap: 5pt;
|
|
102
|
+
line-height: 1.4;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.sidebar-info-list .info-label {
|
|
106
|
+
color: var(--resume-color-sidebar-muted);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.skill-meter-group {
|
|
110
|
+
display: flex;
|
|
111
|
+
flex-direction: column;
|
|
112
|
+
gap: 6pt;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.skill-meter-item {
|
|
116
|
+
font-size: 8pt;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.skill-meter-label {
|
|
120
|
+
display: flex;
|
|
121
|
+
justify-content: space-between;
|
|
122
|
+
margin-bottom: 2pt;
|
|
123
|
+
color: var(--resume-color-sidebar-text);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.meter-bar {
|
|
127
|
+
width: 100%;
|
|
128
|
+
height: 4pt;
|
|
129
|
+
background: rgba(255, 255, 255, 0.2);
|
|
130
|
+
border-radius: 2pt;
|
|
131
|
+
overflow: hidden;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.meter-fill {
|
|
135
|
+
height: 100%;
|
|
136
|
+
background: var(--resume-color-sidebar-accent);
|
|
137
|
+
border-radius: 2pt;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.sidebar-tags-list {
|
|
141
|
+
list-style: none;
|
|
142
|
+
font-size: 8.5pt;
|
|
143
|
+
line-height: 1.45;
|
|
144
|
+
display: flex;
|
|
145
|
+
flex-direction: column;
|
|
146
|
+
gap: 4pt;
|
|
147
|
+
color: var(--resume-color-sidebar-muted);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* 右侧主舞台 */
|
|
151
|
+
.resume-main {
|
|
152
|
+
padding: 14mm 14mm 14mm 10mm;
|
|
153
|
+
color: var(--resume-color-primary);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.main-header {
|
|
157
|
+
margin-bottom: 12pt;
|
|
158
|
+
border-bottom: 2px solid var(--resume-color-border);
|
|
159
|
+
padding-bottom: 8pt;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.candidate-name {
|
|
163
|
+
font-size: var(--resume-font-size-name);
|
|
164
|
+
font-weight: 800;
|
|
165
|
+
color: var(--resume-color-accent);
|
|
166
|
+
letter-spacing: 1px;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.job-target {
|
|
170
|
+
font-size: var(--resume-font-size-target);
|
|
171
|
+
font-weight: 600;
|
|
172
|
+
color: var(--resume-color-secondary);
|
|
173
|
+
margin-top: 2pt;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.resume-section {
|
|
177
|
+
margin-bottom: var(--resume-space-section);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.section-title {
|
|
181
|
+
font-size: var(--resume-font-size-h2);
|
|
182
|
+
font-weight: 700;
|
|
183
|
+
color: var(--resume-color-accent);
|
|
184
|
+
display: flex;
|
|
185
|
+
align-items: center;
|
|
186
|
+
gap: 6pt;
|
|
187
|
+
margin-bottom: 6pt;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.title-bar {
|
|
191
|
+
display: inline-block;
|
|
192
|
+
width: 3.5pt;
|
|
193
|
+
height: 11pt;
|
|
194
|
+
background-color: var(--resume-color-accent);
|
|
195
|
+
border-radius: 1pt;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.timeline-item {
|
|
199
|
+
margin-bottom: var(--resume-space-item);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.item-header {
|
|
203
|
+
display: flex;
|
|
204
|
+
justify-content: space-between;
|
|
205
|
+
align-items: baseline;
|
|
206
|
+
margin-bottom: 2pt;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.item-title-group {
|
|
210
|
+
display: inline-flex;
|
|
211
|
+
align-items: baseline;
|
|
212
|
+
gap: 6pt;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.org-name, .project-name {
|
|
216
|
+
font-size: 10pt;
|
|
217
|
+
font-weight: 700;
|
|
218
|
+
color: var(--resume-color-primary);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.role-title {
|
|
222
|
+
font-size: 9pt;
|
|
223
|
+
font-weight: 600;
|
|
224
|
+
color: #0284c7; /* Sky 600 */
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.tech-badge {
|
|
228
|
+
font-size: 8pt;
|
|
229
|
+
color: var(--resume-color-muted);
|
|
230
|
+
background: #f1f5f9;
|
|
231
|
+
padding: 1.5pt 4pt;
|
|
232
|
+
border-radius: 2pt;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.date-range {
|
|
236
|
+
font-size: var(--resume-font-size-meta);
|
|
237
|
+
color: var(--resume-color-muted);
|
|
238
|
+
font-variant-numeric: tabular-nums;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.bullet-list {
|
|
242
|
+
margin-left: 12pt;
|
|
243
|
+
font-size: var(--resume-font-size-body);
|
|
244
|
+
color: var(--resume-color-secondary);
|
|
245
|
+
line-height: var(--resume-line-height-body);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.bullet-list li {
|
|
249
|
+
margin-bottom: var(--resume-space-bullet);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.bullet-list strong {
|
|
253
|
+
color: var(--resume-color-primary);
|
|
254
|
+
font-weight: 600;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.edu-desc {
|
|
258
|
+
font-size: var(--resume-font-size-body);
|
|
259
|
+
color: var(--resume-color-secondary);
|
|
260
|
+
line-height: var(--resume-line-height-body);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
@media print {
|
|
264
|
+
body { background: transparent; padding: 0; }
|
|
265
|
+
.resume-page {
|
|
266
|
+
box-shadow: none;
|
|
267
|
+
margin: 0;
|
|
268
|
+
width: var(--resume-page-width);
|
|
269
|
+
min-height: var(--resume-page-min-height);
|
|
270
|
+
page-break-after: always;
|
|
271
|
+
page-break-inside: avoid;
|
|
272
|
+
}
|
|
273
|
+
@page {
|
|
274
|
+
size: A4 portrait;
|
|
275
|
+
margin: 0;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>候选人 - 现代双栏专业简历</title>
|
|
7
|
+
<link rel="stylesheet" href="style.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div class="resume-page" id="page-1">
|
|
11
|
+
<!-- 左侧深色侧边栏 -->
|
|
12
|
+
<aside class="resume-sidebar">
|
|
13
|
+
<div class="sidebar-avatar-wrapper">
|
|
14
|
+
<div class="avatar-placeholder">
|
|
15
|
+
<span>照片/头像</span>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class="sidebar-section">
|
|
20
|
+
<h3 class="sidebar-title">基本信息</h3>
|
|
21
|
+
<ul class="sidebar-info-list">
|
|
22
|
+
<li><span class="info-label">年龄:</span>28岁 (5年工作经验)</li>
|
|
23
|
+
<li><span class="info-label">学历:</span>硕士 · 计算机技术</li>
|
|
24
|
+
<li><span class="info-label">电话:</span>138-0000-0000</li>
|
|
25
|
+
<li><span class="info-label">邮箱:</span>luxiaosheng@example.com</li>
|
|
26
|
+
<li><span class="info-label">地点:</span>北京 · 海淀区</li>
|
|
27
|
+
<li><span class="info-label">开源:</span>github.com/luxiaosheng</li>
|
|
28
|
+
</ul>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<div class="sidebar-section">
|
|
32
|
+
<h3 class="sidebar-title">核心技能</h3>
|
|
33
|
+
<div class="skill-meter-group">
|
|
34
|
+
<div class="skill-meter-item">
|
|
35
|
+
<div class="skill-meter-label"><span>Python / TypeScript</span><span>95%</span></div>
|
|
36
|
+
<div class="meter-bar"><div class="meter-fill" style="width: 95%;"></div></div>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="skill-meter-item">
|
|
39
|
+
<div class="skill-meter-label"><span>LLM Agent / RAG 架构</span><span>92%</span></div>
|
|
40
|
+
<div class="meter-bar"><div class="meter-fill" style="width: 92%;"></div></div>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="skill-meter-item">
|
|
43
|
+
<div class="skill-meter-label"><span>FastAPI / Node.js 微服务</span><span>88%</span></div>
|
|
44
|
+
<div class="meter-bar"><div class="meter-fill" style="width: 88%;"></div></div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="skill-meter-item">
|
|
47
|
+
<div class="skill-meter-label"><span>VectorDB / Postgres / Redis</span><span>85%</span></div>
|
|
48
|
+
<div class="meter-bar"><div class="meter-fill" style="width: 85%;"></div></div>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="sidebar-section">
|
|
54
|
+
<h3 class="sidebar-title">资质与证书</h3>
|
|
55
|
+
<ul class="sidebar-tags-list">
|
|
56
|
+
<li>CET-6 (590分) · 熟练英文技术读写</li>
|
|
57
|
+
<li>AWS 认证架构师 (Solutions Architect)</li>
|
|
58
|
+
<li>CCF-B 国际学术会议论文一作</li>
|
|
59
|
+
</ul>
|
|
60
|
+
</div>
|
|
61
|
+
</aside>
|
|
62
|
+
|
|
63
|
+
<!-- 右侧主内容舞台 -->
|
|
64
|
+
<main class="resume-main">
|
|
65
|
+
<header class="main-header">
|
|
66
|
+
<h1 class="candidate-name">鹿小笙</h1>
|
|
67
|
+
<p class="job-target">求职意向:AI Agent 架构师 / 高级全栈工程师</p>
|
|
68
|
+
</header>
|
|
69
|
+
|
|
70
|
+
<!-- 工作经历 -->
|
|
71
|
+
<section class="resume-section" id="experience">
|
|
72
|
+
<h2 class="section-title"><span class="title-bar"></span>工作经历</h2>
|
|
73
|
+
|
|
74
|
+
<div class="timeline-item">
|
|
75
|
+
<div class="item-header">
|
|
76
|
+
<div class="item-title-group">
|
|
77
|
+
<span class="org-name">智元未来人工智能实验室</span>
|
|
78
|
+
<span class="role-title">资深 AI 应用工程师</span>
|
|
79
|
+
</div>
|
|
80
|
+
<span class="date-range">2023.03 - 至今</span>
|
|
81
|
+
</div>
|
|
82
|
+
<ul class="bullet-list">
|
|
83
|
+
<li>主导研发企业级多 Agent 协同工作流调度平台,设计基于状态机的任务分解与自愈重试流水线,单日调度调用量突破 <strong>500 万次</strong>,系统可用率达 <strong>99.9%</strong>。</li>
|
|
84
|
+
<li>设计高吞吐向量多路检索与重排序流水线(Qdrant + BM25 + BGE Reranker),将核心客服知识库端到端检索准确率(Hit@3)提升 <strong>38%</strong>。</li>
|
|
85
|
+
</ul>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<div class="timeline-item">
|
|
89
|
+
<div class="item-header">
|
|
90
|
+
<div class="item-title-group">
|
|
91
|
+
<span class="org-name">极光互联科技有限公司</span>
|
|
92
|
+
<span class="role-title">高级后端开发工程师</span>
|
|
93
|
+
</div>
|
|
94
|
+
<span class="date-range">2020.07 - 2023.02</span>
|
|
95
|
+
</div>
|
|
96
|
+
<ul class="bullet-list">
|
|
97
|
+
<li>主导核心 API 网关与事件驱动消息分发集群重构,平稳支撑双十一大促 <strong>80,000 QPS</strong> 峰值流量,核心接口平均延迟降低 <strong>45%</strong>。</li>
|
|
98
|
+
<li>落地微服务链路追踪与自动化巡检探针,线上故障平均定位与恢复时间(MTTR)显著缩短 <strong>60%</strong>。</li>
|
|
99
|
+
</ul>
|
|
100
|
+
</div>
|
|
101
|
+
</section>
|
|
102
|
+
|
|
103
|
+
<!-- 核心项目 -->
|
|
104
|
+
<section class="resume-section" id="projects">
|
|
105
|
+
<h2 class="section-title"><span class="title-bar"></span>核心项目</h2>
|
|
106
|
+
|
|
107
|
+
<div class="timeline-item">
|
|
108
|
+
<div class="item-header">
|
|
109
|
+
<div class="item-title-group">
|
|
110
|
+
<span class="project-name">OpenAgent: 自适应代码审查与重构 Agent</span>
|
|
111
|
+
<span class="tech-badge">FastAPI / AST / LangGraph</span>
|
|
112
|
+
</div>
|
|
113
|
+
<span class="date-range">2024.01 - 2024.08</span>
|
|
114
|
+
</div>
|
|
115
|
+
<ul class="bullet-list">
|
|
116
|
+
<li>基于 AST 语法树解析构建局部代码语义切片器,结合 LLM 实现精准重构决策,项目在 GitHub 获得 <strong>2,400+ Stars</strong>。</li>
|
|
117
|
+
<li>设计 Prompt 动态剪枝与上下文窗口压缩算法,在维持重构精度前提下节约 <strong>42%</strong> 的模型调用成本。</li>
|
|
118
|
+
</ul>
|
|
119
|
+
</div>
|
|
120
|
+
</section>
|
|
121
|
+
|
|
122
|
+
<!-- 教育背景 -->
|
|
123
|
+
<section class="resume-section" id="education">
|
|
124
|
+
<h2 class="section-title"><span class="title-bar"></span>教育背景</h2>
|
|
125
|
+
<div class="timeline-item">
|
|
126
|
+
<div class="item-header">
|
|
127
|
+
<div class="item-title-group">
|
|
128
|
+
<span class="org-name">北京航空航天大学</span>
|
|
129
|
+
<span class="role-title">计算机科学与技术 · 硕士</span>
|
|
130
|
+
</div>
|
|
131
|
+
<span class="date-range">2017.09 - 2020.06</span>
|
|
132
|
+
</div>
|
|
133
|
+
<p class="edu-desc">GPA: 3.8/4.0 · 国家奖学金 · 优秀毕业研究生</p>
|
|
134
|
+
</div>
|
|
135
|
+
</section>
|
|
136
|
+
</main>
|
|
137
|
+
</div>
|
|
138
|
+
</body>
|
|
139
|
+
</html>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Workflow 3: Analyze Job (洞察岗位与需求分析)
|
|
2
|
+
|
|
3
|
+
> **目标:深入拆解招聘 JD,提取硬性门槛、加分亮点与招聘信号。**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. JD 结构化提取流程
|
|
8
|
+
|
|
9
|
+
1. **提取必备技能 (Must-Have Skills)**:
|
|
10
|
+
- 筛选招聘 JD 中明确要求的核心语言、框架与基础设施(如 Python, RAG, LangGraph, FastAPI)。
|
|
11
|
+
2. **提取加分技能 (Nice-to-Have Skills)**:
|
|
12
|
+
- 识别具备竞争优势的加分项(如 K8s, 模型评测 Eval, 论文专利)。
|
|
13
|
+
3. **识别业务痛点与职责关键词 (Responsibilities & Pain Points)**:
|
|
14
|
+
- 提取业务痛点词(如“长上下文优化”、“高并发削峰”、“Token 降本”、“团队效能”)。
|
|
15
|
+
4. **提取企业文化与招聘信号 (Hiring Signals)**:
|
|
16
|
+
- 分析团队风格(学术研究型、工程落地型、业务敏捷型、架构治理型)。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Workflow 2: Define Goal (明确方向与定位)
|
|
2
|
+
|
|
3
|
+
> **目标:明确目标岗位、期望职级与核心价值主张,确立职业叙事重心。**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 目标设定要素
|
|
8
|
+
|
|
9
|
+
1. **目标岗位名称 (Target Role Title)**:
|
|
10
|
+
- 明确标准岗位名称(如“资深 AI Agent 研发工程师”、“全栈架构师”)。
|
|
11
|
+
2. **期望职级 (Target Seniority)**:
|
|
12
|
+
- 确定表达重心(Junior/Mid/Senior/Lead/Architect/Director)。
|
|
13
|
+
3. **行业细分领域 (Industry Domain)**:
|
|
14
|
+
- 锁定行业背景(AI/大模型、企业级 SaaS、金融科技、消费互联网等)。
|
|
15
|
+
4. **核心价值主张 (Core Value Proposition - CVP)**:
|
|
16
|
+
- 提炼一句话核心定位(15~25 字),概括候选人独特的技术与业务壁垒。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Workflow 5: Forge Resume (简历工程与修改场排版)
|
|
2
|
+
|
|
3
|
+
> **目标:以 HTML 为唯一修改场,填充结构化内容,调校 Design Tokens 实现像素级排版。**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 模板检索与修改场实例化
|
|
8
|
+
|
|
9
|
+
1. **执行模板检索**:
|
|
10
|
+
```bash
|
|
11
|
+
python3 scripts/search-template.py "<Target Role>" --style "<minimal|modern|executive|classic>" --target-pages 1
|
|
12
|
+
```
|
|
13
|
+
2. **实例化中间修改场**:
|
|
14
|
+
```bash
|
|
15
|
+
python3 scripts/instantiate-resume.py --template <template_id> --keywords "Python,LLM,RAG,FastAPI" --output workspace/resume.html
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 2. 修改场编辑规范
|
|
19
|
+
|
|
20
|
+
1. **内容填充**:
|
|
21
|
+
- 保持语义化标签结构:`h1.candidate-name`, `p.job-target`, `section.resume-section`, `div.experience-item`, `ul.bullet-list`。
|
|
22
|
+
2. **Design Tokens 视觉调校**:
|
|
23
|
+
- 全局间距:`--resume-space-section`, `--resume-space-item`, `--resume-space-bullet`。
|
|
24
|
+
- 正文字号:`--resume-font-size-body`(标准 `9.2pt`,紧凑可微调至 `8.8pt`)。
|
|
25
|
+
- 色彩体系:`--resume-color-accent`, `--resume-color-primary`。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Workflow 1: Know Me (自我认知与证据挖掘)
|
|
2
|
+
|
|
3
|
+
> **目标:全面梳理候选人真实事实,建立可信证据底座,杜绝 AI 凭空捏造。**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 证据挖掘四步法
|
|
8
|
+
|
|
9
|
+
1. **结构化资产输入**:
|
|
10
|
+
- 提取教育背景(学校、专业、学历、时间、GPA/荣誉)。
|
|
11
|
+
- 提取职业经历(公司、职位、起止时间、部门/团队定位)。
|
|
12
|
+
- 提取代码库与项目档案(GitHub 仓库、系统架构图、核心职责、采用技术栈)。
|
|
13
|
+
2. **客观事实提取**:
|
|
14
|
+
- 将主观描述过滤为客观事实实体(技术栈、业务规模、代码量、测试覆盖率、性能指标)。
|
|
15
|
+
3. **L1~L3 证据等级评定**:
|
|
16
|
+
- **Level 1 (强证据 - Direct Code/Config)**:在代码库、配置文件、CI/CD、文档中有直接证据支持。
|
|
17
|
+
- **Level 2 (中证据 - Structural/Dependency)**:由目录结构、依赖库选型、架构模式合理推导得出。
|
|
18
|
+
- **Level 3 (弱推论 - Contextual Inference)**:根据业务上下文合理推测(需使用保守句式,如“参与…的研发”)。
|
|
19
|
+
- **Unsupported (无证据支撑)**:候选人档案完全未提及。**严禁写入简历**。
|
|
20
|
+
4. **输出 Master Profile JSON**:
|
|
21
|
+
- 沉淀为标准的结构化候选人事实档案(候选人真实经历底座)。
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Workflow 4: Position (优势对齐与策略设计)
|
|
2
|
+
|
|
3
|
+
> **目标:进行差距分析,将真实证据精准对齐 JD 需求,制定本轮简历策略。**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 策略制定四步法
|
|
8
|
+
|
|
9
|
+
1. **差距分析 (Gap Analysis)**:
|
|
10
|
+
- **强匹配区 (Strong Match)**:候选人拥有 L1 强证据且完全契合 JD 必备项(重点大篇幅展开)。
|
|
11
|
+
- **潜在匹配区 (Potential Match)**:候选人拥有 L2/L3 证据可迁移关联(合理呼应)。
|
|
12
|
+
- **缺失区 (Gap)**:真实经历中未涉及的技能(严禁造假,弱化或引导用户补充真实经历)。
|
|
13
|
+
2. **确定模块优先级 (Section Priority)**:
|
|
14
|
+
- 技术研发类:`Skills` ➔ `Projects` ➔ `Experience` ➔ `Education`
|
|
15
|
+
- 管理架构类:`Summary` ➔ `Experience` ➔ `Projects` ➔ `Skills` ➔ `Education`
|
|
16
|
+
3. **确定高亮关键词清单 (Highlight Targets)**:
|
|
17
|
+
- 提取 8~12 个高频硬核技术词,在 HTML 修改场中注入 `<strong>` 或标签。
|
|
18
|
+
4. **运用 FAB 模型重塑 Bullets**:
|
|
19
|
+
- 确保每个经历条目包含:强动词 + Feature(系统) + Advantage(架构创新) + Benefit(量化成效)。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Workflow 6: Review & QA (双重质检与自愈闭环)
|
|
2
|
+
|
|
3
|
+
> **目标:自动化验证 ATS 纯文本可解析性与 DOM 高度溢出,闭环自愈调参,导出确定性 PDF。**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 双重 QA 自动化测试
|
|
8
|
+
|
|
9
|
+
1. **测试 1:布局与 DOM 高度溢出检测**:
|
|
10
|
+
```bash
|
|
11
|
+
python3 scripts/validate-resume.py --html workspace/resume.html --expected-pages 1
|
|
12
|
+
```
|
|
13
|
+
- 单页标准高度:$297\text{mm} \times 96\text{DPI} / 25.4 \approx 1122.5\text{px}$。
|
|
14
|
+
2. **测试 2:ATS 纯文本流解析检测**:
|
|
15
|
+
```bash
|
|
16
|
+
npx ts-node scripts/validate-ats.ts --html workspace/resume.html
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 2. 自动化自愈修复闭环
|
|
20
|
+
|
|
21
|
+
- **若发生页面溢出(如高度 1145px > 1122.5px)**:
|
|
22
|
+
1. 在 `workspace/resume.html` 的 `<style>` 中微调 `--resume-space-section: 9.5pt;`;
|
|
23
|
+
2. 微调 `--resume-font-size-body: 9.0pt;`;
|
|
24
|
+
3. 精简多余空行或过长描述;
|
|
25
|
+
4. 重新运行验证脚本直至 100% 通过。
|
|
26
|
+
|
|
27
|
+
## 3. 确定性无损 PDF 导出
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx ts-node scripts/render-pdf.ts --input workspace/resume.html --output workspace/resume.pdf
|
|
31
|
+
```
|