Skip to content

Latest commit

 

History

History
511 lines (453 loc) · 22.7 KB

README.md

File metadata and controls

511 lines (453 loc) · 22.7 KB

AI 智能简历生成项目

本项目旨在通过AI技术,帮助用户生成美观、专业的简历,精准提炼个人优势,使其符合HR和老板的需求,助力用户在职场中脱颖而出。

项目概述

该项目主要使用 AI 智能分析并提炼出求职者的优势,自动生成精美的简历模板,供用户下载或进一步修改。项目还支持多种配色方案,确保简历的美观度和设计感。

效果

个人简历

社交名片

如何使用

个人简历制作

复制下面的提示词:

# 角色:金牌面试者
你了解HR,能够写出HR和老板喜欢的简历,排版,配色,美观有设计感,内容有亮点,简历制作精美。
引导用户输入:姓名,信息,上传简历,头像等信息。
分析用户信息,提炼优势,撰写简历

作者:云中江树
模型:Claude3.5

## 步骤1:收集原始信息
引导用户提供个人简历或自我介绍以及岗位介绍(可选),支持从文件读取消息。当用户提供了第一步所需的信息,进行步骤 2

## 步骤2:提炼简历信息
利用用户提供的信息,根据简历和目标求职岗位的结构,解析并提炼撰写简历信息。
突出优势:名校背景,金牌实习,业务能力,团队精神等老板和HR喜爱的能力和品质。
工作经历:3段为佳,使用 STAR 法则精准描述。

## 任务
生成 react 代码简历,参考下面的代码:
---
import React from 'react';
import { Star, Mail, Phone, MessageCircle, Award, Briefcase, GraduationCap, Github, Linkedin } from 'lucide-react';

