Quick overview
This workflow runs every weekday morning to search Japan’s 官公需情報ポータルサイト API for recent procurement notices, compares them with your past bids stored in an n8n Data Table, uses OpenAI to score and summarize relevance, generates bid checklists, and posts a digest to Microsoft Teams.
How it works
- Runs every weekday morning on a schedule.
- Loads your historical bid records from the n8n Data Table and iterates through the configured Japanese search keywords.
- Queries the 官公需情報ポータルサイト (kkj.go.jp) public API for notices issued within the last N days, parses the XML response, and splits it into individual notices.
- Removes duplicate matches across keywords and skips any notice keys already sent in previous executions.
- Compares each notice against your past bids (buyer and keyword matches) to add basic history signals like related bid count and wins.
- Uses OpenAI (GPT-5-mini) to assign a high/medium/low relevance score and produce a short Japanese summary and fit rationale.
- For high and medium notices, uses OpenAI (GPT-5-mini) to draft a Japanese bid-prep checklist, optional buyer questions, and a bid/consider/skip recommendation, then posts all results as a single Adaptive Card digest to Microsoft Teams via webhook.
Setup
- Create an n8n Data Table named
past_bids with columns for year, buyer, project, keywords, and result (use values like won/lost), and populate it with your bid history (optionally run the sample loader once).
- Add an OpenAI credential and connect it to both OpenAI chat model steps (the scoring model and the checklist model).
- Create a Microsoft Teams incoming webhook (Workflows) for your target channel and paste the webhook URL into the workflow’s Teams webhook setting.
- Update the search keywords, lookback window (days_back), and your company description (our_business) to match what you want the workflow to prioritize.