mcpField
R
resume-builder

resume-builder

github.com/dkyazzentwatwaドキュメント12585 回インストール29 週間前に更新
リポジトリ

resume-builder について

resume-builderは、構造化データからプロ向けのPDF履歴書を作成するPythonツールです。複数のテンプレートや項目のカスタマイズに対応し、APIとコマンドラインから利用できます。

主な機能

  1. 014種類の履歴書テンプレート
  2. 02履歴書項目のカスタマイズ
  3. 03Python APIとJSON入力
  4. 04クリック可能なリンク付きPDF生成

活用シーン

  1. 01ATS対応の応募用履歴書の作成
  2. 02構造化した履歴書データからPDFを生成
  3. 03応募先に合わせた項目の調整

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill resume-builder

インストール後、Claude Code で/resume-builderを入力して読み込まれたか確認します。

同梱ファイルscripts/requirements.txtscripts/resume_builder.py

詳細

履歴書ビルダー

複数のテンプレートスタイルを使って、構造化データからプロフェッショナルなPDF履歴書を作成します。JSON入力、カスタマイズ可能なセクション、ATSに適した書式に対応しています。

クイックスタート

from scripts.resume_builder import ResumeBuilder

# Build resume programmatically
resume = ResumeBuilder()
resume.set_contact("John Smith", "[email protected]", "555-123-4567", "San Francisco, CA")
resume.set_summary("Experienced software engineer with 5+ years...")
resume.add_experience("Software Engineer", "Tech Corp", "2020-Present", [
    "Led development of microservices architecture",
    "Improved system performance by 40%"
])
resume.add_education("B.S. Computer Science", "State University", "2019")
resume.add_skills(["Python", "JavaScript", "AWS", "Docker"])
resume.generate().save("resume.pdf")

# From JSON
resume = ResumeBuilder.from_json("resume_data.json")
resume.generate().save("resume.pdf")

機能

  • 複数のテンプレート:モダン、クラシック、ミニマル、エグゼクティブのスタイル
  • ATSに適した書式:応募者追跡システムで認識される、見やすい書式
  • カスタマイズ可能なセクション:職務経験、学歴、スキル、プロジェクト、資格
  • 柔軟な入力:Python APIまたはJSONデータ
  • プロフェッショナルな出力:適切なタイポグラフィを用いた、見やすいPDF
  • リンク:ポートフォリオ、LinkedIn、GitHubへのクリック可能なURL

APIリファレンス

初期化
resume = ResumeBuilder()
resume = ResumeBuilder(template="modern")
resume = ResumeBuilder.from_json("data.json")
resume = ResumeBuilder.from_dict(data)
連絡先情報
# Basic contact
resume.set_contact(
    name="John Smith",
    email="[email protected]",
    phone="555-123-4567",
    location="San Francisco, CA"
)

# With links
resume.set_contact(
    name="John Smith",
    email="[email protected]",
    phone="555-123-4567",
    location="San Francisco, CA",
    linkedin="linkedin.com/in/johnsmith",
    github="github.com/johnsmith",
    website="johnsmith.dev"
)
職務要約/目標
# Professional summary
resume.set_summary(
    "Experienced software engineer with 5+ years building scalable "
    "web applications. Passionate about clean code and mentoring."
)

# Or objective statement
resume.set_objective(
    "Seeking a senior engineering role where I can leverage my "
    "expertise in distributed systems and cloud architecture."
)
職務経歴
# Add experience entry
resume.add_experience(
    title="Senior Software Engineer",
    company="Tech Corporation",
    dates="Jan 2020 - Present",
    bullets=[
        "Led team of 5 engineers in developing microservices architecture",
        "Reduced API response time by 60% through optimization",
        "Implemented CI/CD pipeline reducing deployment time by 80%"
    ],
    location="San Francisco, CA"  # Optional
)

# Multiple entries
resume.add_experience("Software Engineer", "Startup Inc", "2018-2020", [
    "Built real-time notification system serving 1M+ users",
    "Developed RESTful APIs using Python and FastAPI"
])
学歴
# Add education
resume.add_education(
    degree="Bachelor of Science in Computer Science",
    school="State University",
    year="2018",
    gpa="3.8",  # Optional
    honors="Magna Cum Laude"  # Optional
)

# With coursework
resume.add_education(
    degree="M.S. Data Science",
    school="Tech University",
    year="2020",
    coursework=["Machine Learning", "Statistical Analysis", "Big Data"]
)
スキル
# Simple skills list
resume.add_skills(["Python", "JavaScript", "React", "AWS", "Docker"])

