TenderLens by QS Mind
Created by Kareem Safwat
License: Apache License 2.0
TenderLens is a local-first, BYOK construction tender review desktop application for contractors, QS teams, tendering engineers, procurement teams, and technical office engineers.
It analyzes a tender package from a ZIP file or local folder, scans nested files, classifies documents, extracts construction-relevant content, identifies evidence-backed tender issues, routes findings through engineer review, and exports a professional tender query register.
- Contractors
- Quantity surveying teams
- Tendering engineers
- Procurement teams
- Technical office engineers
- Local
.tenderlensworkspace per user - Separate SQLite database per project
- ZIP and folder-based tender package ingestion
- Recursive file inventory
- PDF, Excel/CSV, Word, TXT/MD, image, DXF, and DWG-adapter support
- BOQ-focused extraction and issue detection
- Evidence-first findings with source references
- Engineer approval workflow before query export
- BYOK providers: OpenAI, Anthropic, Gemini, and OpenAI-compatible APIs
- Excel, CSV, Word, Markdown, JSON, executive summary, and evidence package exports
Screenshots will be added after the first packaged desktop release.
Default workspace root:
- Windows:
C:\Users\<UserName>\Documents\.tenderlens\ - macOS:
/Users/<UserName>/Documents/.tenderlens/ - Linux:
/home/<UserName>/Documents/.tenderlens/
Project data is stored under:
Documents/.tenderlens/
projects/
{project_id}/
source/
extracted/
ocr/
index/
evidence/
exports/
logs/
project.sqlite
app.sqlite
settings.json
cache/
Prerequisites:
- Node.js 20+
- Python 3.11+
- Rust stable
- Optional: Tesseract and OCRmyPDF for OCR
- Optional: ODA File Converter for DWG conversion
Install JavaScript dependencies:
npm installInstall Python dependencies:
python -m pip install -e ".[dev]"Install cloud LLM provider SDKs when you want live BYOK model calls:
python -m pip install -e ".[llm]"TenderLens releases are published from GitHub tags:
git tag v0.1.0
git push origin v0.1.0The release workflow builds:
- Windows MSI/NSIS bundles
- Windows portable ZIP
- macOS DMG bundles for Apple Silicon
- macOS portable app ZIP
- Linux AppImage and DEB bundles
- Linux portable TAR.GZ
- Tauri updater artifacts and
latest.json
The packaged app includes the Python FastAPI sidecar built with PyInstaller.
TenderLens checks GitHub Releases for updates when the desktop app starts. Engineers can also check manually from Settings → Application Updates.
Updater endpoint:
https://github.com/sfkareem/Tender-Lens/releases/latest/download/latest.json
Before publishing real releases, add these GitHub repository secrets:
TAURI_SIGNING_PRIVATE_KEYTAURI_SIGNING_PRIVATE_KEY_PASSWORD
The public updater key is committed in apps/desktop/src-tauri/tauri.conf.json. The private key must never be committed.
Start the local API:
python services/api/run.pyStart the desktop frontend:
npm run devRun the Tauri app:
npm --workspace apps/desktop run tauri devConfigure API keys in Settings or in the local workspace settings.json.
Supported providers:
- OpenAI
- Anthropic
- Gemini
- OpenAI-compatible endpoint with base URL, model ID, and API key
Default temperature is 0.1.
- scanned PDF through OCR adapter
- Excel:
xlsx,xls,xlsm,csv - Word:
docx - Images:
jpg,jpeg,png,tiff,bmp,webp - DXF
- DWG through optional converter adapter
- TXT/MD
Emails, Revit, Navisworks, and IFC are outside the MVP scope.
TenderLens is local-first:
- project files remain local
- OCR runs locally when configured
- SQLite databases are local
- only selected extracted text chunks are sent to configured LLM APIs
- full tender packages and raw drawings/images are not sent unless future settings explicitly enable that behavior
TenderLens must not invent project facts.
Every finding and query must include evidence from actual project files. Weak evidence is marked as Potential Issue or Needs Engineer Review. Very low-confidence observations are logged internally and are not promoted to client queries.
- Quantity Concern mode is qualitative in MVP.
- Full drawing-based takeoff is not implemented.
- DWG support requires external converter configuration.
- OCR depends on local Tesseract/OCRmyPDF setup.
- Query generation is deterministic in MVP, with LLM adapters prepared for evidence-constrained reasoning.
- Advanced DWG extraction
- Deeper drawing vision
- Full quantity takeoff support
- Local LLM/Ollama support
- Team collaboration
- Project templates
- RFI tracking
- Client response tracking
- Tender revision comparison
- Advanced commercial risk scoring
Contributions are welcome. Keep changes evidence-first, local-first, and construction-professional. Add tests for processing, database, export, and review workflow changes.
TenderLens is an AI-assisted tender review tool. All outputs must be reviewed and approved by a qualified engineer before use.