我如何使用 Antigravity 构建 ATS 优化的 AI 作品集:从 Nginx 地狱到 Cloud Run
Source: Dev.to
关于我
我叫 Veríssimo Cassange,是一名居住在安哥拉卢安达的 AI 软件工程师 🇦🇴。我一直对技术架构如何推动社会影响充满热情。我的日常工作通常涉及 Python、机器学习,并且经常向家人解释为什么 基础设施即代码 实际上很有趣。
在这次挑战中,我不只想要一个“好看”的站点。我想要一个像特洛伊木马一样的作品集——对人类招聘者看起来高大上,同时又能完美匹配 ATS(Applicant Tracking Systems),这些系统常常在有才华的工程师有机会之前就把他们过滤掉。
作品集
我把应用部署到了 Google Cloud Run。你可以在这里查看线上版本:
🔗 Live Portfolio:
我的构建过程
“ATS 算法”策略
我把作品集当作一个数据丰富的文档来处理。与其仅列出项目,我直接在元数据和描述中嵌入了特定关键词——生成式 AI、RAG、Docker、CI/CD。
GitHub API 并不提供项目背后的“为什么”,所以我手动为仓库数据添加了自定义目标和技术标签。我构建了一个本地清单系统,以丰富从 GitHub 获取的数据。
技术栈
- 前端:React 19 + Vite
- 样式:Tailwind CSS 4(玻璃拟态外观,兼顾可访问性)
- 动画:Framer Motion(例如平滑滚动进度条 BPROGRESS)
- 部署:Docker + Google Cloud Run
Google AI 副驾驶
我使用 Antigravity(Google 的 AI‑first 开发环境)作为我的第二大脑。它并不是“点一下按钮,得到一个站点”;更像是身边有一位资深工程师。
举例来说,Antigravity 帮我使用 nanobanana Pro 为所有项目生成统一、专业的缩略图,并在视觉风格上不断迭代,直至匹配统一品牌。
我最自豪的地方
1. 为 Cloud Run 破解(并修复)Docker
部署是最大痛点。我想以非 root 用户运行 Nginx 以提升安全性,但 Cloud Run 的文件系统限制导致在操作 /var/cache/nginx 时出现权限错误。经过数小时调试,我把 nginx.conf 改写为使用 /tmp 存放 PID 和临时文件。
# Fixing permissions for a non‑root Nginx user
RUN mkdir -p /var/cache/nginx /tmp/nginx && \
chown -R nginx:nginx /var/cache/nginx /tmp/nginx && \
chmod -R 755 /var/cache/nginx /tmp/nginx
在 Google Cloud 控制台看到 “Service is Healthy” 勾选框出现的那一刻,感觉非常有成就感。
2. 项目模态系统
我没有直接把访客重定向到 GitHub,而是构建了一个模态系统,在用户决定查看代码之前先提供一次快速的技术深度解析(技术栈、目标、挑战)。这保持了高互动率。
3. 本地化与影响力
作为卢安达人,我在作品集中突出了与 Frontier Tech Leaders – Angola 的合作,以确保作品集既体现本地背景,又展示全球技术标准。
关键收获
- AI 作为副驾驶:使用 Antigravity 改变了我的调试方式。不再去 StackOverflow 搜索,而是拥有一个上下文感知的助手,帮助我优化 Docker 多阶段构建。
- 结构很重要:ATS 优化不仅是“关键词堆砌”——更在于语义化 HTML。正确使用
‑与精简的 DOM 至关重要。 - 权衡取舍:我选择 Nginx 而非简单的 Node 服务器,以获得更好的响应头和压缩控制,尽管这意味着要与 Cloud Run 的文件系统限制斗争。