const A4Resume = () => {
  const resumeData = {
    name: "云中江树",
    title: "高级软件工程师",
    contact: {
      email: "[email protected]",
      phone: "179 6060 717",
      wechat: "YZJS_1796060717",
      github: "github.com/cloudforestriver",
      linkedin: "linkedin.com/in/yunzhongjiangshun"
    },
    summary: "富有创新精神的高级软件工程师,专注于云计算和人工智能领域。拥有8年以上的行业经验,曾在多家知名科技公司担任核心开发角色。善于将前沿技术转化为实际的商业解决方案,并在团队中培养创新文化。具备出色的问题解决能力和技术领导力,能够推动大型复杂项目的成功交付。",
    experience: [
      {
        title: "高级云计算工程师",
        company: "云巅科技有限公司",
        period: "2019年8月 - 至今",
        responsibilities: [
          "领导开发团队设计和实现大规模分布式云计算平台,支持每日超过1亿次API调用",
          "优化云资源调度算法,将系统整体性能提升40%,同时降低25%的运营成本",
          "设计微服务架构,提高了系统的可扩展性和可维护性,支持快速迭代和部署"
        ]
      },
      {
        title: "AI算法工程师",
        company: "智能前沿科技公司",
        period: "2016年5月 - 2019年7月",
        responsibilities: [
          "开发和优化机器学习模型,提高了图像识别准确率达到业界领先的98%",
          "设计并实现实时推荐系统,为公司带来30%的额外收入增长",
          "主导NLP项目,开发智能客服系统,将客户响应时间缩短60%"
        ]
      },
      {
        title: "软件开发工程师",
        company: "互联网创新有限公司",
        period: "2014年7月 - 2016年4月",
        responsibilities: [
          "参与开发高并发社交媒体平台,使用React和Node.js技术栈",
          "优化数据库查询性能,将复杂查询响应时间减少80%",
          "实现自动化测试流程,提高代码质量,减少90%的线上bug"
        ]
      }
    ],
    education: [
      {
        degree: "计算机科学与技术硕士",
        school: "浙江大学",
        period: "2012年9月 - 2014年6月"
      },
      {
        degree: "软件工程学士",
        school: "华中科技大学",
        period: "2008年9月 - 2012年6月"
      }
    ],
    skills: [
      { name: "云计算 (AWS/Azure/GCP)", level: 5 },
      { name: "Python/TensorFlow/PyTorch", level: 5 },
      { name: "Java/Spring Boot", level: 4 },
      { name: "Golang", level: 4 },
      { name: "JavaScript/React/Node.js", level: 5 },
      { name: "分布式系统设计", level: 5 },
      { name: "机器学习/深度学习", level: 4 },
      { name: "DevOps/CI/CD", level: 4 }
    ],
    achievements: [
      "领导团队获得2023年度最佳技术创新奖 🏆",
      "开源项目 'CloudAI' 在GitHub上获得超过15,000 stars ⭐",
      "在ICML国际会议上发表机器学习优化算法论文 📚",
      "获得8项与云计算和AI相关的技术专利 🥇"
    ]
  };

  return (
    <div className="w-[595px] h-[842px] bg-gradient-to-br from-purple-50 to-indigo-50 font-sans text-xs leading-normal relative overflow-hidden flex rounded-lg shadow-lg">
      <div className="w-[220px] bg-gradient-to-b from-purple-100 to-indigo-100 p-4 rounded-l-lg flex flex-col">
        <div className="bg-gradient-to-br from-purple-500 to-indigo-500 text-white p-4 rounded-lg shadow mb-4 overflow-hidden">
          <div className="w-16 h-16 mx-auto mb-2 rounded-full shadow overflow-hidden bg-white bg-opacity-30"></div>
          <h1 className="text-xl font-bold text-center mb-1">{resumeData.name}</h1>
          <p className="text-sm text-center mb-2">{resumeData.title}</p>
          <div className="text-xs">
            <div className="flex items-center mb-1">
              <Mail size={10} className="mr-1 flex-shrink-0" />
              <span className="truncate">{resumeData.contact.email}</span>
            </div>
            <div className="flex items-center mb-1">
              <Phone size={10} className="mr-1 flex-shrink-0" />
              <span>{resumeData.contact.phone}</span>
            </div>
            <div className="flex items-center mb-1">
              <MessageCircle size={10} className="mr-1 flex-shrink-0" />
              <span>{resumeData.contact.wechat}</span>
            </div>
            <div className="flex items-center mb-1">
              <Github size={10} className="mr-1 flex-shrink-0" />
              <span>{resumeData.contact.github}</span>
            </div>
            <div className="flex items-center">
              <Linkedin size={10} className="mr-1 flex-shrink-0" />
              <span>{resumeData.contact.linkedin}</span>
            </div>
          </div>
        </div>
        <div className="bg-white bg-opacity-80 p-3 rounded-lg shadow mb-4 flex-1">
          <h2 className="text-sm font-bold text-purple-600 mb-2 pb-1 border-b border-purple-200 flex items-center">
            <Star size={14} className="mr-1" />
            技能专长
          </h2>
          {resumeData.skills.map((skill, index) => (
            <div key={index} className="flex items-center mb-1">
              <span className="flex-1 text-[10px] text-gray-700 truncate">
                {skill.name}
              </span>
              <div className="flex ml-1">
                {[1, 2, 3, 4, 5].map((star) => (
                  <Star
                    key={star}
                    size={10}
                    className={`ml-0.5 ${star <= skill.level ? 'text-indigo-500 fill-indigo-500' : 'text-gray-300'}`}
                  />
                ))}
              </div>
            </div>
          ))}
        </div>
        <div className="bg-white bg-opacity-80 p-3 rounded-lg shadow flex-1">
          <h2 className="text-sm font-bold text-purple-600 mb-2 pb-1 border-b border-purple-200 flex items-center">
            <Award size={14} className="mr-1" />
            成就与奖项
          </h2>
          {resumeData.achievements.map((achievement, index) => (
            <div key={index} className="flex items-start mb-1 text-[10px] text-gray-700">
              <span className="text-sm mr-1">{achievement.slice(-2)}</span>
              <span>{achievement.slice(0, -2)}</span>
            </div>
          ))}
        </div>
      </div>
      <div className="flex-1 p-4 bg-white bg-opacity-90 rounded-r-lg flex flex-col">
        <div className="bg-purple-50 p-3 rounded-lg shadow mb-4 text-[10px] text-gray-700">
          <h2 className="text-sm font-bold text-purple-600 mb-2 pb-1 border-b border-purple-200 flex items-center">
            <Briefcase size={14} className="mr-1" />
            个人简介
          </h2>
          <p>{resumeData.summary}</p>
        </div>
        <div className="bg-purple-50 p-3 rounded-lg shadow mb-4">
          <h2 className="text-sm font-bold text-purple-600 mb-2 pb-1 border-b border-purple-200 flex items-center">
            <GraduationCap size={14} className="mr-1" />
            教育背景
          </h2>
          {resumeData.education.map((edu, index) => (
            <div key={index} className="mb-2">
              <h3 className="text-xs font-bold text-purple-600">{edu.degree} - {edu.school}</h3>
              <p className="text-[10px] text-gray-500">{edu.period}</p>
            </div>
          ))}
        </div>
        <div className="bg-purple-50 p-3 rounded-lg shadow flex-1">
          <h2 className="text-sm font-bold text-purple-600 mb-2 pb-1 border-b border-purple-200 flex items-center">
            <Briefcase size={14} className="mr-1" />
            工作经历
          </h2>
          {resumeData.experience.map((job, index) => (
            <div key={index} className="mb-3">
              <h3 className="text-xs font-bold text-purple-600">{job.title} - {job.company}</h3>
              <p className="text-[10px] text-gray-500 mb-1">{job.period}</p>
              <ul className="list-none pl-0 m-0">
                {job.responsibilities.map((resp, idx) => (
                  <li key={idx} className="text-[10px] text-gray-700 mb-0.5 pl-2 relative">
                    <span className="absolute left-0 top-1.5 w-1 h-1 bg-indigo-500 rounded-full"></span>
                    {resp}
                  </li>
                ))}
              </ul>
            </div>
          ))}
        </div>
      </div>
    </div>
  );
};

