2026年3月から3ヶ月にわたる千葉の職業訓練校での生活も、いよいよ終わりの時を迎えようとしています。
関連記事:15年ぶりの職業訓練校!40代後半のわたしが「AIとPython」の訓練コースを選んだ理由
そこで学んだのが、ExcelのVBAとPythonというプログラミング言語です。
途中で何度も挫折しましたが、ようやく今週で修了!
ここまでの集大成として「何か1つのプロダクトを作る」という課題が出たので、わたしは次のようなシステムを作ろうと思いました。
行政書士としての活動を見据えて、デジタル庁から補助金の公的情報を自動取得し、それをデータソースとしてGoogleのnotebookLMに流し込むシステム。
さっぱりわからん、と思います。
大丈夫です、わたしもいまいち何を言っているのかわかりませんし。
自分の頭の中ではおぼろげながら分かっているのですが、説明が難しいですね。
ざっくりとこんな感じです。

わたしはもちろん非エンジニア。
システム開発を始めるにあたって、最初に立ちはだかったのが基本設計と詳細設計という壁でした。
どうやらシステムエンジニアの方々は設計をめちゃ重視するらしく、開発の前に必ず設計書を書くのです。(当たり前)
いま考えれば当たり前の工程ですが、当時のわたしはとにかく早く手を動かして、目に見えるアウトプットを確認したい欲求が勝っていました。
画面に向かってコードを書きたいのに、なぜ紙の上で考えなければいけないのかと、最初はブーブー文句を言っていたのです。
しかし、いざ実装の段階に進んでみると、設計がどれほど重要であるかを痛感。
落ち着いて考えてみると、どのようなデータが必要で、どんな工程がどの順番で進めばいいのかを把握していないと手が止まります。
さらに、複数のファイルがどのように連携し合っているのかという全体像を、あらかじめ知っておく必要がありました。
事前にきちんと準備をして物事を考えることは、開発において最も重要なのだと身をもって知る良い経験になりましたね。
次に苦労したのが「API」という概念を正しく理解することでした。
これまでは「システム同士がなんとなく繋がっている」ようなふんわりとしたイメージで捉えていたのです。
ここで、「API」というのは一言で表現すると「窓口」のような役割を果たしています。
外部からの要求に対して、システム内にある材料をクライアントが求める形に整えて提供してくれる便利なサービスですね。
ちょっとムズイ。
そして、実はデジタル庁は、補助金情報を「JグランツAPI」という形で一般に提供しています。

これは、クライアントが指定した条件に応じて、補助金情報をサーチしてくれる仕組みです。
一見するとシンプルな機能ですが、このAPIのメリットは「スクレイピング」扱いにならない点にあります。
多くのウェブサイトは規約で自動収集(スクレイピング)を禁止していますが、APIが公開されているということは、ある程度のアクセス数であっても公的に許可されている状態を意味します。
そしてさすがの公官庁。
このデジタル庁のデータを引っ張ってくる過程にも、多くのハードルが待ち構えていました。
などなど、公的機関特有の細かい指定に、何度も頭を悩ませることになりましたね。
こうした細かいエラーの解決には、ずばりClaudeが大活躍してくれました。
AIと対話を繰り返しながら、その都度コードを修正していく、いわゆる「バイブコーディング」のようなスタイルで開発を進める感じ。
エンジニアではないわたしにとって、初体験の開発体験です。
最初はGeminiを活用していたのですが、Claudeを試してみると段違いにすばらしい!
Claudeで感動したのが、こちらの期待を上回るかたちで提案してくれることです。
たとえばわたしが次のようなプロンプトを投げてみる。
main.pyを実行すると、補助金の全体の件数がprintで表示されますが、config.iniの条件を検索すると件数が多いので、先に件数をPrintで表示したいです。
すると、Claudeは次のように返してくれたのです。
「先に件数を表示したい」というのは、APIから一覧を取得した直後にフィルター後の予定件数を事前表示したいということですね。
以下の1ブロックを追加するだけです。
main.pyの該当箇所を探して追記してください。追加場所:
print(f"-> {len(subsidies_list)} 件の一覧データを取得しました。")の直後
さらに、件数だけでなく、完了予測時間までも表示するコードも用意してくれたのでターミナルに貼り付ける。

さらに、バグを見つけた際には、修正したPythonファイルを生成してダウンロードさせてくれる。
ほぼ丸投げ状態……