# Categorized skills
resume.add_skills({
    "Languages": ["Python", "JavaScript", "Go", "SQL"],
    "Frameworks": ["React", "Django", "FastAPI"],
    "Tools": ["Docker", "Kubernetes", "AWS", "Git"]
})
プロジェクト
# Add project
resume.add_project(
    name="Open Source Library",
    description="Data validation library with 1000+ GitHub stars",
    technologies=["Python", "PyPI"],
    url="github.com/user/project"  # Optional
)
資格
resume.add_certification("AWS Solutions Architect", "Amazon", "2023")
resume.add_certification("Professional Scrum Master", "Scrum.org", "2022")
その他のセクション
# Languages
resume.add_languages(["English (Native)", "Spanish (Fluent)", "French (Basic)"])

# Volunteer experience
resume.add_volunteer(
    role="Tech Mentor",
    organization="Code for Good",
    dates="2021 - Present",
    description="Mentor underrepresented students in programming"
)

# Publications
resume.add_publication(
    title="Scaling Microservices",
    venue="Tech Blog",
    year="2023",
    url="blog.com/article"
)

# Custom section
resume.add_custom_section("Awards", [
    "Employee of the Year 2022",
    "Hackathon Winner - Best Innovation"
])
テンプレートとスタイル設定
# Set template
resume.set_template("modern")    # Clean, contemporary
resume.set_template("classic")   # Traditional, formal
resume.set_template("minimal")   # Simple, ATS-optimized
resume.set_template("executive") # Premium, senior roles

# Custom colors
resume.set_colors(
    primary="#2563eb",   # Headers
    text="#333333"       # Body text
)

# Margins
resume.set_margins(top=0.5, bottom=0.5, left=0.6, right=0.6)
生成
# Generate and save
resume.generate().save("resume.pdf")

# Get PDF bytes
pdf_bytes = resume.to_bytes()

データ形式

JSON形式
{
  "contact": {
    "name": "John Smith",
    "email": "[email protected]",
    "phone": "555-123-4567",
    "location": "San Francisco, CA",
    "linkedin": "linkedin.com/in/johnsmith",
    "github": "github.com/johnsmith"
  },
  "summary": "Experienced software engineer...",
  "experience": [
    {
      "title": "Senior Software Engineer",
      "company": "Tech Corp",
      "dates": "2020 - Present",
      "location": "San Francisco, CA",
      "bullets": [
        "Led development of microservices",
        "Improved performance by 40%"
      ]
    }
  ],
  "education": [
    {
      "degree": "B.S. Computer Science",
      "school": "State University",
      "year": "2018",
      "gpa": "3.8"
    }
  ],
  "skills": {
    "Languages": ["Python", "JavaScript"],
    "Frameworks": ["React", "Django"]
  },
  "projects": [
    {
      "name": "Open Source Tool",
      "description": "Description here",
      "technologies": ["Python"],
      "url": "github.com/project"
    }
  ],
  "certifications": [
    {
      "name": "AWS Certified",
      "issuer": "Amazon",
      "year": "2023"
    }
  ]
}

CLIの使い方

# From JSON file
python resume_builder.py --input resume.json --output resume.pdf

# With template
python resume_builder.py --input data.json --template modern --output resume.pdf

# Quick resume (interactive prompts)
python resume_builder.py --quick --output resume.pdf
CLI引数
引数説明デフォルト
--input入力JSONファイル必須
--output出力するPDFのパスresume.pdf
--templateテンプレートのスタイルmodern

テンプレート

モダン
  • 見やすいサンセリフ体のタイポグラフィ
  • 青のアクセントカラー
  • 明確なセクション見出し
  • 技術職に適しています
クラシック
  • 伝統的なセリフ体フォント
  • 黒とグレーの色使い
  • フォーマルなレイアウト
  • 伝統的な業界に適しています
ミニマル
  • ATSとの最大限の互換性
  • シンプルな書式
  • 色やグラフィックなし
  • オンライン応募に最適です
エグゼクティブ
  • 高級感のある外観
  • 洗練されたタイポグラフィ
  • 控えめなアクセント
  • 上級職に適しています

ベストプラクティス

  1. 簡潔にまとめる:経験年数が10年未満なら1ページ、最大でも2ページにします
  2. 行動を表す動詞を使う:「主導した」「開発した」「改善した」「達成した」
  3. 実績を数値化する:「売上を25%増加」「8人のチームを管理」
  4. 応募先に合わせる:応募ごとにスキルと要約をカスタマイズします
  5. ATSに適した書式にする:標準的なセクション見出しを使い、表やグラフィックは避けます

依存関係

reportlab>=4.0.0
Pillow>=10.0.0

制限事項

  • PDF出力のみ
  • 英語に最適化
  • 最大2ページ
  • 写真には非対応(ATSのベストプラクティス)

コメント