我们是如何构建 MyResume 的:永不过时的简历(以及我们从零创建 SaaS 中学到的一切)
Source: Dev.to
介绍
简历不再是 PDF。它变成了一个链接。
你好,Dev Community!
我是 Sérgio,MyResume 的开发者兼联合创始人。
这个项目诞生是为了解决我(以及几乎所有我认识的开发者)一直以来的一个问题:简历带来的头疼。
无论你是寻找第一份工作的初级开发者,还是换技术栈的高级开发者,管理简历的过程都糟透了:
- 发送简历后发现它已经过时。
- 在邮箱里寻找丢失的 PDF。
- 在 Word、Drive、手机上布局错乱。
挫败感如此之大,以至于我们决定构建一些既简单又强大的东西:
- 在线简历且始终在线:始终保持最新,可通过唯一链接和二维码访问。
- 自定义域名(Custom URL):更专业的一步。例如:
myresume.com.br/sergio-gabriel。 - 多语言支持,面向全球,可生成其他语言的版本且保持完整一致性。
- 无需每次都导出 PDF。
- 简洁、快速且对 ATS 友好的模板。
想看最终效果,我的个人简历 100 % 在 MyResume 上。
欢迎随意查看并对用户体验提出意见:
我们真正想要解决的问题(以及为何它不仅仅是 PDF)
“如何帮助他人拥有一份美观、最新、易于分享且无需依赖文件,同时还能通过机器人筛选的简历?”
从这个问题出发,形成了指导我们开发的 3 大支柱:
- 公开的个人页面,像专业的“名片”。
- 简洁且 100 % ATS 友好的模板(招聘者和机器人都要喜欢)。
- 快速、直观且完全在线的编辑。
我们使用的技术栈(以及 Render 的惊喜)
- 前端: React + Vite(开发速度快)。
- UI/样式: Tailwind + 自定义组件(独特模板)。
- API: ASP.NET Core(C#)。
- 认证: Google OAuth + JWT。
- 数据库: PostgreSQL。
- 基础设施: Render + 辅助项目(免费层在初期表现惊人,尤其适用于预发布和小型 API)。
- 支付: Stripe。
- PDF 引擎: 自研方案,模板动态生成。
UX 最大挑战:简历编辑
我们在 MVP 中发现了一个关键点:人们讨厌填写简历。并不是因为它难,而是因为在一个过时的表单中审阅和重写自己的职业经历非常耗费精力。
我们投入数周时间打造极简 UI,重点放在进度上:
- 每个章节使用卡片: 减少滚动,提升专注。
- 快速引导: 用户在不到 1 分钟内完成基本设置。
- 即时预览: WYSIWYG(所见即所得)至关重要。
我们的 UX 目标:“让简历编辑体验更像使用现代应用,而不是庞大的 HR 表单。”
关于 SaaS 的技术经验(没人会告诉你的)
1. 生成 PDF 是小终极 Boss
生成一份美观、响应式、支持 UTF‑8、分页可靠且与打印效果完全一致的 PDF 要比想象中困难得多。没有魔法库;每个模板都需要手动细化数十次,以确保像素级的忠实度。
2. ATS‑友好 ≠ 丑陋设计
优雅与简洁可以兼得。结构良好的 CSS 与干净的语义化标记,使简历既美观又兼容候选人追踪系统。
3. 性能(延迟)非常重要
简历的使用是高摩擦的时刻:用户进入、编辑、导出并离开(或分享链接)。页面必须几乎瞬间加载。前端使用 React + Vite,后端使用 ASP.NET Core,提供了所需的性能。
4. 移动优先不是可选项
超过 55 % 的用户在手机上编辑简历。这迫使我们对设计进行彻底重构,确保移动体验不仅功能完整,而且舒适。
未来规划(以及我们为何如此激动)
MyResume 起初是为了解决个人问题的工具——但它正演变为更大的东西:一个助力职业发展的生态系统。
🧭 真正免费的人才库
我们想改变那些向招聘方收取高额费用的平台现状。很快,招聘方将能够免费探索人才,使用强大的过滤器,在没有中介的情况下扩大机会。
🧠 AI 让你的简历更强大
我们正在开发 AI,能够:
- 建议文本改进;
- 生成职业摘要;
- 突出缺失