How ife-banks/tender-intelligence works
Tender Intelligence monitors configured tender sources and notifies people with an evidence-grounded apply/no-apply verdict; it does not submit applications. The principal workflow is scheduled discovery, deduplication, document acquisition and processing, triage, deadline extraction, verdict generation, then notification with attachments or links. The admin app provides configuration and operational visibility, while audit and alerting track failures and recovery. The graph combines sampled implementation with workflow capabilities documented in the README; detailed coordinator wiring was not sampled, so only documented stage relationships are shown.
Main entry points: coordinator.py Run coordinator · engine.py Application database · notifications/service.py Notification service · verdict/service.py Evidence verdict
Components 20
Tender pipeline
- Source scheduler
src/tender_intelligence/orchestrator/scheduler.py - Run coordinator
src/tender_intelligence/orchestrator/coordinator.py - Source adapters
src/tender_intelligence/sources/waho.py - Tender deduplication
src/tender_intelligence/dedup/service.py - Document acquisition
src/tender_intelligence/acquisition/service.py - Document processing
src/tender_intelligence/processing/service.py
Tender assessment
- AI triage
src/tender_intelligence/triage/service.py - Deadline extraction
src/tender_intelligence/deadline/service.py - Evidence verdict
src/tender_intelligence/verdict/service.py - Knowledge records
src/tender_intelligence/db/models/knowledge.py - LLM providers
src/tender_intelligence/interfaces/llm.py
Notifications
- Notification service
src/tender_intelligence/notifications/service.py - Mail providers
src/tender_intelligence/mail/provider.py
Admin and audit
- Admin API and UI
src/tender_intelligence/admin/main.py - Audit and alerts
src/tender_intelligence/audit/alert_manager.py
Shared foundation
- Object storage
src/tender_intelligence/storage/interface.py - Application database
src/tender_intelligence/db/engine.py
Other components
- Operator
- Tender sources
- Human recipients
Connections 30
- Source scheduler → Run coordinator: starts runs
- Run coordinator → Source adapters: discovers tenders
- Source adapters → Tender sources: fetches listings
- Run coordinator → Tender deduplication: classifies listings
- Run coordinator → Document acquisition: acquires documents
- Document acquisition → Object storage: stores bytes
- Run coordinator → Document processing: processes documents
- Document processing → Object storage: reads bytes
- Run coordinator → AI triage: triages tenders
- Run coordinator → Deadline extraction: extracts deadlines
- Run coordinator → Evidence verdict: generates verdict
- Evidence verdict → Knowledge records: reads capabilities
- Evidence verdict → LLM providers: requests assessment
- AI triage → LLM providers: requests triage
- Run coordinator → Notification service: delivers outcomes
- Notification service → Object storage: loads attachments
- Notification service → Mail providers: sends messages
- Mail providers → Human recipients: delivers email
- Operator → Admin API and UI: manages system
- Admin API and UI → Run coordinator: requests runs
- Admin API and UI → Application database: reads and updates
- Audit and alerts → Application database: persists alerts
- Audit and alerts → Notification service: routes alerts
- Run coordinator → Application database: records run state
- Tender deduplication → Application database: persists tender state
- Document acquisition → Application database: records documents
- Document processing → Application database: records extraction
- AI triage → Application database: records decisions
- Evidence verdict → Application database: persists verdicts
- Notification service → Application database: manages outbox