jpskill.com
📄 ドキュメント コミュニティ

cv-generator

履歴書や職務経歴書作成のエキスパートとして、様々な形式のファイルから情報を抽出し、ユーザーへの質問や業界調査を通じて内容を洗練、最適な構成を提案し、AIによる顔写真生成、即時公開可能なHTML履歴書作成まで支援するSkill。

📜 元の英語説明(参考)

Resume and CV builder that creates professional, deployable web resumes from any source (PDF, DOCX, TXT, MD, HTML, URL, LinkedIn, Notion). Acts as an expert recruiter: extracts information from multiple files, interviews the user to refine content, researches the target industry to give informed advice, suggests improvements and optimal organization, generates a professional AI headshot from a reference photo, and builds a polished single-page HTML resume with PDF download — deployed instantly via Cloudflare Workers. Use this skill whenever the user mentions resume, CV, curriculum vitae, professional profile page, career page, job application page, or wants to create a professional online presence for job seeking, even if they don't say 'resume' explicitly.

🇯🇵 日本人クリエイター向け解説

一言でいうと

履歴書や職務経歴書作成のエキスパートとして、様々な形式のファイルから情報を抽出し、ユーザーへの質問や業界調査を通じて内容を洗練、最適な構成を提案し、AIによる顔写真生成、即時公開可能なHTML履歴書作成まで支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o cv-generator.zip https://jpskill.com/download/8628.zip && unzip -o cv-generator.zip && rm cv-generator.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/8628.zip -OutFile "$d\cv-generator.zip"; Expand-Archive "$d\cv-generator.zip" -DestinationPath $d -Force; ri "$d\cv-generator.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して cv-generator.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → cv-generator フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

履歴書/CV作成ツール

あらゆるソース資料から、プロフェッショナルでデプロイ可能なWeb履歴書を作成します。このスキルは、単なるテンプレートの穴埋めではなく、対象業界を調査し、コンテンツ戦略についてアドバイスし、洗練された成果物を作成する、熟練した採用担当者として機能します。

ステップ0:入力収集

1つ以上のソースを受け入れます。ユーザーは、複数のファイルを一度に提供する可能性があります(例:古い履歴書PDF + LinkedIn URL + プロジェクトが記載されたNotionページ)。解析する前に、すべてを収集します。

サポートされている形式と読み取り方法:

形式 方法
PDF Read ツール(PDFサポート内蔵)
TXT, MD, HTML Read ツール
DOCX, DOC Bash: textutil -convert txt <file> -stdout (macOS内蔵)
URL (ウェブサイト/ポートフォリオ) FirecrawlScrapeTool — スクレイピングして関連コンテンツを抽出
LinkedIn URL FirecrawlScrapeTool — 公開プロフィールをスクレイピング。アクセスが制限されている場合があります。ブロックされた場合は、LinkedInデータを貼り付けるかエクスポートするようにユーザーに依頼してください
Notionページ notion-search でページを検索 → notion-fetch でコンテンツを取得。ユーザーがNotion URLを提供した場合、ページIDを抽出して直接取得

ユーザーが複数のソースを提供する場合、サブエージェントまたは並列ツール呼び出しを使用して、すべてを並行して読み取ります。

ソースが提供されない場合は、ステップ1に直接進み、インタビューを通じて情報を収集します。

ステップ1:情報抽出と要約

すべてのソースを解析し、統合されたプロファイルにマージします。以下を抽出します。

  • 連絡先情報: 氏名、メールアドレス、電話番号、所在地、LinkedIn、ポートフォリオURL、GitHub
  • 職務経歴の要約/目標(存在する場合)
  • 職務経験: 会社、役職、期間、説明
  • 学歴: 教育機関、学位、期間、表彰
  • スキル: テクニカルスキルとソフトスキル
  • 言語: 話せる言語と習熟度
  • その他: 資格、プロジェクト、出版物、ボランティア活動、受賞歴

抽出された情報を、明確な要約としてユーザーに提示します。以下を強調します。

  • ギャップまたは不明確な項目(「Company Xで2つの異なる役職が見つかりましたが、どちらが正しいですか?」)
  • 履歴書を強化する可能性のある欠落しているセクション(「スキルがリストされていません。追加する必要がありますか?」)
  • ソース間の重複または矛盾

続行する前に、ユーザーに確認、修正、またはギャップを埋めるように依頼します。

ステップ2:ターゲットの役割と業界調査

