A dashboard for monitoring Singapore government procurement opportunities on GeBIZ, with AI-powered relevance scoring against your company's tools and services.
- Crawls GeBIZ daily using Tinyfish browser automation and extracts tender listings with direct links
- Scores each tender against your company's tools using an AI model (Ollama, OpenAI, or Claude)
- Displays results in a dashboard sorted by relevance score with reasoning
- Python 3.10+
- Node.js 18+ with pnpm
- A Tinyfish API key for the daily crawler
- An AI provider for scoring:
- Ollama — ollama.com, run locally
- OpenAI — API key from platform.openai.com
- Claude — API key from console.anthropic.com
1. Clone and install
git clone https://github.com/yuanners99/gebiz-intelligence.git
cd gebiz-intelligence
pip install -r backend/requirements.txt
pnpm install2. Fork and add Tinyfish API key to GitHub
Tender data is fetched daily by a GitHub Actions workflow. Without the API key set, the workflow is skipped silently — no errors. To enable automated daily crawls on your fork:
- Fork this repo on GitHub
- Go to your fork → Settings → Secrets and variables → Actions
- Add a secret named
TINYFISH_API_KEYwith your Tinyfish API key - To trigger the first crawl immediately: Actions → Daily GeBIZ Crawl → Run workflow
3. Start the app
# Terminal 1
python backend/server.py
# Terminal 2
pnpm devOpen http://localhost:5174.
4. Configure AI provider
Go to Settings and select your AI provider (Ollama, OpenAI, or Claude) and enter your credentials.
5. Add company tools
Go to Tools and add your company's products or services — either by URL or manually. These are used to score tender relevance.
6. Run analysis
On the Dashboard, click Run AI Analysis to score all tenders against your tools.
- Tender listings are saved to
public/data/opportunities.jsonand refreshed daily by GitHub Actions - Company tools are saved to
public/data/tools.jsonon your local machine - Analysis results are stored in your browser's localStorage
MIT