Have something to say?

Tell us how we could make the product more useful to you.

Completed

Location-Based Search Filter

Filter tenders by geographic proximity — define a city and a custom radius to only see opportunities near you. What's coming Set a location (e.g. "Frankfurt am Main") and a maximum distance (e.g. 100 km) to filter your search results by where the work actually needs to be performed. No more scrolling past tenders on the other side of the country. Why this takes a moment Public tender data is notoriously messy. Performance locations come in every format imaginable — abbreviated city names, typos, missing postal codes, vague regional descriptions, or no address at all. Before we can offer reliable distance filtering, we need to geocode and normalize location data across our entire tender database. We're building a robust pipeline that cleans, resolves, and enriches addresses with proper coordinates — even when the source data is incomplete or inconsistent. What to expect Define any city or address as your center point Set a custom radius in kilometers Filter applies to the place of performance, not the contracting authority's office We'll share updates as this rolls out. As always, feedback welcome — just reply to any Bidpoint email.

Linear About 2 months ago

Completed

Build a dashboard

Statistics from the DB to display on /manage [X] Time Filter A single selector in the top-right corner: Today · Yesterday · Last 7 days · Last 30 days · YTD · 2026 · 2025 · Since contract start This applies globally to all components on the page. Why? The user needs to see the impact over a longer period. They wonder in month 6: "what's the impact of bidpoint.ai" They need to see. (edited) [X] Key numbers at a glance (KPI cards) Four to five big-number tiles, always visible: Sources monitored – relatively static, but reassuring (e.g. "89 sources") --> They need to know, also when a source is being added 😄 Tenders processed – total tenders scanned in the selected period Documents analyzed – PDFs downloaded and parsed Matches delivered – the output that matters to the customer Estimated tender volume – sum of € values of matched tenders (if available in the data) Time saved – Count file chunks for tenders created yesterday -> approximate number of pages processed -> display * 10 "hours saved" in the frontend The ratio between "processed" and "matches" is our value story: If a customer sees 1,000 processed → 9 matches, they understand instantly what we saved them. [X] The Funnel This is the hero visual. A simple horizontal funnel or stepped bar chart: Tenders Published → 1000 Tenders matching search → 200 Analysed → 200 Matches → 3 Each step should be clickable in future versions, but for v1 it's purely visual. The dramatic drop-off at each stage IS the value proposition. [X] Matches table/list This is where email gets replaced. A simple table showing: Tender title Contracting authority Publication date Submission deadline (with color coding: red if <5 days, yellow if <14 days, green otherwise) Estimated value (if available) Source

Linear 2 months ago