前端开发 简历怎么写 简历模板 2025-12-17 23:08:19

2025前端开发简历怎么写?3份高分简历模板范文参考直接套用

怕简历被HR拒绝?快针对招聘岗位润色优化你的简历

使用我们的AI简历优化工具,让你的简历在众多求职者中脱颖而出,获得更多面试机会。

立即开始润色优化简历 →

2025前端岗位竞争现状与简历价值

2025年的前端招聘市场可以用“技术深潜+场景融合”八个字概括。一方面,React Server Components、Vue Vapor Mode、Angular Signals 等底层能力更新让招聘方对“版本敏感型”候选人需求激增;另一方面,AIGC 低代码、跨端鸿蒙 ArkUI、Web3 钱包集成等新场景爆发,导致 JD 中同时出现“熟悉 Three.js 渲染管线”与“理解智能合约事件监听”这种跨界组合。HR 平均 6 秒即决定一份简历去留,ATS(自动筛 CV 系统)则把 73% 的简历拦在人工面试之前。此时,一份能在 6 秒内让机器和人都读懂的简历,就是候选人撬动面试机会的唯一杠杆。简历姬 AI 求职助手通过 1 分钟极速优化,把 JD 关键词、版本号、业务指标自动嵌入模板,实测可将 ATS 通过率从 27% 提升到 78%,让技术人把更多时间花在刷算法与准备系统设计上,而非反复改格式。

2025前端开发简历撰写核心要素

技术栈关键词精准匹配

React/Vue/Angular版本号写法

2025 年,招聘系统已把“React 18.3 + Next.js 14 SSR streaming”识别为一条完整关键词,缺失任何子版本都会降低匹配度。写法上,务必采用“主库+生态+场景”三段式:例如“React 18.3 / Next.js 14 App Router / Server Actions 实现 BFF 聚合”。Vue 侧建议写“Vue 3.4 + Vapor Mode 预编译优化,首屏 TTI 降低 38%”,Angular 则强调“Angular 17 Signals 响应式重构,脏检查次数从 1200 次降至 47 次”。简历姬 AI 在解析 JD 时会自动提取版本号与生态组合,生成“技术雷达图”供一键插入,确保 ATS 与面试官都能秒懂。

性能优化与工程化关键词提炼

性能与工程化已成为前端简历的“硬通货”。在 ATS 词库中,“bundle 体积、Lighthouse 分数、CI/CD、Monorepo、微前端、Module Federation、Rspack、Vite 预压缩”都是高频命中词。写法上遵循“指标+工具+收益”公式:如“基于 Vite 5 预压缩 + Brotli,将 3.2 MB 主包降至 780 KB,Lighthouse Performance 94→100”。工程化部分可写“设计 Turborepo 缓存策略,CI 时长由 14 min 缩短到 4 min 30 s”。简历姬 AI 会自动把零散的优化点聚合成“性能矩阵”,并给出可量化的行业对标值,避免“提升明显”这类空洞描述。

项目经历STAR法则升级

量化指标与业务价值描述

传统 STAR 法则在 2025 需要升级为“STARI”:Situation、Task、Action、Result、Impact。Result 必须量化,Impact 必须对齐业务 KPI。示例:S——电商大促页面秒开率低于 60%,导致 GMV 损失预估 1200 万;T——将秒开率提升到 90%;A——引入 React Server Components + Edge SSR,配合图片 CDN 动态 WebP;R——秒开率 60%→93%,LCP 2.8 s→1.1 s;I——大促当日 GMV 提升 18%,新增会员 27 万。简历姬 AI 的“业务价值计算器”会根据输入的技术动作,自动估算对 GMV、DAU、留存的影响,并生成一句话的 Impact 描述,直接嵌入简历。

开源贡献与社区影响力呈现

2025 年,GitHub Star 数已不再是唯一指标,招聘方更关注“PR 是否合并到核心仓库、是否成为 Maintainer、技术分享辐射人数”。写法示例:“向 Vue 3 提交 5 个 PR(3 个已合并),修复 Suspense 内存泄漏,影响版本 3.5+;在 VueConf 2024 分享《Vapor Mode 原理》,线下 800 人、直播 2.3 万观看”。若你主导过公司级开源项目,可写“发起内部组件库 Open-UI,对外发布 3 个月获 1.2 k Star,被 5 家独角兽企业引用”。简历姬 AI 会抓取 GitHub 数据,自动生成“开源影响力卡片”,把代码贡献、Issue 讨论、技术演讲整合成 3 行高含金量描述。

视觉排版与ATS友好设计

单页PDF信息密度控制

2025 年,HR 已习惯在 13 寸笔记本上竖屏浏览 PDF,单页简历最佳信息密度为 550–600 词,字号 10.5–11 pt,行距 1.15。左侧 30% 区域放技能雷达图与关键数字,右侧 70% 放项目经历,确保“F 型”阅读轨迹。颜色使用 2 种以内品牌色,#0A84FF 作主色,#1D1D1F 作文字,避免 ATS 解析异常。简历姬 AI 提供 3 套“单页高密度模板”,一键排版后自动压缩留白,同时保证打印不失真。

语义化标签与无障碍优化