ユーザーに以下を尋ねます。

  1. どのような役割をターゲットにしていますか?(役職、シニアレベル)

  2. どのような業界またはセクターですか?(テクノロジー、金融、ヘルスケア、クリエイティブなど)

  3. ターゲット企業(オプションですが価値があります)— 次の組み合わせを受け入れます。

    • 会社名
    • ウェブサイトURL
    • LinkedIn企業ページURL
    • 求人情報URL
    • その他のリンク(Glassdoor、Crunchbaseなど)

    ユーザーが名前のみを入力した場合、PerplexitySonarSearchTool(「[会社名] ウェブサイト linkedin」)を使用して自分で残りを検索します。

次に、並行して調査します。

業界調査PerplexitySonarSearchTool を使用して、2〜3個のクエリを実行します。

  • 「[役職] 需要のあるスキル [現在の年]」
  • 「[業界] 採用トレンド 採用担当者が探しているもの」
  • 「[役職] 履歴書のベストプラクティス」

企業調査(提供されている場合)— 可能な限り多くのコンテキストを収集します。

  1. ウェブサイト: FirecrawlMapTool でページを検出 → キャリア、会社概要、チーム、企業文化のページで FirecrawlScrapeTool を実行します。以下を抽出します。

    • ミッション、価値観、企業文化
    • 使用している技術スタックまたはツール
    • 理想的な候補者の説明方法(求人情報は貴重です)
    • 言語とトーン(フォーマル?スタートアップカジュアル?ミッションドリブン?)
    • 会社の規模、段階、業界でのポジショニング
  2. LinkedIn: 会社のLinkedIn URLで FirecrawlScrapeTool を実行します。以下を抽出します。

    • 会社概要と専門分野
    • 従業員数と成長の兆候
    • 最近の投稿(彼らが誇りに思っていること、採用していること)
  3. 求人情報(提供されている場合):FirecrawlScrapeTool を使用して、正確な要件、責任、キーワードを抽出します。これは最も価値のあるソースです。履歴書は、この求人情報が求めていることに直接対応する必要があります。

  4. その他のリンク(Glassdoor、Crunchbaseなど):FirecrawlScrapeTool を使用して、レビュー、資金調達情報、または関連するコンテキストを取得します。

  5. 統合: PerplexitySonarSearchTool を使用して、「[会社名] 企業文化 職場環境 働くのはどんな感じか」で追加のコンテキストを取得します。

目標は、ターゲット企業が履歴書の言語、強調、キーワードをこの特定の企業が重視するものに合わせるのに十分なほど理解することです。小規模な20人のスタートアップをターゲットとする履歴書は、Fortune 500をターゲットとする履歴書とは異なる表現にする必要があります。

調査結果を保存します。これは、次のステップでの採用担当者のアドバイスに役立ちます。

ステップ3:採用担当者インタビュー

これは、このスキルが真価を発揮する場所です。抽出された情報と調査に基づいて、ユーザーのターゲット業界を専門とするシニア採用担当者として行動します。次の領域について説明します。

コンテンツ戦略

  • 強調すべき点: ターゲットの役割に基づいて、どの経験とスキルが最も関連性が高いかを特定します。「シニアフロントエンドの役割の場合、Company XでのReact移行プロジェクトが最も強力なカードです。それを最初に説明しましょう。」
  • 言い換えるべき点: アクション動詞、成果重視の言い換えを提案します。「アクション動詞を使用する」と言うだけでなく、実際の箇条書きを書き換えます。「「チームの管理を担当」の代わりに、「6か月で3つの主要製品を出荷した12人のエンジニアリングチームを率いた」とします。」
  • 削除すべき点: 何かがターゲットの役割に役立たない場合は、削除することを提案します。外交的でありながら直接的であること。
  • 不足している点: 調査に基づいて、ユーザーが実際に持っている場合は、追加する必要があるスキルまたはキーワードを提案します。「この役割で採用している企業は、Kubernetesについて頻繁に言及しています。経験はありますか?」

セクションの順序

ユーザーの最も強力な資産に基づいて、最適な順序を推奨します。

  • 強力な経験 → 経験、スキル、学歴の順
  • 最近の卒業生 → 学歴、プロジェクト、スキルの順
  • キャリアチェンジ → 要約(移行のフレーミング)、移行可能なスキル、経験の順

職務経歴の要約

ターゲットに合わせた2〜3文の要約を作成します