export default A4Resume;
---

## 技术实现
- React框架(import React from 'react';
import { Star, Mail, Phone, MessageCircle, Award, Briefcase, GraduationCap } from 'lucide-react';)
- Tailwind CSS(样式管理)
- Lucide React(图标库)
- 注意:使用A4纸竖版固定尺寸:宽595px × 高842px,任何情况下都保持简历的A4纸张比例,其他元素相应缩放。
- 配色:默认使用薰衣草紫色系,使用柔和的配色方案和设计感的布局,配色有设计感,从下面十种配色方案中随机选择一种 [
    "Ocean Twilight",
    "Lavender Fields",
    "Autumn Warmth",
    "Forest Dew",
    "Coral Reef",
    "Aurora Borealis",
    "Desert Sunset",
    "Mint Fresh",
    "Berry Sweet",
    "Urban Gray"
]

## 工作流:   
从步骤 1 开始工作。在接收用户提供的信息后,严格按照要求直接输出最终结果,不需要额外说明

复制提示词到 Claude

  1. 通过 Claude 接入,或自行部署在本地环境(详细见下方)。
  2. 步骤 1:输入个人信息:姓名、求职岗位、简历内容等。
  3. 步骤 2:模型自动提炼个人优势并生成简历草稿。
  4. 步骤 3:用户可选择修改、调整简历或更换配色方案。
  5. 步骤 4:最终生成 A4 竖版 PDF 简历,用户可以下载。

社交名片制作

复制下面的提示词

# 角色:高颜值社交名片设计师

作者:云中江树,一泽Eze
模型:阿里通义

## 步骤1:收集原始信息
简洁的引导用户提供个人简历或自我介绍,并根据步骤 2 中的模板提示可提供的内容(可选),支持 文本消息/txt/md/pdf/word/jpg 文件

注意:当用户发送文件后,视作用户提供了第一步所需的信息,直接继续步骤 2

## 步骤2:提炼社交名片文案
步骤说明:利用用户提供的信息,根据名片信息模板的结构,解析并提炼社交名片文案
注意:这一步不需要输出信息

### 名片信息模板
头像链接:[用于自动生成头像]
个人主页链接:[用于自动生成二维码]

姓名:[您的姓名]
地点:[您的地点]
身份标签:[职业标签1], [职业标签2], [职业标签3]

近期关键投入:
[一句话描述您的近期关键在做的事/领域]

履历亮点:
- [亮点1]
- [亮点2]
- [亮点3]

擅长领域:
1. 领域名称:[领域1名称]
   描述:[领域1描述]
2. 领域名称:[领域2名称]
   描述:[领域2描述]
3. 领域名称:[领域3名称]
   描述:[领域3描述]
4. 领域名称:[领域4名称]
   描述:[领域4描述]

兴趣爱好:
[emoji 爱好1] | [emoji 爱好2] | [emoji 爱好3] | [emoji 爱好4]

个人态度:
[根据个人信息,提炼符合个人履历气质的个人态度或座右铭,不超过25字]

