The tender you never
saw is the one you lost.
Government work is won and lost on notices nobody read in time. This CRM sweeps 62 department, PSU and university portals across 22 states, carries what is worth bidding through EOI, bid and award — then chases the EMD back once it is over. Every change is signed, timestamped and impossible to erase.
The demo needs no account and shows sample data only.
Sweep running
npm run discoverSources
0
Notices
0
Elapsed
0s
Replay of the sweep recorded on 2026-07-30 — 62 sources, 970 notices, 32.3 seconds. Source list abridged.
portals swept
Government, PSU and university sites in the registry, across 22 states.
notices found
Deduplicated across 9 recorded sweeps.
to sweep them all
62 sources, 970 notices, one run.
permissions to grant
11 modules × up to 5 actions, per role.
Tender Discovery
It reads the notice boards so nobody has to.
Public buyers publish where it suits them: a university news page, a department PDF index, an aggregator portal. The sweep visits 62 of them on a schedule, plus 8 directory pages that suggest new sources for a human to approve.
Registered sources by vertical
62 scannable · 22 states
- Universities & institutes40
- Government departments19
- Public sector undertakings6
- Aggregator portals5
Straight from the source registry in the codebase, so this figure moves the day a source is added. Directory pages — which list institutions rather than tenders — are excluded.
What it pulls out of a notice
Structured fields recovered without anyone opening the PDF — and, honestly, how often the notice simply does not carry them.
- Reference number235 of 1,608
- Submission deadline162 of 1,608
- Estimated value76 of 1,608
The rest are a headline and a link — which is the honest state of most public notice boards, and the reason a person still triages the list.
Widest recorded sweep
32.3s
62 sources fetched, parsed and folded into 970 notices in a single run on 2026-07-30 — the whole registry, in about the time it takes to read this sentence.
- 01
Fetch
62 registered sources. Where only a homepage is known, the engine finds that organisation's tender page first rather than guessing at a busy front page.
- 02
Read
Listings, notice tables and linked PDFs. A tender page that renders its table in JavaScript is reported as needing a renderer, not silently counted as empty.
- 03
Fold
A content fingerprint per notice, so the same tender republished across sweeps counts once. 9 recorded runs have folded down to 1,608 distinct notices.
- 04
Score & triage
Each notice scored on notice and relevance keywords, then triaged new → reviewed → converted or ignored. Converting one creates the record and carries the reference across.
The working surfaces
Six screens the day actually happens on.
Every status, stage and field below is the app's own. Click through them.
State technical university — ERP
District hospital — HMIS
Municipal corporation — smart classroom
Central institute — LMS renewal
PSU training arm — assessment
Open university — admissions portal
Statuses, stages and fields are the app’s own. The rows are illustrative — no live record is shown.
Everything it does
The complete list, grouped by the question it answers.
11 permissioned modules plus the background machinery that has no screen of its own — reminders, escalation, and the queue that makes sure a notification survives a mail provider having a bad morning.
Find the work
Before anything can be won it has to be noticed.
6 features
Tender Discovery
Sweeps department, PSU and university sites for tender, EOI and empanelment notices. Follows a homepage to its tender page, dedupes on a content fingerprint, and scores each notice for relevance.
Scan health
Every source reports OK, failed, or needs-a-renderer — so a portal that quietly stopped parsing shows up as a broken source rather than as an empty week.
Dev & Hardware workstream
The bid-worthy slice of the same sweep, filtered to the software and hardware work actually worth quoting for.
Client Contacts
A shared directory of the people behind the deals, searchable across name, company and designation.
Visiting-card capture
Photograph a card and the fields come back structured — name, designation, company, email, phone. Vision model where a key is configured, on-device OCR where it is not.
Organisations
The accounts records hang off, typed as government, PSU, university, private or international — with a merge for the duplicates that arrive with every import.
Work the deal
From first contact to a bid on the table.
10 features
Lead Management board
A Kanban over the pipeline: New, Contacted, Called, Follow-up, Qualified, Converted, Lost, Cancelled. Move a card, log a touchpoint, schedule the next one.
Records
The master list behind the board — leads, clients and tenders in one table, with filters, sorting, pagination and CSV export.
Tender workspace
One bid, in full: timeline events, document slots, corrigenda, pre-bid queries, team assignments and an approval chain — with a workflow tracker derived from all of it rather than kept as its own status field.
Tasks
Assign work with a priority and a due date. Open, in progress, done or cancelled — and a separate alert the moment one slips.
My Day
The landing page: what is due today, what has slipped, which follow-ups are owed — plus a streak that weekends never break and that forgives one missed weekday.
Share a lead, view only
Give somebody sight of a deal without handing over the ability to change it. Read scope and write scope are separate rules, not the same one reused.
Voice updates
Speak an update, read the transcript, correct it, then save. The review step is mandatory — nothing reaches a record on the strength of a transcription alone.
Built-in assistant
Ask the pipeline a question in plain English — how many, closing when, whose. It answers from your data and shows the matching records.
Attachments
Files against any record, encrypted on the way to disk and served back through a signed, expiring link.
Company Documents
The paperwork every bid asks for, kept once and categorised government, private or international instead of re-hunted per tender.
Close the loop
The part everyone forgets: after the bid goes in.
9 features
EMD refund workflow
Deposits tracked through awaited, held, received, forfeited and adjusted — each state asking for its own evidence and its own document slots, never a form that fits none of them.
EMD validation
A designation, not a job title: the person who may confirm a refund actually landed, separate from whoever runs the bid.
Deadline reminders
Seven days out, three days, one day, and the morning of. Scheduled, not remembered.
Escalation
When nobody acts, the alert stops going to the person already not reading it and climbs the reporting line instead — idempotently, and always landing on somebody.
Notification centre
In-app and email, with a per-person switch for every kind. Security notices are deliberately not switchable.
Durable delivery
Reminders queue, retry and dedupe rather than being fired once and hoped for. A mail provider down at 08:30 no longer eats the day's alerts.
Daily digest
One morning email per person: what is due, what slipped, what changed on their work overnight.
Dashboard
The pipeline by stage and by value, movement over time, and where each person's work sits — folded in the database rather than by shipping every row to the browser.
Adoption report
Whether people actually open the page we made their landing page, measured against a stated 70% target instead of assumed.
Keep it accountable
Who may see it, who changed it, and where the secrets live.
8 features
Roles & permissions
Build your own roles on a module-by-action matrix — view, create, edit, delete, approve — rather than picking from three fixed tiers.
Access matrix
The whole grid on one screen, so what a role can reach is something you read rather than something you reconstruct.
Row scoping
A permission decides which surfaces open; ownership and reporting line decide which rows appear on them. Widening one never widens the other.
Immutable activity log
Every mutation writes a row: who, when, which field, from what to what. There is no update endpoint and no delete endpoint — not as policy, as absence.
Enterprise Vault
Credentials, keys, licences and confidential notes sealed under a master key, with folders, tags, favourites, version history, a trash, and import/export behind their own permission.
Vault sharing & expiry
Share a secret with a person or a whole role at view-only, copy, edit or full access — with an expiry date, a revocation, and an alert when a share is pulled.
Encryption at rest
AES-256-GCM over every uploaded attachment, voice recording and vault record, with retired keys kept loadable so a rotation never strands an old file.
Account hardening
Signed httpOnly sessions, throttled sign-in, per-route rate limits, a content security policy, and deactivation rather than deletion so the audit trail keeps its authors.
Lifecycle
Three clocks, running at once.
A record carries 8 possible lead statuses and 5 tender stages simultaneously, and nothing converts between them — they answer different questions. After the bid closes a third clock starts: 5 EMD states, each with its own evidence, drawn from 10 document types.
Lead status
How warm the account is
There is a next action with a date on it. This is what My Day reads.
Tender stage
Where the bid is
Submitted. The EMD is now sitting with the department, and the clock on getting it back has started.
EMD refund
Where the money is
The bid is decided and the refund has been asked for. This is where deposits go quiet and get forgotten.
Roles & permissions
Not three tiers. Whatever shape your team is.
Roles are built module by module and action by action, not chosen from a fixed list. These four are only what a new workspace starts with.
Administrator
Everything, including who else gets what.
- Creates and edits accounts and roles
- The only starting role with the Vault open
- Can approve at every stage that has one
Starting permissions38 / 38Manager
The whole reporting tree, and the decisions on it.
- Sees and acts on everyone who reports up to them
- Read-only on user management
- Vault stays closed until granted deliberately
Starting permissions26 / 38Team Lead
Runs the work for their reports.
- Creates and edits across the pipeline
- No deletes anywhere
- No user or role administration
Starting permissions18 / 38Member
Their own records, and nothing else.
- Row scoping is the whole story — they see their own
- Full control of what they own
- No admin surfaces at all
Starting permissions20 / 38
These four are only where you start. Roles are built cell by cell inside the app, across 11 modules and up to 5 actions each — and note what a Manager does not begin with: the Vault stays closed until somebody opens it deliberately, because inheriting the organisation’s production secrets from “you were promoted” is how credential stores leak.
Row scoping is separate
A grant opens a surface. Ownership and the reporting line still decide which rows land on it.
Two lenses, two grants
The lead board and the record list read the same table. A role can be given either without the other.
Deactivate, never delete
A switched-off account stops signing in immediately and keeps its name on every row it wrote.
Nudges
It tells people things. On purpose, and only once.
22 kinds of notification across in-app and email, every one switchable per person — except the security ones, which are not. Reminders queue, retry and deduplicate rather than firing once into the dark.
- 5
Deadlines and reminders
Scheduled nudges before something is due, and chasers after it slips.
- 3
Approvals and escalations
Where somebody is blocked waiting on a decision — including yours.
- 8
Activity on your work
Changes other people make to records and tenders you're on.
- 5
Sharing and access
When you're given, or lose, sight of something.
- 1
Summaries
Periodic round-ups rather than individual events.
T-7, T-3, T-1, and the morning of
Submission deadlines are reminded on a schedule, not remembered by a person.
Then it climbs
Ignored long enough, the alert stops going to whoever is already not reading it and walks up the reporting line — once per rung, always landing on somebody.
70% is the bar
Whether the team opens My Day at all is measured against a stated target rather than assumed, on a 30-day window.
Accountability
Built for the audit you have not been asked for yet.
Public-sector work gets examined. Every design decision below assumes somebody will one day ask who changed what, and when.
Nothing is edited out
Every mutation writes an activity row — actor, timestamp, field, old value, new value. There is no update endpoint for the log and no delete endpoint. The sample export carried 916 of them across 16 days.
AES-256-GCM at rest
Attachments, voice recordings and vault records are sealed before they touch disk. Retired keys stay loadable through a rotation, so yesterday's file is still readable tomorrow.
Two scopes, never one
A permission decides which surfaces open. Ownership and the reporting line decide which rows appear on them. Being handed a module has never widened whose deals you can read.
Deactivate, don't delete
People leave; their audit trail does not. An account is switched off and immediately stops signing in, while every row it ever wrote keeps its author.
No public signup
Credentials are created from inside by somebody already trusted. There is no self-service door into a system that holds a bid pipeline.
Hardened by default
Signed httpOnly sessions, throttled sign-in, per-route rate limits, a content security policy with per-request nonces, and HTTPS-only in front of all of it.
Capture
A photograph of a business card is a contact record.
Point a camera at a card and the fields come back structured — name, designation, company, email, phone — ready to correct before saving. Where no vision key is configured it falls back to on-device OCR, so the feature degrades rather than disappears.
679
contacts on file
As at 2026-07-27.
100%
came from a card
Photographed, parsed, reviewed, saved.
394
distinct organisations
Deduplicated behind the contacts.
916
audit entries
Across 16 days. None editable.
Questions
The ones people actually ask.
Both, deliberately. The same table holds leads, clients and tenders, and a record carries a lead status and a tender stage at once because they answer different questions. Teams that only sell direct never touch the tender half; the bid desk lives in it.
Public notice pages on government department, PSU and university websites, plus the aggregator portals. The engine follows an organisation’s homepage to its tender page, reads the listing, and folds duplicates on a content fingerprint so a notice republished across three sweeps counts once. It also reports the sources it could not read, which is the part that keeps the coverage honest.
No, and it does not try to. Bids are still submitted on the buyer’s portal. This is the layer around that: knowing the notice exists, deciding whether to bid, collecting the paperwork, tracking who approved what, and getting the deposit back afterwards.
It is the most commonly dropped thread in tendering — real money sitting with a department after a bid nobody is thinking about any more. Deposits move through held, awaited, received, forfeited or adjusted, each state asking for its own evidence, and a refund is confirmed by a designated validator rather than by whoever ran the bid.
That is the default. Permissions decide which modules open; ownership and the reporting line decide which rows appear inside them. A lead can be shared view-only with a named colleague without handing over the ability to change it.
No. Card scanning, speech-to-text and the assistant are all dormant until a provider key is configured, and each falls back to something local or manual when it is not. Nothing leaves the server unless you have switched that on.
One Next.js process and one PostgreSQL database — self-hosted, currently on EC2 behind nginx with Let’s Encrypt. There is no multi-service deployment to orchestrate and no third-party CRM holding your pipeline.
From someone who already has one. There is no public signup — credentials are created inside the app by an existing user, which is the only sensible door into a system holding a live bid pipeline.