Inspiration In remote parts of India and low-connectivity construction zones, project estimators spend days manually cross-referencing hundreds of pages of unstructured, handwritten, or scanned subcontractor bids against massive master spec sheets. Minor omissions—like concrete curing procedures, temporary electrical panels, or workmanship warranties—frequently go unnoticed, leading to change orders that cause up to 30% budget leakage once construction begins.

Additionally, field performance, reliability records, and pricing disputes are rarely documented centrally. They exist solely as "tribal knowledge" in the heads of senior project managers. We built BidLens to be a robust, offline-first agentic terminal that acts as a compliance guard, vendor intelligence scorecard, and automated RFI generator for remote site offices.

🎯 What it does

  • Spec-to-Bid Gap Matrix: Cross-references subcontractor bids against master specs using Gemini AI, flagging omissions, vagues, or deviations, and calculating potential financial leakages.
  • AI Tribal Sentiment Scorecard: Analyzes unstructured PM journal notes and transcribed voice recordings to generate 5-star vendor ratings for reliability, quality, and pricing.
  • Native Voice Dictation: Leverages standard HTML5 MediaRecorder APIs to allow field engineers to dictate performance logs directly in-browser.
  • Agentic RFI Creator: Instantly drafts formal Request for Information (RFI) letters based on the detected scope gaps to clear up discrepancies with subcontractors.
  • Offline-First & Local Emulated Engine: Features a manual connection simulator. If connection is lost or the API key is unconfigured, the app falls back to a high-fidelity local engine running on mock preset algorithms, saving drafted RFIs in an outbox queue to sync when online.

⚙️ How we built it

  • Frontend: Built using React 19, Vite, and TypeScript. Styled with Tailwind CSS for clean layout, Framer Motion for premium micro-animations, and Recharts for vendor score visualization.
  • Backend: Node.js and Express backend acting as a secure API gateway proxy to shield API keys. Bundled with ESBuild into a CommonJS production bundle (server.cjs).
  • AI Models: Integrated Google's @google/genai SDK using gemini-3.5-flash for high-speed analysis and structured outputs, with automatic fallback configurations to gemini-3.1-flash-lite.

🚧 Challenges we ran into

  • Runtime Bundle Mismatches: Adapting ESM-specific structures (like import.meta.url) to behave correctly in serverless CommonJS container builds without causing startup crashes on platforms like Cloud Run.
  • PDF Parsing at the Edge: Extracting text from heavy, scanned PDFs without crashing node memory limits or triggering GFE load balancer timeouts. We solved this by creating a hybrid parser that switches dynamically between raw PDF binary OCR and client/server text extractions.
  • Graceful Degraded States: Designing a UI that treats lack of connectivity or credentials as a standard operational status ("Local Emulated" with pulsing blue indicators) rather than breaking the user flow with red, alarming errors.

🏆 Accomplishments that we're proud of

  • A fully functional, responsive, offline-first application that handles state changes gracefully.
  • A simulated compliance engine stream that mimics the progressive analysis steps of the live API.
  • A clean, professional interface with modern typography and interactive widgets built without heavy external library dependencies.

📚 What we learned

  • State under Connectivity: Connection state is not a binary switch (online/offline). Designing for low-connectivity means treating state as a spectrum and mapping local storage synchronizations seamlessly.
  • Strict JSON schemas: Leveraging Gemini's responseSchema is highly effective for getting predictable, parseable data fields directly into React states.

🔮 What's next for BidLens

  • Scanned Handwriting OCR: Integrating Vision API support to read handwritten vendor logs directly.
  • Enterprise Integrations: Syncing outbox RFIs directly to construction management tools like Procore, Autodesk Construction Cloud, or SAP.
  • Multi-Agent Negotiation: Developing sub-agents that can automatically send generated RFIs, parse vendor responses, and update the gap matrix autonomously.

Built With

Share this project:

Updates