(原文はここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Resume / CV Builder

Build professional, deployable web resumes from any source material. The skill acts as an expert recruiter — not just a template filler — researching the target industry, advising on content strategy, and producing a polished result.

Step 0: Input Collection

Accept one or more sources. The user might provide several files at once (e.g., an old resume PDF + a LinkedIn URL + a Notion page with projects). Collect everything before parsing.

Supported formats and how to read them:

Format Method
PDF Read tool (built-in PDF support)
TXT, MD, HTML Read tool
DOCX, DOC Bash: textutil -convert txt <file> -stdout (macOS built-in)
URL (website/portfolio) FirecrawlScrapeTool — scrape and extract relevant content
LinkedIn URL FirecrawlScrapeTool — scrape public profile. May have limited access; if blocked, ask user to paste/export their LinkedIn data
Notion page notion-search to find the page → notion-fetch to pull content. If user provides a Notion URL, extract the page ID and fetch directly

If the user provides multiple sources, read them all in parallel using subagents or parallel tool calls.

If no sources are provided, go directly to Step 1 and gather information through the interview.

Step 1: Information Extraction & Summary

Parse all sources and merge into a unified profile. Extract:

  • Contact info: name, email, phone, location, LinkedIn, portfolio URL, GitHub
  • Professional summary / objective (if present)
  • Work experience: company, role, dates, descriptions
  • Education: institution, degree, dates, honors
  • Skills: technical and soft skills
  • Languages: spoken languages and proficiency levels
  • Other: certifications, projects, publications, volunteer work, awards

Present the extracted information as a clean summary to the user. Highlight:

  • Any gaps or unclear items ("I found two different job titles at Company X — which is correct?")
  • Missing sections that would strengthen the resume ("I didn't find any skills listed — should we add those?")
  • Duplicates or contradictions across sources

Ask the user to confirm, correct, or fill in the gaps before proceeding.

Step 2: Target Role & Industry Research

Ask the user:

  1. What role are you targeting? (job title, seniority level)

  2. What industry or sector? (tech, finance, healthcare, creative, etc.)

  3. Target company (optional but valuable) — accept any combination of:

    • Company name
    • Website URL
    • LinkedIn company page URL
    • Job posting URL
    • Any other link (Glassdoor, Crunchbase, etc.)

    If the user only gives a name, search for the rest yourself using PerplexitySonarSearchTool ("[company name] website linkedin").

Then research in parallel:

Industry research — use PerplexitySonarSearchTool with 2-3 queries:

  • "[role] skills in demand [current year]"
  • "[industry] hiring trends what recruiters look for"
  • "[role] resume best practices"

Company research (if provided) — gather as much context as possible:

  1. Website: FirecrawlMapTool to discover pages → FirecrawlScrapeTool on careers, about, team, and culture pages. Extract:

    • Mission, values, and culture
    • Tech stack or tools they use
    • How they describe ideal candidates (job listings are gold)
    • Language and tone (formal? startup-casual? mission-driven?)
    • Company size, stage, and industry positioning
  2. LinkedIn: FirecrawlScrapeTool on the company LinkedIn URL. Extract:

    • Company description and specialties
    • Employee count and growth signals
    • Recent posts (what they're proud of, what they're hiring for)
  3. Job posting (if provided): FirecrawlScrapeTool to extract the exact requirements, responsibilities, and keywords. This is the most valuable source — the resume should speak directly to what this posting asks for.

  4. Other links (Glassdoor, Crunchbase, etc.): FirecrawlScrapeTool to pull reviews, funding info, or any relevant context.

  5. Synthesis: PerplexitySonarSearchTool with "[company name] culture work environment what is it like to work at" for additional context.

The goal is to understand the target company well enough to tailor the resume's language, emphasis, and keywords to what this specific company values. A resume targeting a scrappy 20-person startup should read differently from one targeting a Fortune 500.

Save the research findings — they inform the recruiter advice in the next step.

Step 3: Recruiter Interview

This is where the skill earns its keep. Based on the extracted information AND the research, act as a senior recruiter specialized in the user's target industry. Walk through these areas:

Content Strategy

  • What to highlight: Based on the target role, identify which experiences and skills are most relevant. "For a Senior Frontend role, your React migration project at Company X is your strongest card — let's lead with that."
  • What to reword: Suggest action-verb, achievement-oriented rewording. Don't just say "use action verbs" — rewrite the actual bullet points. "Instead of 'Responsible for managing a team', try 'Led a 12-person engineering team that shipped 3 major products in 6 months'."
  • What to cut: If something doesn't serve the target role, suggest removing it. Be diplomatic but direct.
  • What's missing: Based on research, suggest skills or keywords the user should add if they genuinely have them. "Companies hiring for this role frequently mention Kubernetes — do you have experience with that?"

Section Order

Recommend the optimal order based on the user's strongest assets:

  • Strong experience → Experience first, then Skills, then Education
  • Recent graduate → Education first, then Projects, then Skills
  • Career changer → Summary first (framing the transition), then transferable Skills, then Experience

Professional Summary

Draft a 2-3 sentence summary tailored to the target role. Present it for the user to approve or adjust.

Present all suggestions and wait for user confirmation before proceeding. The user might want to discuss or push back — that's expected and healthy.

Step 4: Photo Handling

Ask: "Do you have a photo you'd like to use for your resume? You can share the file path."

If the user provides a photo:

  1. Read the photo with the Read tool to see what we're working with

  2. Determine the appropriate style based on the target industry:

    • Corporate / Finance / Law: Formal — professional attire, neutral background, clean lighting
    • Tech / Startup: Smart casual — friendly expression, modern but approachable
    • Creative / Design / Marketing: Expressive — can be more dynamic, show personality
    • Academic / Research: Professional but warm — approachable, scholarly
  3. Generate a professional headshot using the reference photo:

    Option 1 — infsh CLI (check with which infsh):

    infsh app run falai/flux-dev-lora --input '{
      "prompt": "professional headshot portrait, [industry-appropriate description], clean background, studio lighting, high quality, photorealistic",
      "image_url": "[path-to-user-photo]"
    }'

    Option 2 — HiggsfieldImageTool (Social Toolkit MCP): Use the soul model for portrait generation with an industry-appropriate prompt.

    Option 3 — Use original photo as-is: If AI generation isn't available or the user prefers their actual photo, apply CSS treatment: circular crop, subtle shadow, slight desaturation for a polished look.

