React • Fastify Backend • Data Scraping Engine
An advanced data aggregation platform that scrapes and centralizes the latest tenders from 80+ government websites. Built to help businesses, contractors, and suppliers discover, filter, and track public procurement opportunities in one place.
Public procurement data is heavily fragmented across multiple government portals (like eProc/GeM), making it extremely tedious for businesses to track relevant tenders. TendersHub solves this by acting as a single source of truth for tender discovery across India.
The platform is powered by a highly sophisticated scraping engine utilizing Playwright and Node-cron. It automatically navigates 80+ official websites, extracts crucial tender data, and feeds it into a blazing-fast Fastify backend.
Scope & Features: The frontend is built with React and Tailwind CSS, utilizing Zustand for seamless state management. It provides smart search, detailed views (EMD, Tender Fees, Dates), and verified tracking, ensuring contractors never miss a deadline.
2026
Advanced Data Scraping Automation
Searches for relevant tenders, tracks closing dates, views EMD/Tender fee details, and navigates easily to official sources.
The automated Node-cron script that fetches, parses, and updates real-time tender data from 80+ external government servers.
Monitors the scraping engine's health, manages target URLs, updates categories, and ensures smooth API delivery via Fastify.
Engineered a headless browser automation system using Playwright to bypass complex government portal structures and extract raw tender data.
Implemented Node-cron jobs to schedule automated scraping routines. Configured a high-performance Fastify API to store and serve the aggregated data seamlessly.
Developed the user interface with React and Tailwind CSS. Integrated Zustand to manage complex global states like dynamic filtering and search queries without prop-drilling.
Built the 'Smart Search' and detailed single-tender views (EMD, Dates, Inviting Authority). Performed rigorous testing on data accuracy and deployed the platform.
Our Expertise
Built a robust web scraper using Playwright that autonomously navigates through 80+ diverse government procurement portals to extract structured tender data.
Integrated Node-cron to schedule and run the scraping scripts at specific intervals. This guarantees that the TendersHub database is always populated with the absolute latest listings.
Replaced complex Redux setups with Zustand for lightweight, fast, and scalable global state management across the React frontend.
Utilized Fastify instead of Express to create a high-performance backend capable of serving massive payloads of JSON tender data with extremely low overhead.
Implemented a unified search and filtering component allowing users to instantly find tenders by ID, Department, Category (Civil, Electrical), and Location.
Created detailed single-view pages displaying crucial data exactly as parsed from source: EMD amounts, Tender Fees, Work Periods, and rigorous timeline constraints.
Reduced tender search time for businesses from several hours a day across multiple sites to literally seconds on a single platform.
By automating the scraping process, human error is eliminated, ensuring that bid validities and EMD amounts are exactly as published.
Centralized tracking features prevent companies from missing lucrative 'Closing Today' opportunities, directly impacting their bottom line.
The combination of Fastify and Playwright ensures the platform can easily scale from scraping 80 to 800+ portals without performance degradation.
Playwright combined with Node-cron is a powerful solution for automating complex data extraction from heavily secured government websites.
For data-heavy aggregator platforms, utilizing Fastify and Zustand provides significantly better performance and cleaner state management than traditional Express/Redux setups.
Breakdown of the Data Aggregation sprint
Total Project Hours
Delivered across a robust automation sprint
Govt Sites Scraped
Hourly Auto-Updates
Automated Workflows (%)
Problem: Many government websites have varying DOM structures, session timeouts, and basic bot-protection mechanisms that break standard scrapers.
Utilized Playwright's advanced headless browser capabilities to emulate human-like interactions, wait for specific DOM elements to render, and consistently scrape dynamic content.
Problem: Serving and filtering thousands of aggregated tenders efficiently without freezing the user's browser.
Swapped traditional Express.js for Fastify to handle high-throughput API responses, and managed the frontend data flow flawlessly using Zustand.