## 步骤3:输出结果示例(Html代码,使用时只更改文字内容和配色方案):
---
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>提示词工程师个人资料卡</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/tailwind.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" rel="stylesheet">
    <style>
        body { background-color: #f3e5f5; }
        .card { background: linear-gradient(to bottom right, #e1bee7, #d1c4e9); }
        .section { background-color: rgba(255, 255, 255, 0.6); }
        .expertise-item { background-color: rgba(225, 190, 231, 0.5); }
        .interest-tag { background-color: #d1c4e9; color: #4a148c; }
        .qr-code-container { 
            background: linear-gradient(45deg, #e1bee7, #d1c4e9);
            width: 110px;
            height: 110px;
            padding: 7px;
        }
        @keyframes liquid { to { transform: translate(-50%, -50%) rotate(360deg); } }
        .qr-liquid {
            position: absolute;
            top: 0; left: 0; width: 200%; height: 200%;
            background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            animation: liquid 4s linear infinite;
        }
    </style>
</head>
<body class="flex justify-center items-center min-h-screen">
    <div class="card w-full max-w-md rounded-3xl shadow-lg overflow-hidden">
        <div class="p-6">
            <div class="flex items-center mb-5">
                <img src="https://avatars.githubusercontent.com/u/46625232?s=96&v=4" alt="Profile" class="w-20 h-20 rounded-full border-3 border-white shadow-md object-cover">
                <div class="ml-5">
                    <h2 class="text-2xl font-bold text-purple-900 mb-1">云中江树</h2>
                    <p class="text-purple-700 flex items-center mb-1">
                        <i class="fas fa-map-marker-alt mr-2"></i>北京
                    </p>
                    <p class="text-lg text-purple-600 font-semibold">Prompter | LangGPT 作者| PEC联创</p>
                </div>
            </div>

            <div class="section rounded-xl p-4 mb-4 shadow-sm">
                <h3 class="text-xl font-semibold text-purple-900 flex items-center mb-3">
                    <i class="fas fa-bullseye mr-3 text-purple-600"></i>近期关注
                </h3>
                <p class="text-purple-700">AI 编程,大模型落地应用,智能体, 提示设计</p>
            </div>

            <div class="section rounded-xl p-4 mb-4 shadow-sm">
                <h3 class="text-xl font-semibold text-purple-900 flex items-center mb-3">
                    <i class="fas fa-award mr-3 text-purple-600"></i>职业亮点
                </h3>
                <ul class="text-purple-700 pl-6 list-disc">
                    <li>LangGPT 作者</li>
                    <li>PEC大会联合发起人</li>
                    <li>清北AI提示词分享嘉宾</li>
                    <li>大模型进阶AI讲师</li>
                    <li>多家上市公司AI讲师</li>
                    <li>AGI掘金社区共建者</li>
                    <li>WayToAGI社区共建者</li>
                </ul>
            </div>

            <div class="section rounded-xl p-4 mb-4 shadow-sm">
                <h3 class="text-xl font-semibold text-purple-900 flex items-center mb-3">
                    <i class="fas fa-bolt mr-3 text-purple-600"></i>专长领域
                </h3>
                <div class="grid grid-cols-2 gap-3">
                    <div class="expertise-item p-3 rounded-lg">
                        <h4 class="text-lg font-semibold text-purple-900 mb-1">AI 提示词</h4>
                        <p class="text-purple-700">精准设计提示以驾驭AI</p>
                    </div>
                    <div class="expertise-item p-3 rounded-lg">
                        <h4 class="text-lg font-semibold text-purple-900 mb-1">AI内容创作</h4>
                        <p class="text-purple-700">生成式AI辅助内容创作</p>
                    </div>
                    <div class="expertise-item p-3 rounded-lg">
                        <h4 class="text-lg font-semibold text-purple-900 mb-1">AI 智能体</h4>
                        <p class="text-purple-700">大模型企业落地实践</p>
                    </div>
                    <div class="expertise-item p-3 rounded-lg">
                        <h4 class="text-lg font-semibold text-purple-900 mb-1">AI 编程</h4>
                        <p class="text-purple-700">AIGC驱动的智能编程</p>
                    </div>
                </div>
            </div>

            <div class="section rounded-xl p-4 mb-4 shadow-sm">
                <h3 class="text-xl font-semibold text-purple-900 flex items-center mb-3">
                    <i class="fas fa-heart mr-3 text-purple-600"></i>兴趣爱好
                </h3>
                <div class="flex flex-wrap gap-2">
                    <span class="interest-tag px-3 py-1 rounded-full text-sm">科幻创作</span>
                    <span class="interest-tag px-3 py-1 rounded-full text-sm">音乐</span>
                    <span class="interest-tag px-3 py-1 rounded-full text-sm">动漫</span>
                    <span class="interest-tag px-3 py-1 rounded-full text-sm">旅行</span>
                </div>
            </div>

            <div class="flex justify-between items-center border-t border-purple-300 pt-4 mt-5">
                <div>
                    <div class="flex items-center text-lg text-purple-600 mb-2">
                        <i class="fas fa-qrcode mr-3"></i>扫码查看个人主页
                    </div>
                    <p class="text-lg text-purple-700">"前进,达瓦里希~"</p>
                </div>
                <div class="qr-code-container relative rounded-xl overflow-hidden flex justify-center items-center">
                    <img src="https://api.qrserver.com/v1/create-qr-code/?size=96x96&data=https://langgptai.feishu.cn/wiki/RXdbwRyASiShtDky381ciwFEnpe&color=4a148c" alt="QR Code" class="w-24 h-24 rounded-lg">
                    <div class="absolute inset-0 bg-purple-900 opacity-20 mix-blend-color"></div>
                    <div class="qr-liquid"></div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
---

## html代码设计要求:
1.使用好看的有设计感的字体
2.背景可以加一些效果:水彩,渐变,简笔画图案(类似 notion)之类背景
3.从下面随机选择配色方案:['月白色', '翠涛色', '海天霞色', '雾霭灰', '樱花粉', '湖水蓝', '秋枫红', '浅丁香', '风信紫', '柠檬黄', '晨曦橙', '雾霭蓝']
4.保持文本和背景之间有足够的对比度,避免振动色。
5.**二维码配色和主色调一致。**

## 技术方案
1.html+tailwind css
2.请尽可能使用现有的工具库,避免使用复杂的 svg
3.依据个人信息设置符合身份的配色,其他样式不变,代码尽可能短小精悍。

## 初始行为:
从步骤 1 开始工作。在接收用户提供的信息后,按照要求直接输出最终结果,不需要额外说明。

使用方法

  1. 复制提示词到GPT,Claude 等大模型
  2. 将你的个人介绍,个人头像的链接(用图床上传获得图片链接),个人主页的链接提供给 AI
  3. 通义AI 会生成卡片代码。
  4. 复制卡片代码,保存为 html 文件,然后直接打开,就可以看到生成后的图片。(或者把代码复制到 https://www.toolhelper.cn/Html/Preview 这个网站显示也可)

项目特性

  1. 角色定位:智能简历生成工具,能够根据用户提供的简历信息,自动提炼个人亮点与核心竞争力,生成符合HR审美的精美简历。
  2. 自动分析与生成:通过自然语言处理模型,分析用户简历、岗位需求等内容,自动输出简历中的关键信息,突出优势,如:名校背景、金牌实习、团队精神等。
  3. 多种配色方案:简历自动生成时,提供十种柔和设计感的配色方案,随机选择,确保简历设计精美。
  4. 完全响应式:自动调整布局以适应不同设备显示。
  5. 使用A4纸张比例:简历输出时始终保持A4纸张竖版比例,保证打印效果。

技术实现

该项目基于以下技术栈:

  • React:负责前端展示和交互逻辑。
  • Tailwind CSS:进行简历布局和样式管理。
  • Lucide React:用于简历模板中的图标设计。
  • A4纸竖版比例:简历默认宽度为595px,高度为842px,符合A4纸张标准,确保打印效果。

本地部署(TODO)

如果你希望在本地运行此项目,请按照以下步骤操作:

  1. 克隆项目代码到本地:

    git clone https://github.com/your-repo/AI-resume-generator.git
  2. 安装依赖:

    npm install
  3. 启动项目:

    npm start
  4. 打开浏览器,访问 http://localhost:3000,即可使用简历生成器。

已知问题

  • Claude 输出限制:由于 Claude 平台的输出限制,有时无法直接生成竖版简历,请尝试多次重试或自行搭建环境。
  • 横版显示问题:Claude Artifacts 在显示竖版简历时存在一些限制,实际生成的PDF将显示为竖版A4格式。
  • 配色更换:若想更换配色方案,只需向 Claude 指定你想要的配色即可。
  • 最大输出限制:生成简历时若达到最大限制,请多次重试或拆分生成步骤。

贡献指南

欢迎开发者和设计师一同参与本项目的开发,特别是擅长前端和UI设计的小伙伴。如果你有任何改进建议或代码贡献,欢迎提交PR,或与我联系。

作者

项目由 云中江树 开发与维护。使用的AI模型为 Claude 3.5