AIエンジニア転職で書類選考を突破できない理由
「Pythonは書ける、機械学習の基礎も学んだ、なのに書類で落ちる」というケースが未経験からのAIエンジニア転職市場で増えています。2026年現在、AI関連の求人倍率は3.2倍と高水準を維持する一方で、採用担当者が「実務で使える人材」を見極めるハードルは年々上がっています。
応募書類に「Courseraで機械学習修了」「Kaggleでメダル獲得」と書いても、それだけでは差別化になりません。企業が本当に知りたいのは「この人は実際にどんなコードを書くのか」「どんな思考プロセスで問題を解決するのか」という実践力です。そのギャップを埋めるのがポートフォリオです。
本記事では、採用担当者が実際に評価するポートフォリオの構成要素を分解し、RAG実装からGitHub運用まで具体的な作成手順を解説します。
AIエンジニア採用市場の最新動向
2026年のAIエンジニア採用市場では、以下の変化が顕著です。
求められるスキルの変化
- LLM関連スキルの急増: 2024年と比較してRAG・ファインチューニング・プロンプトエンジニアリング案件が約2.5倍に増加(レバテック調査)
- 実装速度の重視: PoC(概念実証)を1週間以内に完成できる即戦力が求められる
- インフラ知識の必須化: Docker・Kubernetes・クラウド(AWS/GCP/Azure)の基礎知識が応募要件の78%に含まれる
未経験者に求められる証明
採用担当者へのアンケート調査では、未経験者の評価軸として以下が上位に挙がります。
- GitHubの実装コード(92%)
- 技術ブログでの発信(68%)
- デモアプリの公開(64%)
- Kaggleのランキング(41%)
重要なのは、Kaggleよりも「動くものを作って公開している」実績が評価されるという点です。
採用担当者が評価するポートフォリオの3要素
実際に書類選考を通過するポートフォリオには、共通した3つの構成要素があります。
1. 実装力を示すGitHubリポジトリ
採用担当者は以下の観点でコードを評価します。
評価されるポイント
- README.mdの充実度: 目的・使用技術・セットアップ手順・実行方法が明確に書かれている
- コードの可読性: PEP8準拠、適切な関数分割、コメントが過不足なく存在
- 再現性:
requirements.txtやpyproject.tomlで依存関係が明記され、誰でも動かせる - テストコード: pytestなどで主要機能のテストが書かれている
- コミット履歴: 段階的な開発過程が追える(一括コミットではない)
具体的な実装例
初級者向け: 感情分析API with FastAPI + Hugging Face
project-sentiment-api/
├── README.md
├── requirements.txt
├── app/
│ ├── main.py
│ ├── models.py
│ └── utils.py
├── tests/
│ └── test_api.py
└── Dockerfile
中級者向け: RAG(Retrieval-Augmented Generation)実装
- LangChainまたはLlamaIndexを使用
- ベクトルDB(Pinecone / Qdrant / Chroma)と連携
- Streamlitでフロントエンド実装
- ドキュメント取込→埋め込み→検索→生成までの全工程を実装
2. 動くデモアプリの公開
GitHubにコードがあるだけでなく、実際に触れる形で公開することで説得力が増します。
公開プラットフォーム
| プラットフォーム | 特徴 | 推奨用途 |
|---|---|---|
| Streamlit Cloud | 無料、Pythonのみで完結 | 簡単なデモアプリ |
| Hugging Face Spaces | ML向け、GPUも使える | モデルのデモ |
| Render / Railway | フルスタック対応 | FastAPI + React等 |
| Vercel | フロントエンド高速 | Next.js + API連携 |
デモアプリの実装例
文書要約アプリ(Streamlit)
- PDF/テキストをアップロード
- OpenAI APIまたはローカルLLMで要約
- 要約結果をダウンロード可能
- プロンプトをカスタマイズ可能なUI
画像分類アプリ(Gradio)
- 画像をドラッグ&ドロップ
- ResNet / EfficientNet等で分類
- 確信度スコアを可視化
- 誤分類のフィードバック機能
3. 技術ブログでの発信
実装の背景にある思考プロセスを見せることで、技術力以上の評価を得られます。
ブログで書くべき内容
- 実装時の試行錯誤: 失敗した手法とその理由
- パフォーマンスチューニング: 処理速度改善の具体的な数値
- ライブラリ比較: 選定理由を定量的に説明
- ハマったエラーと解決法: 同じ問題で困る人への貢献
公開プラットフォーム
- Zenn / Qiita: 日本語、エンジニア向け、SEO強い
- 個人ブログ: WordPress on エックスサーバーでオリジナルドメイン運用
- GitHub Pages: Markdown直接管理、無料
エンジニア採用では、Zennでの技術記事が「技術力の証明」として高く評価されるケースが増えています。
【PR】未経験からAIエンジニアを目指す学習ルート
ポートフォリオを作る前提となる基礎スキルを体系的に学ぶには、スクールの活用も選択肢です。
DMM WEBCAMPのAI/データサイエンスコースでは、Pythonの基礎からRAG実装まで3ヶ月で学習できます。転職保証付きプランでは、ポートフォリオ作成支援もカリキュラムに含まれます。
デイトラのPythonコースは買い切り型で、RAG・LangChain・FastAPIを実践的に学べます。Slackでのメンターサポートが1年間利用でき、ポートフォリオのコードレビューも受けられます。
ポートフォリオ実装の具体的手順
ここでは、実際に評価されるポートフォリオを0から作る手順を解説します。
STEP1: プロジェクトテーマの選定(所要時間: 3時間)
以下の条件を満たすテーマを選びます。
- 実務での応用が想像できる: 単なる学習課題ではなく、ビジネス価値がある
- 技術スタックが明確: 使う技術が面接で説明できる
- 1-2週間で完成可能: 完璧を目指さず、MVPを優先
推奨テーマ例
- RAG実装: 社内文書検索、FAQボット、技術資料アシスタント
- データ分析ダッシュボード: StreamlitでCSVアップロード→可視化→レポート生成
- 画像認識API: 領収書OCR、商品分類、異常検知
- LLMファインチューニング: 特定ドメイン(法律・医療など)の質問応答
STEP2: 開発環境のセットアップ(所要時間: 2時間)
Gitの初期設定
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git init
Pythonプロジェクトの構成
mkdir ai-portfolio-project
cd ai-portfolio-project
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install poetry
poetry init
poetryを使うことで、依存関係管理が明確になり、採用担当者からの評価が上がります。
STEP3: RAG実装の例(所要時間: 20時間)
使用技術
- LLM: OpenAI API(gpt-4o-mini)またはローカルLLM(Ollama)
- ベクトルDB: Chroma(ローカル実行可能)
- フレームワーク: LangChain
- UI: Streamlit
実装の流れ
- ドキュメント取込: PDF / Markdown / txtファイルを読み込み
- チャンク分割: RecursiveCharacterTextSplitterで適切なサイズに分割
- 埋め込みベクトル化: OpenAI Embeddingsまたはローカルモデル(sentence-transformers)
- ベクトルDB保存: Chromaにインデックス化
- 検索: ユーザークエリに類似するチャンクを取得
- 生成: 検索結果をコンテキストとしてLLMに渡し、回答を生成
- UI実装: Streamlitで質問入力→回答表示
コードの骨組み例
# main.py
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
from langchain.chat_models import ChatOpenAI
from langchain.chains import RetrievalQA
# ベクトルストア読み込み
vectorstore = Chroma(persist_directory="./chroma_db", embedding_function=OpenAIEmbeddings())
# QAチェーン構築
llm = ChatOpenAI(model="gpt-4o-mini")
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=vectorstore.as_retriever())
# 質問応答
response = qa_chain.run("この資料の要点は?")
print(response)
STEP4: README.mdの作成(所要時間: 3時間)
採用担当者が最初に見るのはREADMEです。以下の構成を推奨します。
# プロジェクト名
<!-- CTA:DMM_WEBCAMP_MID -->
<div class="cta-box cta-dmm-webcamp cta-position-mid" style="border:2px solid #00a0e9;border-radius:8px;padding:20px;margin:30px 0;background:#f0f9ff;">
<p style="margin:0 0 8px;color:#666;font-size:0.85em;font-weight:bold;">【PR】</p>
<p style="margin:0 0 12px;font-weight:bold;font-size:1.15em;color:#1a202c;">本気でAIエンジニアを目指すなら</p>
<p style="margin:0 0 16px;font-size:0.95em;line-height:1.6;color:#2d3748;">未経験から最短3ヶ月でAIエンジニアに転身。教育訓練給付金で受講料の最大70%が還付されます。無料カウンセリングで適性診断も可能。</p>
<p style="margin:0;"><a class="aff-link aff-dmm-webcamp aff-position-mid" href="https://px.a8.net/svt/ejp?a8mat=4AXBSD+20MWKY+3XAE+TS3OI" rel="nofollow noopener sponsored" target="_blank" data-affiliate="dmm_webcamp" data-position="mid" data-tier="high" style="display:inline-block;background:#00a0e9;color:#fff;padding:12px 24px;border-radius:6px;text-decoration:none;font-weight:bold;">▶ DMM WEBCAMPの無料カウンセリングを見る</a></p>
<img border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=4AXBSD+20MWKY+3XAE+TS3OI" alt="" style="display:none;">
</div>
<!-- /CTA:DMM_WEBCAMP_MID -->
## 概要
何を解決するためのアプリか(1-2文)
## 使用技術
- Python 3.11
- LangChain 0.1.0
- OpenAI API
- Streamlit
## セットアップ
```bash
git clone https://github.com/yourname/project
cd project
poetry install
cp .env.example .env # APIキーを設定
実行方法
streamlit run app.py
デモ
(スクリーンショットまたはGIFアニメ)
工夫した点
- チャンク分割サイズの最適化(500文字で最良の結果)
- キャッシュ機構で応答速度を2秒→0.5秒に短縮
今後の改善案
- 多言語対応
- ファインチューニングによる精度向上
### STEP5: GitHubへのプッシュとActions設定(所要時間: 2時間)
#### GitHub Actionsでテスト自動化
`.github/workflows/test.yml` を作成します。
```yaml
name: Test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: pip install poetry
- run: poetry install
- run: poetry run pytest
これにより、コミットごとにテストが自動実行され、「品質管理ができる人」という印象を与えます。
STEP6: デモアプリの公開(所要時間: 3時間)
Streamlit Cloudへのデプロイ
- GitHubリポジトリをpublicに設定
- streamlit.ioでアカウント作成
- 「New app」→GitHubリポジトリを選択
- 環境変数(OpenAI API Key)をSecretsに設定
- デプロイ完了後、URLをREADMEに追加
公開時の注意点
- APIキーは絶対にコードに書かない(.envとSecretsで管理)
- 無料枠の制限を考慮(Streamlit Cloudは月1000時間まで)
- エラーハンドリングを丁寧に実装(ユーザーが触ることを想定)
GitHub運用で差をつけるテクニック
ポートフォリオのGitHubリポジトリは「コードの保管場所」ではなく「技術力のショーケース」です。
コミットメッセージの書き方
採用担当者は、コミット履歴から開発プロセスを読み取ります。
良いコミットメッセージ
feat: RAGのチャンク分割サイズを最適化(500→300文字)
検索精度が12%向上することを確認。
ベンチマークスクリプトをtests/benchmark.pyに追加。
悪いコミットメッセージ
update
fix bug
コード修正
Conventional Commits(feat: / fix: / docs:等)を使うと、プロフェッショナルな印象を与えます。
Issue / Pull Requestの活用
「1人開発だからIssueは不要」と思いがちですが、採用担当者は「プロジェクト管理能力」も見ています。
実践例
- Issue作成: 「RAGの応答速度が遅い(3秒以上)」
- ブランチ作成:
fix/improve-rag-speed - 実装: キャッシュ機構追加、プロファイリング
- Pull Request: 改善内容を詳細に記載、Before/Afterの数値を提示
- マージ: Issueを自動クローズ
この一連の流れを見せることで、「チーム開発でも活躍できる」と評価されます。
GitHub Profileの最適化
プロフィールページ(username/username リポジトリのREADME)で以下を記載します。
- 自己紹介: 志望分野(LLM / CV / NLP等)
- 主なスキル: 言語・フレームワーク・ツール
- ポートフォリオリンク: Pinned Repositoriesに主要3プロジェクトを固定
- ブログ: Zenn / Qiitaのリンク
- GitHub Stats:
github-readme-statsで可視化
それでもポートフォリオ作成に懐疑的なあなたへ
「ポートフォリオを作る時間があれば、もっと理論を勉強したほうがいいのでは?」という声もあります。確かに、理論の理解は重要です。
しかし、採用担当者の視点では「理論を知っている人」と「理論を実装に落とし込める人」は明確に区別されます。実際、大手IT企業の技術面接では、ホワイトボードでアルゴリズムを説明できても、「実務でどう使うか」を説明できない候補者は見送られるケースが多いと報告されています。
また、「完璧なポートフォリオでないと公開できない」という完璧主義も、機会損失になります。採用担当者が見ているのは「完成度」よりも「改善のプロセス」です。最初のバージョンを公開し、Issueで改善計画を示し、継続的にアップデートする姿勢が評価されます。
ポートフォリオ作成は、転職活動のためだけでなく、自分のスキルを客観視し、次の学習方向を定めるためのツールでもあります。
よくある質問
Q1. ポートフォリオは何個作るべきですか?
質よりも量を追求する必要はありません。3つの異なる技術領域(例: RAG・データ分析・画像認識)で1つずつ、計3つが目安です。それぞれREADMEが充実し、デモが動き、技術ブログで解説されている状態を目指します。
「10個の中途半端なプロジェクト」よりも「3つの完成度の高いプロジェクト」のほうが評価されます。
Q2. Kaggleのメダルとポートフォリオ、どちらを優先すべきですか?
志望する企業の事業内容によります。データサイエンス・研究開発系の企業であればKaggleのメダルは強い武器になります。一方、SaaS企業やWeb系スタートアップでは「動くプロダクトを作った経験」が重視されます。
時間が限られているなら、まずは1つのポートフォリオを完成させ、その後Kaggleに挑戦する順序を推奨します。
Q3. オープンソースへのコントリビュートは必要ですか?
必須ではありませんが、有利に働きます。特にLangChain・LlamaIndex・Transformers等、AI関連ライブラリへのPull Requestは高く評価されます。
初心者向けのコントリビュートとしては、ドキュメントの誤字修正や日本語翻訳の追加から始めると、ハードルが低くなります。
Q4. ポートフォリオにOpenAI APIを使うと、コスト面で不利ですか?
デモアプリでOpenAI APIを使う場合、月間数千円程度のコストは発生します。コスト削減策としては以下があります。
- ローカルLLM(Ollama + Llama 3.2等)で代替
- Hugging Face Inference APIの無料枠を利用
- レスポンスキャッシュで重複リクエストを削減
- デモ公開時は1日のリクエスト上限を設定
面接で「コスト意識を持って設計した」と説明できれば、逆に評価ポイントになります。
Q5. 未経験でも技術ブログを書いて大丈夫ですか?
むしろ未経験者こそブログを書くべきです。「初学者がハマりやすいポイント」は、経験者には見えません。実装時に詰まった箇所、公式ドキュメントでは分かりにくかった部分を丁寧に解説する記事は、多くの読者に刺激されます。
「〜を実装してみた」「〜で詰まった時の解決法」という形式で、失敗談も含めて書くことで、学習プロセスの透明性が伝わります。
関連記事
- 未経験からAIエンジニアに転職する完全ロードマップ|ポートフォリオ作成から内定獲得まで
- AIエンジニアのポートフォリオ完全ガイド|採用担当者が見る5つのポイント
- 現役AIエンジニアが選ぶポートフォリオに載せるべきスキル10選
まとめ
AIエンジニア転職で評価されるポートフォリオの要点をまとめます。
- GitHubリポジトリ: README充実・コード可読性・再現性・テストコード・コミット履歴が評価される
- デモアプリ: Streamlit CloudやHugging Face Spacesで誰でも触れる形で公開する
- 技術ブログ: 実装の背景・試行錯誤・パフォーマンス改善を具体的に記録する
- 推奨プロジェクト: RAG実装・データ分析ダッシュボード・画像認識APIなど実務応用が想像できるテーマ
- GitHub運用: Conventional Commits・Issue/PR活用・Profile最適化でプロ意識を示す
完璧を目指さず、まずは1つのプロジェクトを公開し、継続的に改善するプロセスを見せることが最大の差別化です。採用担当者は「今できること」だけでなく「学習し続ける姿勢」を評価します。
今日からREADME.mdを書き始め、2週間後にはデモアプリを公開し、1ヶ月後には技術ブログで振り返りを発信する。このサイクルを回すことで、書類選考通過率は確実に向上します。


コメント