さらに、JグランツのAPIのブラックボックスな問題に直面したときも、Claudeが大活躍。
キーワードパラメータを変更したけどまったく反映されないので、AIは次のような現実的な対処法を提案してくれました。
キーワードでの絞り込みは諦めて、取得後にPython側でタイトル・概要に対してフィルタリングするのが現実的です。
APIの仕様を無理に変えようとするのではなく、取得したデータをPythonのプログラム側で調整するという引き算の提案!
このアドバイスに従ってコードを修正して実行したところ、当初は44件あった案件が、見事に23件へと絞り込むことができました。

Claude恐るべし。
当初の構想では、自動取得したデータを「NotebookLM」に流し込んで管理することを考えていました。
ハルシネーションを避け、ソースの元を明確にし、機密情報を外部の機械学習に使わせないためには、NotebookLMが最適だと思ったからです。
しかし、ここで最大の欠点が浮き彫りになりました。
NotebookLM自体には、外部から直接データを流し込むための「接続口(API)」が用意されていないのです。そのため、Googleドライブのフォルダを中継基地にする方法を検討し、Cloudeに相談してみました。
たとえばGeminiのGemなどでGドライブ上のファイルを読み込むようにして、そのGemとnotebookLMを連携することはできますか?
するとこんな返答が。
面白いアイデアですが、結論から言うと現時点では直接の連携はできません。
現状のツールの機能を整理すると、次のようになるとのこと。
| ツール | Gドライブ連携 | 自動更新 |
|---|---|---|
| NotebookLM | ✅ Gドライブからソース追加可能 | ❌ 手動のみ |
| Gemini Gem | ✅ Gドライブのファイル参照可能 | ✅ 常に最新を参照 |
| GemとNotebookLMの連携 | ❌ 不可 | ❌ 不可 |
しかし、よく考えてみるとNotebookLMを無理に使わなくても、Geminiの「Gem」だけで目的を達成できることに気がつきました。Gemのカスタム指示を次のように指定したりするのです。
「Gドライブの『補助金データ』フォルダにあるTXTファイルを参照して、補助金に関する質問に答えてください。」
このように設定しておけば、作成したPythonのプログラムを自動起動し、Gドライブへ最新のデータをTXT形式で書き出すだけで完結します。
その結果として、全体的なデータの流れは次のようになりました。
これがいまのわたしが考えうるシンプルで現実的なシステム構成。
NotebookLMのAPIがないという壁に突き当たりましたが、結果としてGemini Gemを活用することにして、今回のユースケースには適していたとしましょう。
今後もGoogle内サービスの連携は進化するでしょうし。
今回の課題での個人的まとめです。
① Google内のツール連携は強いけど複雑。
②これからはAI使いすぎないスキルが必要。
➂職業訓練校では興味のあることを学ぼう。
とくに➁です。
今回、Googleのサービスを使っていて、すぐに回数制限がかかってしまいました。
私はGoogleWorkplaceのプロ版に課金しているのですが、それでも「5時間制限」が適用されるみたい。
今後のAIは「燃費」を気にしながらの利用が必須になるかも。
プログラミング未経験のわたしでも、職業訓練校で学べば、ここまでの仕組みを構築できるようになるみたいです。
あはは。
やっと訓練校が終わりました!
6月から自営業がんばります!
これまで本を書き、旅を重ね、資格取得を通じて「人生の再出発」を経験してきました。
現在は、2026年の行政書士登録に向けて準備を進めています。
わたしのテーマは「制度を理解して人生の次の一歩を支えること」。
人生の転機に関わる次の3分野に取り組みたいと考えています。
・外国人の在留資格などの国際業務
・補助金・助成金の活用支援
・遺言書・エンディングノート作成サポート
これらの制度は難しく見えますが、知っている人にとっては「強力な味方」になります。
行政書士登録後の活動や準備の様子は、順次発信していきます!
📘 Kindle著書について
これまで17冊の電子書籍を出版しています。
人生や資格をテーマにして、FP試験対策、宅建士対策、行政書士試験対策、旅の記録、断薬の体験記などを執筆しています。
ご興味があれば、ぜひのぞいてみてください!
💬 個別相談について
資格試験の経験や学びのプロセスをもとに、
進路やお金、人生設計についてのご相談をお受けしています。
👉 各サービスの詳細や最新情報は以下でまとめています。
