把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
文档
Resume Studio
试用Professional resume generator. Use when user needs to create, optimize, or customize resumes for job applications. Supports Word and PDF output, multiple sty...
它能做什么
Professional resume generator with ATS-friendly templates, multiple styles, and Word/PDF output.
技能文档
Resume Studio
Professional resume generator with ATS-friendly templates, multiple styles, and Word/PDF output.
Features
- 📋 Smart Generation: AI-powered content optimization
- 🎨 Multiple Styles: Classic, Modern, Creative, Minimal, Academic
- 📄 Word Output: Professional .docx format
- 👤 Photo Support: Optional photo area
- 🌐 Web Research: Query job market trends
- 📁 File Import: Import existing materials
- 🎯 ATS-Friendly: Passes Applicant Tracking Systems
- 🌍 Multi-Language: Chinese and English support
- 🖥️ Cross-Platform: Windows, macOS, Linux
Trigger Conditions
- "帮我写简历" / "Help me write a resume"
- "生成求职简历" / "Generate job resume"
- "优化我的简历" / "Optimize my resume"
- "resume-studio"
Resume Styles
Classic (经典)
- Traditional layout
- Professional fonts
- Suitable for: Finance, Law, Government
Modern (现代)
- Clean design
- Bold headers
- Suitable for: Tech, Marketing, Design
Creative (创意)
- Unique layout
- Color accents
- Suitable for: Design, Media, Art
Minimal (极简)
- Simple structure
- Focus on content
- Suitable for: Academic, Research
Information Collection
Agent collects:
1. Basic Info
- Name
- Phone
- Email
- Location
2. Education
- School
- Degree
- Major
- GPA (optional)
3. Experience
- Company
- Position
- Duration
- Responsibilities
4. Skills
- Technical skills
- Languages
- Certifications
5. Target Position
- Job title
- Industry
- Specific requirements
Python Code
from docx import Document
from docx.shared import Pt, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from fpdf import FPDF
import os
class ResumeGenerator:
def __init__(self, style='modern'):
self.style = style
self.data = {}
def set_basic_info(self, name, phone, email, location=''):
self.data['name'] = name
self.data['phone'] = phone
self.data['email'] = email
self.data['location'] = location
def add_education(self, school, degree, major, year, gpa=None):
if 'education' not in self.data:
self.data['education'] = []
self.data['education'].append({
'school': school,
'degree': degree,
'major': major,
'year': year,
'gpa': gpa
})
def add_experience(self, company, position, duration, responsibilities):
if 'experience' not in self.data:
self.data['experience'] = []
self.data['experience'].append({
'company': company,
'position': position,
'duration': duration,
'responsibilities': responsibilities
})
def set_skills(self, technical=[], languages=[], certifications=[]):
self.data['skills'] = {
'technical': technical,
'languages': languages,
'certifications': certifications
}
def generate_docx(self, output_path):
doc = Document()
# Name
name_para = doc.add_paragraph()
name_para.alignment = WD_ALIGN_PARAGRAPH.CENTER
name_run = name_para.add_run(self.data.get('name', 'Name'))
name_run.font.size = Pt(24)
name_run.bold = True
# Contact
contact = doc.add_paragraph()
contact.alignment = WD_ALIGN_PARAGRAPH.CENTER
contact_text = f"{self.data.get('phone', '')} | {self.data.get('email', '')}"
if self.data.get('location'):
contact_text += f" | {self.data['location']}"
contact.add_run(contact_text)
doc.add_paragraph()
# Education
doc.add_heading('Education', level=2)
for edu in self.data.get('education', []):
doc.add_paragraph(f"{edu['school']} - {edu['degree']} in {edu['major']} ({edu['year']})")
# Experience
doc.add_heading('Experience', level=2)
for exp in self.data.get('experience', []):
doc.add_heading(f"{exp['position']} at {exp['company']}", level=3)
doc.add_paragraph(f"Duration: {exp['duration']}")
for resp in exp['responsibilities']:
doc.add_paragraph(f"• {resp}")
# Skills
doc.add_heading('Skills', level=2)
skills = self.data.get('skills', {})
if skills.get('technical'):
doc.add_paragraph(f"Technical: {', '.join(skills['technical'])}")
if skills.get('languages'):
doc.add_paragraph(f"Languages: {', '.join(skills['languages'])}")
if skills.get('certifications'):
doc.add_paragraph(f"Certifications: {', '.join(skills['certifications'])}")
doc.save(output_path)
return output_path
def generate_pdf(self, output_path):
pdf = FPDF()
pdf.add_page()
# Name
pdf.set_font('Helvetica', 'B', 20)
pdf.cell(0, 15, self.data.get('name', 'Name'), new_x='LMARGIN', new_y='NEXT', align='C')
# Contact
pdf.set_font('Helvetica', '', 10)
contact = f"{self.data.get('phone', '')} | {self.data.get('email', '')}"
pdf.cell(0, 8, contact, new_x='LMARGIN', new_y='NEXT', align='C')
pdf.ln(10)
# Education
pdf.set_font('Helvetica', 'B', 14)
pdf.cell(0, 8, 'Education', new_x='LMARGIN', new_y='NEXT')
pdf.ln(3)
pdf.set_font('Helvetica', '', 11)
for edu in self.data.get('education', []):
pdf.cell(0, 6, f"{edu['school']} - {edu['degree']}", new_x='LMARGIN', new_y='NEXT')
pdf.ln(8)
# Experience
pdf.set_font('Helvetica', 'B', 14)
pdf.cell(0, 8, 'Experience', new_x='LMARGIN', new_y='NEXT')
pdf.ln(3)
pdf.set_font('Helvetica', '', 11)
for exp in self.data.get('experience', []):
pdf.set_font('Helvetica', 'B', 11)
pdf.cell(0, 6, f"{exp['position']} at {exp['company']}", new_x='LMARGIN', new_y='NEXT')
pdf.set_font('Helvetica', '', 10)
pdf.cell(0, 5, f"Duration: {exp['duration']}", new_x='LMARGIN', new_y='NEXT')
for resp in exp['responsibilities']:
pdf.cell(0, 5, f" • {resp}", new_x='LMARGIN', new_y='NEXT')
pdf.ln(5)
pdf.ln(8)
# Skills
pdf.set_font('Helvetica', 'B', 14)
pdf.cell(0, 8, 'Skills', new_x='LMARGIN', new_y='NEXT')
pdf.ln(3)
pdf.set_font('Helvetica', '', 11)
skills = self.data.get('skills', {})
if skills.get('technical'):
pdf.cell(0, 6, f"Technical: {', '.join(skills['technical'])}", new_x='LMARGIN', new_y='NEXT')
if skills.get('languages'):
pdf.cell(0, 6, f"Languages: {', '.join(skills['languages'])}", new_x='LMARGIN', new_y='NEXT')
pdf.output(output_path)
return output_path
# Example
resume = ResumeGenerator('modern')
resume.set_basic_info('John Doe', '13800138000', 'john@example.com', 'Beijing')
resume.add_education('Peking University', 'Bachelor', 'Computer Science', '2020-2024')
resume.add_experience('TechCorp', 'Software Engineer', '2024-present', [
'Developed AI features',
'Improved system performance by 50%'
])
resume.set_skills(['Python', 'AI', 'Cloud'], ['Chinese', 'English'], ['AWS Certified'])
resume.generate_docx('resume.docx')
resume.generate_pdf('resume.pdf')
Notes
- ATS-friendly formatting
- Professional typography
- Multi-language support
- Cross-platform compatible
相关技能
诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。
以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。
在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。
从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。
为自然搜索排名提供站点审计、内容撰写与竞品分析。
tobewin 的更多技能
浏览全部技能用一份 JSON 描述就能生成标准可编辑的 PPTX,自带 11 种版式与 5 套配色。
把 Word、PDF、Excel、PowerPoint、HTML、Markdown 与 TXT 文档翻译成另一种语言,同时保留原始排版。
Professional Excel spreadsheet generator. Use when user needs to create data tables, reports, charts, financial models, or any structured data in Excel forma...
中国新闻资讯聚合工具。Use when user wants to get latest news from Chinese sources. Supports multiple news sites (Sina, Sohu, NetEase, Tencent) via browser automation an...
Data analysis tool for Excel, CSV, Word, PDF, TXT, Markdown files. Use when user needs to analyze, summarize, or compare data from multiple files. Supports f...
Marketing plan generator with web research and Word output. Use when user needs to create marketing plans, promotional campaigns, social media strategies. Fe...