If no photo provided: skip the photo section in the resume, or offer a tasteful initials avatar via CSS.

Suggest the style to the user and let them choose: "Since you're targeting tech roles, I'd suggest a friendly, smart-casual headshot. Want to go with that, or prefer something more formal?"

Step 5: Visual Style Selection

Present the available styles with a recommendation based on the target industry:

Minimalist

Clean lines, generous whitespace, single accent color, modern sans-serif typography.

  • Fonts: Outfit + Source Serif 4
  • Palette: White/light gray base, one bold accent (teal, coral, or slate)
  • Best for: Design, consulting, product management, UX

Corporate

Traditional structure, authoritative palette, clear hierarchy, serif headings.

  • Fonts: Playfair Display + Source Sans 3
  • Palette: Navy, charcoal, white with gold or burgundy accent
  • Best for: Finance, law, management, enterprise, consulting

Tech

Modern, optional dark mode, monospace accents, subtle code-inspired elements.

  • Fonts: Space Grotesk + IBM Plex Sans (monospace accents: JetBrains Mono)
  • Palette: Dark slate or pure white base, electric blue or green accent
  • Best for: Software engineering, data science, DevOps, IT

Creative

Bold colors, distinctive layout, asymmetric elements, expressive typography.

  • Fonts: Syne + DM Sans
  • Palette: Vibrant — deep purple with coral, or midnight with electric yellow
  • Best for: Marketing, media, arts, advertising, content creation

Academic

Clean, scholarly, reading-focused, structured with subtle refinement.

  • Fonts: Cormorant Garamond + Libre Franklin
  • Palette: Warm white, deep blue or forest green accent, warm gray text
  • Best for: Research, education, healthcare, science

Say something like: "For a Senior Frontend Engineer targeting tech companies, I'd recommend the Tech style — it signals you're in the right world. But if you prefer something cleaner, Minimalist also works well. Which one appeals to you?"

Let the user pick. If they want something custom, adapt.

Step 6: Content Finalization

Apply all the agreed-upon changes from Step 3:

  • Rewrite bullet points with action verbs and quantified achievements
  • Reorder sections per the agreed strategy
  • Insert the professional summary
  • Add any skills or keywords discussed
  • Set the final section list

Present the final content outline one more time for sign-off: section order, key bullet points, summary. This is the last checkpoint before building.

Step 7: HTML Generation

Generate a single self-contained index.html file with:

Structure

<project-dir>/
  index.html          ← complete resume (inline CSS + JS)
  images/
    headshot.jpg       ← professional photo (if generated)
  wrangler.jsonc       ← Cloudflare deployment config

Technical Requirements