虽然最终交付物是 PDF,但 ATS 会先把 PDF 转回 HTML。使用语义化标签 `

`、`

`–`

`、`
    ` 能显著提升解析准确率。图表使用 SVG 而非位图,并添加 `` 描述,兼顾屏幕阅读器。颜色对比度需 ≥ 4.5:1,关键数字用粗体而非颜色区分。简历姬 AI 的“ATS 体检”功能会模拟 8 种主流解析器,实时提示“标题层级错误”“图片无 Alt”等问题,确保机器阅读无障碍。</p> <h2>三套高分简历模板拆解</h2> <h3>模板A:应届生冲刺大厂</h3> <h4>课程项目转商业级描述技巧</h4> <p>应届生最大的痛点是“课程项目听起来像玩具”。使用“商业映射”技巧:把校园二手交易小程序改写成“千万级曝光 C2C 平台”。技术动作写“基于 React 18 + TypeScript 4.9,设计虚拟滚动 + 图片懒加载,首屏节点渲染量从 1200 降至 80,低端机卡顿率 34%→6%”。业务结果写“上线 3 周吸引 3 所高校 1.8 万用户,发布商品 2.6 万件,促成交易 4.7 万元”。简历姬 AI 的“校园项目商业化”模块,内置 50+ 行业 KPI 模板,输入 GitHub 地址即可自动补全商业数字。</p> <h4>实习经历与校园荣誉权重分配</h4> <p>大厂筛选逻辑:实习 > 竞赛 > 学生组织。若实习经历不足,可把“阿里天池极客大赛 Top 3%”放在项目经历同级,并写“基于 WebGL 的 3D 可视化方案,FPS 提升 42%,获评委‘最佳性能奖’”。校园荣誉用“一行式”写法:“国家奖学金(前 1%)、ACM 银牌、Vue 中文社区年度优秀译者”。简历姬 AI 会自动把荣誉转化为“竞争力指数”,并给出排序建议,确保 HR 6 秒内看到最有分量的内容。</p> <h3>模板B:3年经验跳槽加薪</h3> <h4>主导项目与技术决策亮点</h4> <p>3 年经验的核心是“技术决策权”。写法示例:“主导从 Webpack 迁移到 Rspack,制定 20+ 条自定义插件规则,编译时长 180 s→45 s;推动 Monorepo 拆分,10 个子应用独立部署,回滚时间从 15 min 缩短到 90 s”。决策过程用“对比-选型-落地”三步:对比 Vite vs Rspack、选型理由、灰度发布数据。简历姬 AI 会抓取你输入的决策点,自动生成“技术决策树”小图标,插入简历后让面试官一眼看到领导力。</p> <h4>跨端与全栈能力包装策略</h4> <p>2025 年,会写 Node 已不够,需体现“端-云-链”全链路。写法示例:“基于 NestJS + Prisma 构建 GraphQL BFF,聚合 7 个微服务;客户端使用 Taro 3.6 编译到鸿蒙 ArkTS,代码复用率 78%;智能合约监听采用 ethers.js 事件流,NFT 铸造成功率 99.7%”。简历姬 AI 的“全栈能力矩阵”会把技术栈映射到端、云、链三层,自动生成雷达图,并给出缺失技能学习路径。</p> <h3>模板C:5+年专家晋升管理</h3> <h4>技术架构与团队规模量化</h4> <p>专家级简历需要“架构蓝图 + 团队数字”。示例:“设计微前端 + Module Federation 架构,支撑 200+ 研发并行开发,日均构建 350 次,故障率 < 0.1%;带领 12 人前端小组 + 5 人跨端小组,年度 OKR 完成率 100%,晋升 3 人至 P8”。架构图用 C4 Model 的 Container 层描述,团队规模用“金字塔”呈现:专家 1、骨干 4、初级 7。简历姬 AI 提供“架构图一键生成”功能,输入 repo 地址即可拉取依赖图,自动排版成 PDF 可读的架构卡片。</p> <h4>OKR与业务增长关联写法</h4> <p>专家必须证明“技术驱动业务”。写法示例:“O——提升会员付费转化率 15%;KR1——重构购课流程,前端耗时 4.2 s→1.6 s;KR2——AB 实验 3 轮,实验组转化率提升 18.3%;KR3——上线 30 天新增付费会员 9.4 万,营收 1200 万”。简历姬 AI 的“OKR 对齐器”会把技术动作自动映射到业务 KR,并给出行业对标,避免“技术自嗨”。</p> <h2>总结:2025前端简历避坑与提效清单</h2> <p>避坑:1) 不写版本号或写错版本号,直接 ATS 降权;2) 项目描述缺数字,被判定为“低含金量”;3) 多页简历或颜色过多,机器解析失败;4) 把“熟悉”写成“精通”,面试一问就穿帮。提效:1) 用简历姬 AI 1 分钟完成关键词优化,实测通过率提升 2.9 倍;2) 用 AI 模拟面试,提前暴露知识盲区;3) 用职业规划模块,把跳槽涨薪幅度精确到 30–50%;4) 全流程覆盖:从创建简历 → AI 优化 → 智能求职信 → 模拟面试 → 职业咨询,一站搞定。立即访问 [简历姬 AI 求职助手](http://app.resumemakeroffer.com/),输入目标 JD,30 秒生成 2025 高分前端简历。</p> <h2>2025前端开发简历怎么写?3份高分简历模板范文参考直接套用</h2> <h4>Q1: 2025 前端开发简历最该突出哪些关键词,HR 和 ATS 系统才会秒过?</h4> <p>把岗位 JD 拆解成技术栈关键词,如 `React 19`、`Next.js 14`、`TypeScript 5`、`Vite`、`Tailwind CSS`、`WebAssembly`,并量化成果:*“用 Next.js 14 重构 SSR 页面,FCP 从 2.1s 降到 0.9s,转化率 +18%”*。用 *简历姬AI求职助手* 的「AI 简历优化」功能,一键匹配 JD 关键词并自动加粗高亮,通过率提升 3 倍。</p> <h4>Q2: 没有上线项目,只有课程练习,怎么写才不显得“学生气”?</h4> <p>把课程项目包装成商业级案例:*“仿网易云音乐 WebApp”* 改为 *“基于 React + Vite 的音乐流媒体 SPA,支持 OAuth 登录、无限滚动、PWA 离线播放,日活 500+”*。用 *AI 求职信* 生成器,把项目痛点、技术亮点、用户价值写成 120 字故事,HR 一眼看到成长潜力。</p> <h4>Q3: 三年经验想跳槽,简历如何体现“从码农到技术 owner”的跃迁?</h4> <p>用 STAR 法写两条高影响力条目: - *主导微前端架构升级*:拆分 5 个子应用,构建时间 -40%,灰度发布零故障; - *推动代码规范落地*:制定 ESLint + Husky 流水线,团队缺陷率 -30%。 再用 *简历姬AI* 的「职业规划工具」评估市场薪资区间,一键生成“技术 owner”定位报告,面试谈薪更自信。</p> <h4>Q4: 面试总挂在“手写代码”环节,怎么提前准备?</h4> <p>用 *AI 模拟面试* 选择“前端算法 + 场景题”模式,系统会随机出 *防抖节流、虚拟列表、Promise 并发控制* 等高频题,并给出实时评分与改进话术。每天 15 分钟,两周即可把算法题通过率从 40% 拉到 90%。</p> <p>立即体验 <a href="http://app.resumemakeroffer.com/">简历姬AI求职助手</a>,让你的 2025 前端简历更出彩!</p> </div> </div> <div class="bg-white rounded-2xl shadow-sm p-6 mb-8"> <h3 class="text-lg font-semibold text-gray-900 mb-4 flex items-center gap-2"> <img src="https://cdn3.bekaie.com/icon2025/icon3/chazhaoyonghu.png" alt="Authors" class="w-5 h-5" loading="lazy" /> 作者介绍 </h3> <div class="grid md:grid-cols-2 gap-4"> <a href="/page/kaiwen" class="block border border-gray-200 rounded-xl p-5 hover:border-primary hover:shadow-sm transition-all"> <div class="flex items-start gap-3"> <img src="https://cdn3.bekaie.com/icon2025/icon3/chazhaoyonghu.png" alt="Kaiwen" class="w-10 h-10" loading="lazy" /> <div> <div class="flex items-center gap-2"> <p class="font-semibold text-gray-900">Kaiwen</p> <span class="text-xs text-gray-500">Co-author</span> </div> <p class="text-sm text-gray-600 mt-1">大厂技术主管、科技软硬件行业连续创业者、并购领域兼职投资人。</p> <p class="text-sm text-primary mt-3 font-medium">查看 Kaiwen 简介 →</p> </div> </div> </a> <a href="/page/star" class="block border border-gray-200 rounded-xl p-5 hover:border-primary hover:shadow-sm transition-all"> <div class="flex items-start gap-3"> <img src="https://cdn3.bekaie.com/icon2025/icon3/baobiao.png" alt="Star" class="w-10 h-10" loading="lazy" /> <div> <div class="flex items-center gap-2"> <p class="font-semibold text-gray-900">Star</p> <span class="text-xs text-gray-500">Co-author</span> </div> <p class="text-sm text-gray-600 mt-1">高级数据分析师、跨境电商&AI领域创业者。</p> <p class="text-sm text-primary mt-3 font-medium">查看 Star 简介 →</p> </div> </div> </a> </div> </div> <div class="bg-white rounded-2xl shadow-sm p-6 mb-8"> <h3 class="text-lg font-semibold text-gray-900 mb-4">相关标签</h3> <div class="flex flex-wrap gap-2"> <a href="/blog/tag/123202" class="bg-gray-100 text-gray-700 px-3 py-1 rounded-full text-sm hover:bg-primary hover:text-white transition-colors"> ai简历模板免费使用 </a> <a href="/blog/tag/123161" class="bg-gray-100 text-gray-700 px-3 py-1 rounded-full text-sm hover:bg-primary hover:text-white transition-colors"> 工作简历模板免费 </a> <a href="/blog/tag/123283" class="bg-gray-100 text-gray-700 px-3 py-1 rounded-full text-sm hover:bg-primary hover:text-white transition-colors"> 简历动词库 </a> <a href="/blog/tag/123151" class="bg-gray-100 text-gray-700 px-3 py-1 rounded-full text-sm hover:bg-primary hover:text-white transition-colors"> 简历模板word个人简历 电子版 </a> <a href="/blog/tag/123120" class="bg-gray-100 text-gray-700 px-3 py-1 rounded-full text-sm hover:bg-primary hover:text-white transition-colors"> 简历籍贯 </a> </div> </div> <div class="bg-white rounded-2xl shadow-sm p-6 mb-8"> <h3 class="text-lg font-semibold text-gray-900 mb-4">相关文章</h3> <div class="grid gap-4"> <a href="/blog/post/90710" class="flex items-center p-4 border border-gray-200 rounded-lg hover:border-primary hover:shadow-sm transition-all"> <div class="flex-1"> <h4 class="font-medium text-gray-900 mb-1">个人简历籍贯怎么填写才正确?常见误区和填写规范详解</h4> <p class="text-sm text-gray-600"></p> </div> <svg class="w-5 h-5 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path> </svg> </a> <a href="/blog/post/90868" class="flex items-center p-4 border border-gray-200 rounded-lg hover:border-primary hover:shadow-sm transition-all"> <div class="flex-1"> <h4 class="font-medium text-gray-900 mb-1">简历填写籍贯怎么写?HR最认可的3种写法与常见误区全解析 </h4> <p class="text-sm text-gray-600"></p> </div> <svg class="w-5 h-5 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path> </svg> </a> </div> </div> <div class="comments-section bg-white rounded-2xl shadow-sm p-6 mt-8"> <div class="flex items-center justify-between mb-6"> <h3 class="text-xl font-semibold text-gray-900 flex items-center"> <svg class="w-6 h-6 text-primary mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path> </svg> 评论 (17) </h3> <button class="text-sm text-gray-500 hover:text-primary transition-colors"> 按时间排序 ↓ </button> </div> <div class="comment-form bg-gray-50 rounded-xl p-4 mb-6"> <div class="flex items-start space-x-3"> <div class="flex-shrink-0"> <div class="w-10 h-10 bg-gradient-to-br from-primary to-secondary rounded-full flex items-center justify-center"> <svg class="w-5 h-5 text-white" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"></path> </svg> </div> </div> <div class="flex-1"> <textarea id="comment-input" placeholder="写下你的评论..." class="w-full p-3 border border-gray-200 rounded-lg resize-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all" rows="3" ></textarea> <div class="flex items-center justify-between mt-3"> <div class="flex items-center space-x-4 text-sm text-gray-500"> <button class="hover:text-primary transition-colors"> <svg class="w-4 h-4 inline mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 4V2a1 1 0 011-1h8a1 1 0 011 1v2m-9 0h10m-10 0a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V6a2 2 0 00-2-2"></path> </svg> 表情 </button> <button class="hover:text-primary transition-colors"> <svg class="w-4 h-4 inline mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"></path> </svg> 图片 </button> </div> <div class="flex items-center space-x-2"> <button class="px-4 py-2 text-gray-600 hover:text-gray-800 transition-colors"> 取消 </button> <button id="submit-comment" class="px-6 py-2 bg-primary text-white rounded-lg hover:bg-primary-dark transition-colors font-medium" > 发表评论 </button> </div> </div> </div> </div> </div> <div class="comments-list space-y-6"> <div class="comment-item"> <div class="flex items-start space-x-3"> <div class="flex-shrink-0"> <div class="w-10 h-10 bg-blue-500 rounded-full flex items-center justify-center"> <span class="text-white text-sm font-medium">O</span> </div> </div> <div class="flex-1"> <div class="bg-gray-50 rounded-lg p-4"> <div class="flex items-center justify-between mb-2"> <div class="flex items-center space-x-2"> <span class="font-medium text-gray-900">ops***@foxmail.com</span> <span class="text-sm text-gray-500">2小时前</span> </div> <button class="text-gray-400 hover:text-gray-600"> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"> <path d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z"></path> </svg> </button> </div> <p class="text-gray-700 mb-3">非常实用的文章,感谢分享!</p> <div class="flex items-center space-x-4 text-sm"> <button class="flex items-center space-x-1 text-gray-500 hover:text-primary transition-colors"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5"></path> </svg> <span>👍 5</span> </button> <button class="text-gray-500 hover:text-primary transition-colors reply-btn" data-comment-id="1"> 回复 </button> <button class="text-gray-500 hover:text-primary transition-colors"> 分享 </button> </div> </div> <div class="mt-4 ml-4 border-l-2 border-gray-100 pl-4"> <div class="flex items-start space-x-3"> <div class="flex-shrink-0"> <div class="w-8 h-8 bg-green-500 rounded-full flex items-center justify-center"> <span class="text-white text-xs font-medium">S</span> </div> </div> <div class="flex-1"> <div class="bg-white border border-gray-200 rounded-lg p-3"> <div class="flex items-center space-x-2 mb-2"> <span class="font-medium text-gray-900 text-sm">s***xd@126.com</span> <span class="bg-primary text-white text-xs px-2 py-1 rounded">作者</span> <span class="text-sm text-gray-500">1小时前</span> </div> <p class="text-gray-700 text-sm">谢谢支持!</p> <div class="flex items-center space-x-4 text-xs mt-2"> <button class="flex items-center space-x-1 text-gray-500 hover:text-primary transition-colors"> <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5"></path> </svg> <span>👍 2</span> </button> <button class="text-gray-500 hover:text-primary transition-colors"> 回复 </button> </div> </div> </div> </div> </div> <div class="reply-form mt-3 ml-4 hidden" id="reply-form-1"> <div class="flex items-start space-x-3"> <div class="flex-shrink-0"> <div class="w-8 h-8 bg-gradient-to-br from-primary to-secondary rounded-full flex items-center justify-center"> <svg class="w-4 h-4 text-white" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"></path> </svg> </div> </div> <div class="flex-1"> <textarea placeholder="回复 ops***@foxmail.com..." class="w-full p-3 border border-gray-200 rounded-lg resize-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all text-sm" rows="2" ></textarea> <div class="flex items-center justify-end mt-2 space-x-2"> <button class="px-3 py-1 text-sm text-gray-600 hover:text-gray-800 transition-colors cancel-reply"> 取消 </button> <button class="px-4 py-1 bg-primary text-white rounded text-sm hover:bg-primary-dark transition-colors"> 回复 </button> </div> </div> </div> </div> </div> </div> </div> <div class="comment-item"> <div class="flex items-start space-x-3"> <div class="flex-shrink-0"> <div class="w-10 h-10 bg-purple-500 rounded-full flex items-center justify-center"> <span class="text-white text-sm font-medium">L</span> </div> </div> <div class="flex-1"> <div class="bg-gray-50 rounded-lg p-4"> <div class="flex items-center justify-between mb-2"> <div class="flex items-center space-x-2"> <span class="font-medium text-gray-900">li***@gmail.com</span> <span class="text-sm text-gray-500">5小时前</span> </div> <button class="text-gray-400 hover:text-gray-600"> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"> <path d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z"></path> </svg> </button> </div> <p class="text-gray-700 mb-3">这些技巧真的很有用,特别是关于关键词优化的部分。我按照文章的建议修改了简历,已经收到了3个面试邀请!👏</p> <div class="flex items-center space-x-4 text-sm"> <button class="flex items-center space-x-1 text-gray-500 hover:text-primary transition-colors"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5"></path> </svg> <span>👍 12</span> </button> <button class="text-gray-500 hover:text-primary transition-colors reply-btn" data-comment-id="2"> 回复 </button> <button class="text-gray-500 hover:text-primary transition-colors"> 分享 </button> </div> </div> <div class="reply-form mt-3 ml-4 hidden" id="reply-form-2"> <div class="flex items-start space-x-3"> <div class="flex-shrink-0"> <div class="w-8 h-8 bg-gradient-to-br from-primary to-secondary rounded-full flex items-center justify-center"> <svg class="w-4 h-4 text-white" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"></path> </svg> </div> </div> <div class="flex-1"> <textarea placeholder="回复 li***@gmail.com..." class="w-full p-3 border border-gray-200 rounded-lg resize-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all text-sm" rows="2" ></textarea> <div class="flex items-center justify-end mt-2 space-x-2"> <button class="px-3 py-1 text-sm text-gray-600 hover:text-gray-800 transition-colors cancel-reply"> 取消 </button> <button class="px-4 py-1 bg-primary text-white rounded text-sm hover:bg-primary-dark transition-colors"> 回复 </button> </div> </div> </div> </div> </div> </div> </div> <div class="comment-item"> <div class="flex items-start space-x-3"> <div class="flex-shrink-0"> <div class="w-10 h-10 bg-orange-500 rounded-full flex items-center justify-center"> <span class="text-white text-sm font-medium">W</span> </div> </div> <div class="flex-1"> <div class="bg-gray-50 rounded-lg p-4"> <div class="flex items-center justify-between mb-2"> <div class="flex items-center space-x-2"> <span class="font-medium text-gray-900">wang***@163.com</span> <span class="text-sm text-gray-500">1天前</span> </div> <button class="text-gray-400 hover:text-gray-600"> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"> <path d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z"></path> </svg> </button> </div> <p class="text-gray-700 mb-3">请问有没有针对应届生的简历模板推荐?刚毕业没什么工作经验,不知道怎么写比较好。</p> <div class="flex items-center space-x-4 text-sm"> <button class="flex items-center space-x-1 text-gray-500 hover:text-primary transition-colors"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5"></path> </svg> <span>👍 8</span> </button> <button class="text-gray-500 hover:text-primary transition-colors reply-btn" data-comment-id="3"> 回复 </button> <button class="text-gray-500 hover:text-primary transition-colors"> 分享 </button> </div> </div> <div class="reply-form mt-3 ml-4 hidden" id="reply-form-3"> <div class="flex items-start space-x-3"> <div class="flex-shrink-0"> <div class="w-8 h-8 bg-gradient-to-br from-primary to-secondary rounded-full flex items-center justify-center"> <svg class="w-4 h-4 text-white" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"></path> </svg> </div> </div> <div class="flex-1"> <textarea placeholder="回复 wang***@163.com..." class="w-full p-3 border border-gray-200 rounded-lg resize-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all text-sm" rows="2" ></textarea> <div class="flex items-center justify-end mt-2 space-x-2"> <button class="px-3 py-1 text-sm text-gray-600 hover:text-gray-800 transition-colors cancel-reply"> 取消 </button> <button class="px-4 py-1 bg-primary text-white rounded text-sm hover:bg-primary-dark transition-colors"> 回复 </button> </div> </div> </div> </div> </div> </div> </div> </div> <div class="text-center mt-8"> <button class="inline-flex items-center px-6 py-3 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"> <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path> </svg> 加载更多评论 </button> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { const replyBtns = document.querySelectorAll('.reply-btn'); const cancelReplyBtns = document.querySelectorAll('.cancel-reply'); replyBtns.forEach(btn => { btn.addEventListener('click', function() { const commentId = this.getAttribute('data-comment-id'); const replyForm = document.getElementById(`reply-form-${commentId}`); document.querySelectorAll('.reply-form').forEach(form => { if (form.id !== `reply-form-${commentId}`) { form.classList.add('hidden'); } }); replyForm.classList.toggle('hidden'); if (!replyForm.classList.contains('hidden')) { const textarea = replyForm.querySelector('textarea'); textarea.focus(); } }); }); cancelReplyBtns.forEach(btn => { btn.addEventListener('click', function() { const replyForm = this.closest('.reply-form'); replyForm.classList.add('hidden'); const textarea = replyForm.querySelector('textarea'); textarea.value = ''; }); }); const submitBtn = document.getElementById('submit-comment'); const commentInput = document.getElementById('comment-input'); submitBtn.addEventListener('click', function() { const content = commentInput.value.trim(); if (content) { alert('评论发表成功!'); commentInput.value = ''; } else { alert('请输入评论内容'); } }); document.querySelectorAll('button').forEach(btn => { if (btn.innerHTML.includes('👍')) { btn.addEventListener('click', function() { const likeCount = this.querySelector('span'); if (likeCount) { const currentCount = parseInt(likeCount.textContent.split(' ')[1]); likeCount.textContent = `👍 ${currentCount + 1}`; this.classList.add('text-primary'); } }); } }); document.querySelectorAll('textarea').forEach(textarea => { textarea.addEventListener('input', function() { this.style.height = 'auto'; this.style.height = this.scrollHeight + 'px'; }); }); }); </script> <style> .comments-section { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; } .comment-item { transition: all 0.2s ease; } .comment-item:hover { transform: translateY(-1px); } .reply-form { animation: slideDown 0.3s ease; } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .comment-form textarea:focus, .reply-form textarea:focus { box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } .primary { color: #3b82f6; } .primary-dark { background-color: #2563eb; } @media (max-width: 640px) { .comments-section { padding: 1rem; margin: 1rem -1rem 0 -1rem; border-radius: 0; } .comment-item .flex { flex-direction: column; space-x: 0; } .comment-item .flex-shrink-0 { margin-bottom: 0.5rem; } } </style> </main> <aside class="lg:col-span-1"> <div class="bg-white rounded-2xl shadow-sm p-6 mb-6 sticky top-24"> <h3 class="text-lg font-semibold text-gray-900 mb-4 flex items-center gap-2"> <img src="https://cdn3.bekaie.com/icon2025/icon3/bijiben.png" alt="TOC" class="w-5 h-5" loading="lazy" /> 文章大纲 </h3> <nav id="article-toc" class="text-sm"></nav> <p id="article-toc-empty" class="text-sm text-gray-500 hidden">本篇文章暂无可用大纲。</p> </div> <div class="bg-gradient-to-br from-primary to-secondary rounded-2xl p-6 text-white mb-6"> <h3 class="text-xl font-bold mb-4">🚀 润色优化你的简历</h3> <p class="text-gray-200 mb-4 text-sm"> 使用AI技术,3分钟生成专业简历,提升求职成功率85% </p> <a href="https://app.resumemakeroffer.com/home?from=blog-right-92239" rel="nofollow" class="block w-full bg-white text-primary text-center py-3 rounded-lg font-medium hover:bg-gray-100 transition-colors mb-3"> 免费开始使用 </a> <ul class="text-gray-200 text-sm space-y-1"> <li>✓ AI智能优化建议</li> <li>✓ 专业模板库</li> <li>✓ 一键生成求职信</li> <li>✓ 多格式导出</li> </ul> </div> <div class="bg-white rounded-2xl shadow-sm p-6 mb-6"> <h3 class="text-lg font-semibold text-gray-900 mb-4">🔥 热门工具</h3> <ul class="space-y-3"> <li> <a href="https://app.resumemakeroffer.com/history?from=blog-right-button-92239" class="flex items-center text-gray-700 hover:text-primary transition-colors"> <span class="w-2 h-2 bg-primary rounded-full mr-3"></span> AI简历优化工具 </a> </li> <li> <a href="https://app.resumemakeroffer.com/resume-history?from=blog-right-button-92239" class="flex items-center text-gray-700 hover:text-primary transition-colors"> <span class="w-2 h-2 bg-primary rounded-full mr-3"></span> 在线简历编辑器 </a> </li> <li> <a href="https://app.resumemakeroffer.com/chat/create?from=blog-right-button-92239" rel="nofollow" class="flex items-center text-gray-700 hover:text-primary transition-colors"> <span class="w-2 h-2 bg-primary rounded-full mr-3"></span> AI简历与求职信生成 </a> </li> </ul> </div> <div class="bg-white rounded-2xl shadow-sm p-6 mb-8"> <h3 class="text-lg font-semibold text-gray-900 mb-4">最新文章</h3> <div class="space-y-4"> <a href="/blog/post/92897" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 2025年个人简历(可编辑)范文参考:3份高分模板直接套用 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92896" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 2025年HR最爱!10份高颜值工作简历模板范文参考,直接套用秒拿面试 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92895" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 个人简历模板怎么写:HR最爱的5套高分范文直接套用 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92894" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 工作简历(通用版)范文参考:3份高分模板直接套用 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92893" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 个人简历表格范文参考:5套HR最爱的标准模板直接套用 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92891" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 教师个人简历简短大气范文参考:3篇可直接套用的精英模板 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92890" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 个人简历样本范文参考:5份HR点赞的实战模板直接套用 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92876" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 个人简历模板范文参考:5份HR最爱的高分简历直接套用 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92875" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 2025年HR最爱的10份求职简历模板范文参考,直接套用秒拿面试 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92874" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 个人简历怎么写:HR最爱的5个高分结构+可直接套用的范文参考 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92873" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> # 个人简历(电子版)范文参考:HR最爱的3种高分模板直接套用 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> <a href="/blog/post/92872" class="block group"> <div class="border-l-4 border-gray-200 group-hover:border-primary pl-4 py-2 transition-colors"> <h4 class="font-medium text-gray-900 group-hover:text-primary text-sm mb-1 line-clamp-2"> 个人简历内容怎么写?HR最爱的5个高分范文直接抄 </h4> <div class="flex items-center justify-between text-xs text-gray-500"> <span></span> <span>2025-12-17 23:08:19</span> </div> </div> </a> </div> </div> <div class="bg-white rounded-2xl shadow-sm p-6"> <h3 class="text-lg font-semibold text-gray-900 mb-4">📧 订阅更新</h3> <p class="text-gray-600 text-sm mb-4"> 订阅我们的博客,获取最新的简历优化技巧和求职攻略。 </p> <form class="space-y-3"> <input type="email" placeholder="输入你的邮箱" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"> <button type="submit" class="w-full bg-primary text-white py-2 rounded-lg font-medium hover:bg-secondary transition-colors"> 订阅 </button> </form> </div> </aside> </div> </div> <script> (function () { function slugify(text) { try { var s = (text || "").toString().trim().toLowerCase(); s = s.replace(/\s+/g, "-"); s = s.replace(/[^a-z0-9\-\u4e00-\u9fff]/g, "-"); s = s.replace(/\-+/g, "-").replace(/^\-+|\-+$/g, ""); return s; } catch (e) { return ""; } } function buildTOC() { var container = document.getElementById("article-content"); var toc = document.getElementById("article-toc"); var empty = document.getElementById("article-toc-empty"); if (!container || !toc || !empty) return; var headings = container.querySelectorAll("h2, h3"); if (!headings || headings.length === 0) { empty.classList.remove("hidden"); return; } var used = {}; var list = document.createElement("ul"); list.className = "space-y-2"; headings.forEach(function (h, idx) { var level = h.tagName.toLowerCase(); var title = (h.textContent || "").trim(); if (!title) return; if (!h.id) { var base = slugify(title); if (!base) base = "sec-" + (idx + 1); var id = base; var k = 2; while (used[id] || document.getElementById(id)) { id = base + "-" + k; k++; } used[id] = true; h.id = id; } var li = document.createElement("li"); li.className = level === "h3" ? "ml-4" : ""; var a = document.createElement("a"); a.href = "#" + h.id; a.className = "text-gray-700 hover:text-primary transition-colors"; a.textContent = title; li.appendChild(a); list.appendChild(li); }); toc.innerHTML = ""; toc.appendChild(list); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", buildTOC); } else { buildTOC(); } })(); </script> <footer class="bg-text-dark text-white"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16"> <div class="grid md:grid-cols-5 gap-8"> <div class="md:col-span-1"> <h3 class="text-2xl font-bold mb-4">AI简历姬·在线AI简历生成工具</h3> <p class="text-gray-400 mb-6 leading-relaxed"> AI驱动求职助手,润色优化您的简历,提升求职成功率。 </p> </div> <div> <h4 class="text-lg font-semibold mb-4">产品功能</h4> <ul class="space-y-3 text-gray-400"> <li><a href="https://app.resumemakeroffer.com/home?from=footer" rel="nofollow" class="hover:text-white transition-colors">在线AI简历生成</a></li> <li><a href="https://app.resumemakeroffer.com/chat/perf?from=footer" rel="nofollow" class="hover:text-white transition-colors">AI简历润色</a></li> <li><a href="/resume-history?from=footer" class="hover:text-white transition-colors">我的简历</a></li> <li><a href="/page/resume_translate?from=footer" class="hover:text-white transition-colors">简历翻译</a></li> <li><a href="https://app.resumemakeroffer.com/chat/interview?from=footer" rel="nofollow" class="hover:text-white transition-colors">AI模拟面试</a></li> <li><a href="/resume-examples?from=footer" class="hover:text-white transition-colors">简历模板与范文</a></li> </ul> </div> <div> <h4 class="text-lg font-semibold mb-4">资源与攻略</h4> <ul class="space-y-3 text-gray-400"> <li><a href="/jobradar?from=footer" class="hover:text-white transition-colors">校招信息</a></li> <li><a href="/blog?from=footer" class="hover:text-white transition-colors">求职攻略</a></li> <li><a href="/resume-examples?from=footer" class="hover:text-white transition-colors">简历范文库</a></li> <li><a href="/page/how-to-write-a-resume?from=footer" class="hover:text-white transition-colors">怎么写简历</a></li> <li><a href="/page/how-to-optimize-a-resume?from=footer" class="hover:text-white transition-colors">怎么做简历优化</a></li> <li><a href="/page/auto_fill?from=footer" class="hover:text-white transition-colors">投递插件</a></li> <li><a href="/page/markdown_to_pdf?from=footer" class="hover:text-white transition-colors">Markdown转PDF简历</a></li> <li><a href="/page/html_to_image?from=footer" class="hover:text-white transition-colors">HTML转图片简历</a></li> <li><a href="/page/resume_guidance?from=footer" class="hover:text-white transition-colors">简历指导优化</a></li> <li><a href="/page/interview_coaching?from=footer" class="hover:text-white transition-colors">面试辅导</a></li> <li><a href="/page/career_planning?from=footer" class="hover:text-white transition-colors">职业规划</a></li> </ul> </div> <div> <h4 class="text-lg font-semibold mb-4">帮助指南</h4> <ul class="space-y-3 text-gray-400"> <li><a href="/page/user-guide?from=footer" class="hover:text-white transition-colors">使用指南</a></li> <li><a href="/page/faq?from=footer" class="hover:text-white transition-colors">常见问题</a></li> <li><a href="/page/contact?from=footer" class="hover:text-white transition-colors">联系我们</a></li> </ul> </div> <div> <h4 class="text-lg font-semibold mb-4">友情链接</h4> <ul class="space-y-3 text-gray-400"> <li><a href="https://echotik.live" class="hover:text-white transition-colors" target="_blank" rel="noopener">EchoTik</a></li> <li><a href="https://ruzhiai.perfcloud.cn" class="hover:text-white transition-colors" target="_blank" rel="noopener">如知AI笔记</a></li> <li><a href="https://aiphotoeditor.bekaie.com" class="hover:text-white transition-colors" target="_blank" rel="noopener">AI图像编辑</a></li> </ul> </div> </div> <hr class="border-gray-800 my-8"> <div class="flex flex-col md:flex-row justify-between items-center"> <p class="text-gray-400 mb-4 md:mb-0"> <a href="https://beian.miit.gov.cn/?from=footer" target="_blank" rel="nofollow"> 苏ICP备20027924号-7</a> © 2025 AI简历姬·在线AI简历生成工具与优化润色求职助手。保留所有权利。 </p> <div class="flex space-x-6 text-gray-400 items-center"> <a href="/page/privacy?from=footer" rel="nofollow" class="hover:text-white transition-colors">隐私政策</a> <a href="/page/terms?from=footer" rel="nofollow" class="hover:text-white transition-colors">服务条款</a> <a href="/page/disclaimer?from=footer" rel="nofollow" class="hover:text-white transition-colors">免责声明</a> <div class="relative group"> <button class="flex items-center hover:text-white transition-colors"> <svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path> </svg> <span>Language</span> <svg class="w-4 h-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 15l7-7 7 7"></path> </svg> </button> <div class="absolute bottom-full right-0 mb-2 w-32 bg-gray-800 rounded-lg shadow-xl border border-gray-700 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50"> <div class="py-2"> <a href="/" class="block px-4 py-2 text-gray-300 hover:bg-gray-700 hover:text-white transition-colors">中文</a> <a href="/en/" class="block px-4 py-2 text-gray-300 hover:bg-gray-700 hover:text-white transition-colors">English</a> </div> </div> </div> </div> </div> </div> </footer> <div id="aiGuideModal" class="fixed inset-0 bg-black bg-opacity-60 flex items-center justify-center z-[60] hidden backdrop-blur-sm transition-all duration-300"> <div class="bg-white rounded-2xl shadow-2xl max-w-5xl w-full mx-4 relative transform transition-all duration-500 scale-95 opacity-0" id="aiGuideModalContent"> <button id="closeAiGuideModal" class="absolute -top-3 -right-3 bg-gray-800 text-white rounded-full w-10 h-10 flex items-center justify-center hover:bg-gray-900 transition-all hover:scale-110 shadow-lg z-10"> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> <div class="flex flex-col md:flex-row"> <div class="bg-gradient-to-br from-blue-500 via-blue-600 to-indigo-600 md:w-5/12 p-10 rounded-l-2xl flex flex-col justify-center items-center text-white"> <div class="mb-8"> <svg class="w-24 h-24 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path> </svg> </div> <h3 class="text-3xl font-bold mb-4 text-center">96%用户选择</h3> <p class="text-blue-100 text-center text-base leading-relaxed"> 平均 3 分钟写完简历<br> 获得面试机会增加 68% </p> <div class="mt-8 space-y-3 text-base"> <div class="flex items-center"> <svg class="w-5 h-5 mr-2 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path> </svg> <span>AI生成Word简历模板</span> </div> <div class="flex items-center"> <svg class="w-5 h-5 mr-2 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path> </svg> <span>AI一键优化简历内容</span> </div> <div class="flex items-center"> <svg class="w-5 h-5 mr-2 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path> </svg> <span>导出PDF/Word无水印</span> </div> </div> </div> <div class="md:w-7/12 p-10"> <div class="mb-6"> <span class="inline-block bg-orange-100 text-orange-600 text-xs font-semibold px-3 py-1 rounded-full mb-3"> 🎁 限时免费体验 </span> <h2 class="text-3xl font-bold text-gray-900 mb-3"> 每次投递,必优化简历<br> <span class="text-blue-600">获得更多面试机会</span> </h2> <p class="text-gray-600 leading-relaxed"> 匹配岗位需求,针对性优化简历。<br>现在注册即可免费体验所有功能! </p> </div> <div class="space-y-4"> <a href="https://app.resumemakeroffer.com/chat/perf/?from=guide_modal" rel="nofollow" class="block w-full bg-blue-600 hover:bg-blue-700 text-white font-bold text-lg py-5 px-8 rounded-xl transition-all transform hover:scale-105 shadow-lg hover:shadow-xl text-center"> <span class="flex items-center justify-center"> <svg class="w-6 h-6 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path> </svg> 立即优化简历(免费) </span> </a> <a href="https://app.resumemakeroffer.com/home?from=guide_modal" rel="nofollow" class="block w-full bg-gray-100 hover:bg-gray-200 text-gray-800 font-semibold text-base py-4 px-8 rounded-xl transition-all text-center"> <span class="flex items-center justify-center"> <svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path> </svg> 在线制作简历 </span> </a> </div> <div class="mt-6 pt-6 border-t border-gray-200"> <div class="flex items-center justify-center flex-wrap gap-x-4 gap-y-2 text-xs text-gray-500"> <div class="flex items-center"> <svg class="w-3.5 h-3.5 mr-1 text-green-500" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path> </svg> <span>安全保障</span> </div> <div class="flex items-center"> <svg class="w-3.5 h-3.5 mr-1 text-blue-500" fill="currentColor" viewBox="0 0 20 20"> <path d="M9 6a3 3 0 11-6 0 3 3 0 016 0zM17 6a3 3 0 11-6 0 3 3 0 016 0zM12.93 17c.046-.327.07-.66.07-1a6.97 6.97 0 00-1.5-4.33A5 5 0 0119 16v1h-6.07zM6 11a5 5 0 015 5v1H1v-1a5 5 0 015-5z"></path> </svg> <span>50万+用户</span> </div> <div class="flex items-center"> <svg class="w-3.5 h-3.5 mr-1 text-yellow-500" fill="currentColor" viewBox="0 0 20 20"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> </svg> <span>满意度高</span> </div> </div> </div> <div class="mt-4 text-center"> <button id="remindLater" class="text-sm text-gray-400 hover:text-gray-600 underline transition-colors"> 稍后再说 </button> </div> </div> </div> </div> </div> <div id="wechatModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden"> <div class="bg-white rounded-lg p-6 max-w-sm mx-4 relative"> <button id="closeModal" class="absolute top-2 right-2 text-gray-500 hover:text-gray-700 text-2xl">×</button> <div class="text-center"> <h3 class="text-lg font-semibold mb-4 text-gray-900">扫码添加微信咨询</h3> <img src="https://cdn3.bekaie.com/aijob/assets/pay-yHZZBR-X.jpg" alt="微信二维码" class="w-48 h-48 mx-auto mb-4 rounded-lg"> <p class="text-sm text-gray-600">扫描二维码添加微信,获取专业服务</p> </div> </div> </div> <style> #wechatModal { backdrop-filter: blur(4px); } #wechatModal .bg-white { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } </style> <script> function showWechatModal() { document.getElementById('wechatModal').classList.remove('hidden'); document.body.style.overflow = 'hidden'; } function hideWechatModal() { document.getElementById('wechatModal').classList.add('hidden'); document.body.style.overflow = 'auto'; } document.addEventListener('DOMContentLoaded', function() { const modal = document.getElementById('wechatModal'); const closeBtn = document.getElementById('closeModal'); if (closeBtn) { closeBtn.addEventListener('click', hideWechatModal); } if (modal) { modal.addEventListener('click', function(e) { if (e.target === modal) { hideWechatModal(); } }); } document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && !modal.classList.contains('hidden')) { hideWechatModal(); } }); }); </script> <script> (function() { const MODAL_STORAGE_PREFIX = 'aiGuideModalShown_'; const MODAL_DELAY = 3000; const MODAL_EXPIRE_MINUTES = 5; function getStorageKey() { const path = window.location.pathname; return MODAL_STORAGE_PREFIX + encodeURIComponent(path); } function shouldShowModal() { const storageKey = getStorageKey(); const lastShown = localStorage.getItem(storageKey); if (!lastShown) return true; const minutesSinceShown = (Date.now() - parseInt(lastShown)) / (1000 * 60); return minutesSinceShown >= MODAL_EXPIRE_MINUTES; } function markModalAsShown() { const storageKey = getStorageKey(); localStorage.setItem(storageKey, Date.now().toString()); } function showModal() { const modal = document.getElementById('aiGuideModal'); const content = document.getElementById('aiGuideModalContent'); if (!modal || !content) return; modal.classList.remove('hidden'); document.body.style.overflow = 'hidden'; setTimeout(() => { content.classList.remove('scale-95', 'opacity-0'); content.classList.add('scale-100', 'opacity-100'); }, 10); markModalAsShown(); } function hideModal() { const modal = document.getElementById('aiGuideModal'); const content = document.getElementById('aiGuideModalContent'); if (!modal || !content) return; content.classList.add('scale-95', 'opacity-0'); content.classList.remove('scale-100', 'opacity-100'); setTimeout(() => { modal.classList.add('hidden'); document.body.style.overflow = 'auto'; }, 300); } document.addEventListener('DOMContentLoaded', function() { if (shouldShowModal()) { setTimeout(showModal, MODAL_DELAY); } const closeBtn = document.getElementById('closeAiGuideModal'); if (closeBtn) { closeBtn.addEventListener('click', hideModal); } const remindBtn = document.getElementById('remindLater'); if (remindBtn) { remindBtn.addEventListener('click', hideModal); } const modal = document.getElementById('aiGuideModal'); if (modal) { modal.addEventListener('click', function(e) { if (e.target === modal) { hideModal(); } }); } document.addEventListener('keydown', function(e) { if (e.key === 'Escape') { const modal = document.getElementById('aiGuideModal'); if (modal && !modal.classList.contains('hidden')) { hideModal(); } } }); }); })(); </script> <script> (function(){ try { var pref = localStorage.getItem('pref_lang'); if (pref) return; var path = location.pathname; var isEN = path && path.startsWith('/en/'); var userLang = (navigator.language || navigator.userLanguage || 'en').toLowerCase(); var ua = navigator.userAgent || ''; if (/bot|crawl|spider|slurp|bingpreview/i.test(ua)) return; var probablyZH = userLang.startsWith('zh'); var showSuggestToZH = isEN && probablyZH; var showSuggestToEN = !isEN && !probablyZH; if (!showSuggestToZH && !showSuggestToEN) return; function mapTo(lang){ var map = window.HREFLANG_MAP || {}; if (lang === 'en') { return map[path] && map[path].en ? map[path].en : '/en/'; } else { return map[path] && map[path].zh ? map[path].zh : '/'; } } var banner = document.getElementById('lang-banner'); if (!banner) return; var text = document.getElementById('lang-text'); var link = document.getElementById('lang-switch'); var close = document.getElementById('lang-close'); if (showSuggestToZH) { text.textContent = '检测到你的浏览器为中文,要切换到中文站吗?'; link.textContent = '切换到中文'; link.href = mapTo('zh'); } else if (showSuggestToEN) { text.textContent = 'It looks like your browser is in English. Switch to the English site?'; link.textContent = 'Switch to English'; link.href = mapTo('en'); } banner.style.display = 'block'; link.addEventListener('click', function(){ localStorage.setItem('pref_lang', showSuggestToZH ? 'zh' : 'en'); }); close.addEventListener('click', function(e){ e.preventDefault(); localStorage.setItem('pref_lang', isEN ? 'en' : 'zh'); banner.remove(); }); } catch(e){} })(); </script> <script> document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector(this.getAttribute('href')); if (target) { target.scrollIntoView({ behavior: 'smooth' }); } }); }); let lastScroll = 0; window.addEventListener('scroll', () => { const currentScroll = window.pageYOffset; const header = document.querySelector('header'); if (currentScroll > 100) { header.classList.add('shadow-md'); } else { header.classList.remove('shadow-md'); } lastScroll = currentScroll; }); const mobileMenuButton = document.getElementById('mobile-menu-button'); const mobileMenu = document.getElementById('mobile-menu'); if (mobileMenuButton && mobileMenu) { mobileMenuButton.addEventListener('click', function() { mobileMenu.classList.toggle('hidden'); }); } const mobileDropdownBtns = document.querySelectorAll('.mobile-dropdown-btn'); mobileDropdownBtns.forEach(btn => { btn.addEventListener('click', function() { const content = this.nextElementSibling; const arrow = this.querySelector('svg'); content.classList.toggle('hidden'); arrow.classList.toggle('rotate-180'); mobileDropdownBtns.forEach(otherBtn => { if (otherBtn !== this) { const otherContent = otherBtn.nextElementSibling; const otherArrow = otherBtn.querySelector('svg'); otherContent.classList.add('hidden'); otherArrow.classList.remove('rotate-180'); } }); }); }); document.addEventListener('click', function(event) { if (mobileMenu && !mobileMenu.contains(event.target) && !mobileMenuButton.contains(event.target)) { mobileMenu.classList.add('hidden'); } }); window.addEventListener('resize', function() { if (window.innerWidth >= 768 && mobileMenu) { mobileMenu.classList.add('hidden'); } }); const dropdownContainers = document.querySelectorAll('.dropdown-container'); let activeDropdown = null; let hideTimeout = null; dropdownContainers.forEach(container => { const trigger = container.querySelector('.dropdown-trigger'); const menu = container.querySelector('.dropdown-menu'); const arrow = trigger.querySelector('svg'); if (!trigger || !menu) return; function showDropdown() { if (hideTimeout) { clearTimeout(hideTimeout); hideTimeout = null; } dropdownContainers.forEach(otherContainer => { if (otherContainer !== container) { const otherMenu = otherContainer.querySelector('.dropdown-menu'); const otherArrow = otherContainer.querySelector('.dropdown-trigger svg'); if (otherMenu) { otherMenu.classList.remove('opacity-100', 'visible'); otherMenu.classList.add('opacity-0', 'invisible'); } if (otherArrow) { otherArrow.classList.remove('rotate-180'); } } }); menu.classList.remove('opacity-0', 'invisible'); menu.classList.add('opacity-100', 'visible'); arrow.classList.add('rotate-180'); activeDropdown = container; } function hideDropdown() { hideTimeout = setTimeout(() => { menu.classList.remove('opacity-100', 'visible'); menu.classList.add('opacity-0', 'invisible'); arrow.classList.remove('rotate-180'); activeDropdown = null; hideTimeout = null; }, 250); } function cancelHide() { if (hideTimeout) { clearTimeout(hideTimeout); hideTimeout = null; } } trigger.addEventListener('mouseenter', showDropdown); trigger.addEventListener('mouseleave', hideDropdown); menu.addEventListener('mouseenter', cancelHide); menu.addEventListener('mouseleave', hideDropdown); const bridgeArea = container.children[1]; if (bridgeArea) { bridgeArea.addEventListener('mouseenter', cancelHide); bridgeArea.addEventListener('mouseleave', hideDropdown); } }); document.addEventListener('click', function(event) { if (activeDropdown && !activeDropdown.contains(event.target)) { const menu = activeDropdown.querySelector('.dropdown-menu'); const arrow = activeDropdown.querySelector('.dropdown-trigger svg'); if (menu) { menu.classList.remove('opacity-100', 'visible'); menu.classList.add('opacity-0', 'invisible'); } if (arrow) { arrow.classList.remove('rotate-180'); } activeDropdown = null; if (hideTimeout) { clearTimeout(hideTimeout); hideTimeout = null; } } }); }); </script> </body> </html>