営業の工数を削減する社内システム・自動化ツールの開発。デリバリー営業自動化、Threads自動投稿、コーポレートサイトのリニューアルなど。
営業の工数を削減する社内ツールを作っています。デリバリー代理店営業の自動化がメインで、ほかにSNS運用の自動化やコーポレートサイトのリニューアルなど、頼まれたものを順に作っている形です。相手は非エンジニアの営業チームなので、「作って終わり」ではなく、運用者が自分で回せるところまで持っていくのがこの案件の肝です。
デリバリー営業自動化システム
営業リストの店舗が Uber Eats や出前館などの対応エリアに入っているかを、住所から自動判定するシステムです。以前は営業担当が1件ずつ地図と照らし合わせていました。
- 各社が公開しているKMZ/KMLの対応エリアポリゴンをパースしてPostGISに取り込む
- 営業リスト(スプレッドシート)の住所を正規化し、Google Maps Geocoding APIで緯度経度に変換
- PostGISの
ST_Contains()でエリア内外を判定し、結果をスプレッドシートに書き戻す - 最初はPython CLIで作ったが、営業チームが自分で使える形にするためNext.jsのWebアプリに作り直した。住所フォーム、一括判定のアップローダ、対応エリアの地図表示、管理者向けのポリゴンインポート画面がある
- インフラはTerraformで構築。EC2 + PostGISの構成と、App Runner + RDSの構成の2パターンを用意した
営業リスト作成CLI
食べログの検索結果から店舗情報(住所、電話番号、営業時間など)を収集するスクレイピングツールです。TypeScript + Playwrightで作り、対象エリアのリストを一括生成できるようにしました。上のエリア判定システムの入力を作る位置づけです。
Threads自動投稿ツール
アカウント別のスプレッドシートに書いた投稿を、決まった時刻(月〜土の1日4回)にThreadsへ自動投稿するGASツールです。マルチアカウント運用が前提で、OAuthの連携ページをセルフサービスにしてあるので、運用者はエンジニアに頼まずにアカウントを追加できます。認証に成功すると投稿用シートが自動で作られ、投稿やトークン更新が失敗したときはオーナーにメールが飛びます。
コーポレートサイトのリニューアル
WordPressサイトの既存CSSとテーマを解析してデザイントークンを抽出し(CSS変数、SCSS、W3C準拠JSONの3形式)、新しいトップページと事業紹介ページを実装して本番反映しました。ローカルのWordPress開発環境もdocker-composeで整備してあります。
使った技術
- Next.js / TypeScript / Python
- PostgreSQL + PostGIS / Prisma
- Google Apps Script / Threads API / Google Maps API / Google Sheets API
- Playwright / Terraform / AWS (EC2 / App Runner / RDS) / WordPress