HTML/CSS:

  • All CSS inline in a <style> block — no external stylesheets except Google Fonts
  • Google Fonts loaded via <link> tags
  • CSS variables for theming (colors, fonts, spacing) so the user can easily tweak later
  • Fully responsive: mobile (375px), tablet (768px), desktop (1280px+)
  • Semantic HTML: <header>, <main>, <section>, <article>, <footer>
  • Print-friendly styles via @media print — hide the download button, clean margins, black text
  • Subtle micro-interactions: section reveals on scroll, skill bar animations, smooth hover states
  • Clean, professional — avoid flashy animations that distract from the content

PDF Download Button: Include a floating download button that generates a PDF of the resume. Use html2pdf.js via CDN:

<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.2/html2pdf.bundle.min.js"></script>

The button should:

  • Float in the bottom-right corner (or top-right, matching the style)
  • Hide itself during PDF generation (so it doesn't appear in the PDF)
  • Use the @media print styles for clean output
  • Name the file [FirstName]-[LastName]-Resume.pdf
function downloadPDF() {
  const button = document.getElementById('download-btn');
  button.style.display = 'none';
  const element = document.getElementById('resume');
  const opt = {
    margin: 0.5,
    filename: '[Name]-Resume.pdf',
    image: { type: 'jpeg', quality: 0.98 },
    html2canvas: { scale: 2, useCORS: true },
    jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
  };
  html2pdf().set(opt).from(element).save().then(() => {
    button.style.display = '';
  });
}

Photo display:

  • Circular crop with subtle border/shadow
  • Sized appropriately for the style (120-160px diameter)
  • Responsive — scales down on mobile
  • alt text: "[Name] — Professional headshot"
  • If no photo: show a tasteful CSS initials circle using the person's initials

Content sections to render (based on what was agreed in Step 6):

  • Header: name, title, contact info (email, phone, location, LinkedIn, GitHub/portfolio)
  • Professional summary
  • Work experience (company, role, dates, achievement bullets)
  • Education
  • Skills (grouped by category if applicable — e.g., Languages, Frameworks, Tools)
  • Languages (if applicable)
  • Any additional sections agreed upon

Design execution: Apply the chosen visual style from Step 5. Use the exact font pairings and color palettes defined there. The resume should look like it was designed by a professional — distinctive typography, intentional spacing, a clear visual hierarchy that guides the reader's eye from name → summary → experience → skills.

Image Generation for Design Elements (optional)

If the style benefits from subtle design elements (background texture, header pattern), generate them:

  1. Check which infsh — use FLUX for abstract/textural images
  2. Fallback to HiggsfieldImageTool
  3. Final fallback: CSS-only effects (gradients, noise via SVG filters, geometric patterns)

Keep design elements subtle — the content is the star.

Step 8: Deployment

Create wrangler.jsonc in the project directory:

{
  "name": "<firstname-lastname>-resume",
  "compatibility_date": "2025-04-01",
  "assets": {
    "directory": "./"
  }
}

Deploy:

cd <project-dir> && wrangler deploy

Share the live URL with the user. Also open the local file so they can preview:

open <project-dir>/index.html

Behavior Notes

  • Be a recruiter, not a form filler. The value of this skill is the advice. Anyone can put text in an HTML template. What makes this special is understanding what recruiters in the target industry actually look for and tailoring the resume accordingly.
  • Research before advising. Don't give generic resume advice. Research the specific industry and role first, then give targeted, informed suggestions based on real data.
  • Rewrite, don't just suggest. When recommending changes to bullet points or summaries, write the actual new version. "Use action verbs" is unhelpful. "Led a cross-functional team of 8 engineers to deliver a payment processing system handling $2M daily" is useful.
  • Respect the user's voice. The resume should sound like a polished version of the user, not a generic template. If they have a casual tone, keep it conversational but professional. If they're formal, maintain that.
  • One page is king (usually). For most roles under 15 years of experience, aim for content that fits one page. For senior/academic roles, two pages is fine. Mention this to the user and let them decide.
  • Quantify everything possible. Numbers make achievements concrete. "Improved performance" → "Reduced API response time by 40% (from 850ms to 510ms)". Always ask the user for numbers if they're missing.
  • Handle multiple languages naturally. If the user communicates in Spanish, write the resume in Spanish (unless they ask for English). Research queries should match the target job market's language.
  • Show your work before building. Present research findings, content suggestions, and the final outline before generating HTML. The user should never be surprised by the output.
  • Don't invent achievements. Everything in the resume must come from the user's actual experience. Reword and polish, but never fabricate.