Skip to main content
Transparency

Platform Changelog

We are building the most reliable procurement platform in South Africa. Follow our journey of continuous improvement, data quality, and transparency.

2026-06-23
Performance & Reliability
Forensic supplier pages no longer crash with server error

Fixed a 500 error on forensic analysis supplier pages caused by a Prisma query referencing a non-existent field on SourceOrganization. Source organizations store province data under provincesOperating (JSON array or comma-separated), not a single province field.

Key Changes

  • Forensic analysis supplier pages now load successfully instead of returning HTTP 500.
  • Province data is correctly extracted from the stored provincesOperating field, with fallback to "National" when empty.

Platform Impact

Forensic supplier profiles are no longer broken by the Prisma validation error.

2026-06-23
Platform Updates
Admin Observability Dashboard

Rebuilt the admin analytics page as a tabbed observability dashboard with realtime online-user tracking, referrer/landing-page analytics, configurable time buckets, and JSON/CSV export.

Key Changes

  • Added six tabs: Overview, Online Users, Traffic & Referrers, System Health, Events, Export.
  • Online-user time-series powered by a 5-minute presence-sampling cron writing to SystemMetric.
  • Referrer and landing-page tracking via a public, rate-limited beacon persisted to AnalyticsEvent.
  • Configurable time buckets: 15min, 30min, 1h, 24h, 7d, 1month.
  • JSON/CSV export for all observability data sources.
  • Removed mock-data fallback from admin analytics; failures now show clear error states.

Platform Impact

Admins can now monitor platform traffic, user presence, and system health in near-realtime with exportable data.

2026-06-22
Search & Filtering
Tender Radar profiles now return live results

Pre-created Tender Radar profiles were returning zero live results because the category resolver used stale seeded categories instead of querying real database categories tenders are linked to.

Key Changes

  • resolveDbCategoryFilters now queries real tenderCategory rows from the DB instead of using COMMON_CATEGORIES seed data (removed).
  • Category filter query changed from case-sensitive Prisma in to case-insensitive equals with mode: insensitive, bridging casing gaps between OCDS-created categories and profile search terms.
  • Added issuingOrganizations filter dimension to ExploreProfile and CompanyProfileDefinition — profiles can now filter by municipality, department, or SOE name.

Platform Impact

Tender Radar company profiles now return actual matching tenders based on real DB categories. Organization-based filtering is available as a new profile dimension.

2026-06-22
Security & Trust
Bank Transfer / EFT — security and reliability fixes

Fixed bank account number exposure on GET status endpoint (now masked), race condition on admin verification, empty subscriptionId on invoice creation, audit log placement, and NotificationType enum use.

Key Changes

  • Mask bank account number in GET /api/payments/bank-transfer/[id] response (was returning unmasked).
  • Re-read transfer status inside $transaction in verifyTransfer to prevent concurrent admin race conditions.
  • Fixed invoice subscriptionId resolving to empty string on new-subscription path.
  • Moved BANK_TRANSFER_VERIFIED audit log creation inside the $transaction for atomicity.
  • Replaced as never casts with NotificationType.PAYMENT_PROCESSED enum value.
  • Passed error to serializeError in pending transfers catch block.

Platform Impact

Bank account numbers are no longer leaked via the status endpoint. Concurrent admin verifications are safe against race conditions. Invoices always reference the correct subscription.

2026-06-20
Billing & Access
Bank Account / EFT payment option with reference tracking

Bank Transfer / EFT is now available as a payment method alongside Paystack card payments. Users select their preferred method after choosing a plan, receive a unique reference number to include in their EFT, and see bank details on a confirmation page. Admins manage the verification workflow: mark as received, verify funds, and activate subscriptions. Pending transfers expire automatically via cron, and users see a dashboard banner for pending transfers.

Key Changes

  • Added BankTransferPayment model to prisma/subscription-domain.prisma (additive, Tier 3).
  • Created bank-account.config.ts reading bank details from environment variables.
  • Created bank-transfer.service.ts with initiate, markAsReceived, verify, cancel, list, summary, and expireStale methods.
  • Created 8 API routes: POST initiate, GET status, GET pending, admin list, admin receive, admin verify, admin cancel, admin summary.
  • Created GET /api/cron/bank-transfer-expiry for automatic expiry of stale pending transfers.
  • Created admin UI at /admin/payments/bank-transfers with tabbed filter, action buttons, and detail modal.
  • Modified UpgradeSheet to show payment method choice (Paystack or Bank Transfer) after plan selection.
  • Created confirmation page at /payment/bank-transfer/[id] with reference copy button and bank details.
  • Added pending bank transfer banner to dashboard.
  • Added inline email templates for initiation and verification notifications.

Platform Impact

Users without credit cards can now pay via bank transfer/EFT. The manual verification flow allows admins to confirm payments and activate subscriptions. Unique reference numbers prevent payment confusion.

2026-06-16
SEO & AI Visibility
Tender Radar expands to 35 high-intent company profiles

Expanded the Tender Radar profile library from 19 to 35 company archetypes, covering stationery, pest control, waste management, CCTV, mining services, hospital catering, school nutrition, pharmaceuticals, medical devices, printing, uniforms, event management, marketing, HR/recruitment, fire protection and water/sanitation. Each new profile is mapped to real seeded categories via the category resolver, includes 2–4 FAQs and profile-specific OG highlight text, and is validated by new unit tests.

Key Changes

  • Added 16 new TenderRadar/CompanyProfile definitions in src/lib/explore/company-profiles.ts.
  • Extended src/lib/explore/category-mapping.ts with resolver entries for all new profile category slugs.
  • Added CATEGORY_LABELS entries in src/lib/explore/explore-utils.ts for new primary categories.
  • Updated /tender-radar landing-page examples (ExploreExamples) to surface 9 diverse, high-intent profiles.
  • Profile-specific OG highlight text now drives the /api/og/tender-radar-profile share card when defined.
  • Added unit tests for category resolver coverage and company-profile structural integrity.

Platform Impact

Tender Radar now generates ~315 static profile/province URLs (35 profiles × 9 provinces), up from ~171, capturing more long-tail [service] tenders [province] search demand while keeping every profile mapped to real database categories.

2026-06-16
SEO & AI Visibility
Full sitemap coverage and internal linking for Tender Radar

Complete sitemap coverage for all 604 Tender Radar static URLs (1 landing + 288 province/category pages + 315 profile pages). Updated priority and changefreq values aligned with search importance: landing (0.9/daily), indexes (0.8/daily), profiles (0.85/daily). All page types verified to emit self-referencing canonical URLs. Internal linking chain connects profile pages to parent indexes, back to /tender-radar, and to related profiles. Province/category index profile cards use standard <a> elements with full province names in anchor text.

Key Changes

  • Updated getTenderRadarUrls() priority/changefreq: landing 0.9/daily, indexes 0.8/daily, profiles 0.85/daily.
  • Confirmed all Tender Radar page types set alternates.canonical via getBaseUrl() in generateMetadata.
  • Verified query-param wizard (/tender-radar?...) emits noindex,nofollow to prevent cannonibalisation.
  • Profile pages already link to parent province/category pages, /tender-radar, and related profiles.
  • Province/category index pages render profile cards as standard <a> elements with province name in anchor text.
  • Landing-page ExploreExamples grid links to canonical /tender-radar/{category}/{province}/{profileSlug} URLs.
  • Added/updated sitemap-data unit test: validates priority, changefreq, and URL count for all 604 Tender Radar URLs.

Platform Impact

All 604 Tender Radar static URLs are now discoverable via the sitemap with appropriate priority signals. Internal linking creates a dense topic graph connecting landing → category/province → profile, which helps search engines understand site structure and distribute authority across the section.

2026-06-16
SEO & AI Visibility
Tender Radar pages get dynamic OG images and structured data

Added branded dynamic OG images for Tender Radar profile and province pages, replaced hard-coded URLs with getBaseUrl(), added Twitter cards, and rolled out the platform identity schema bundle (Organization + WebSite + SearchAction + BreadcrumbList). Profile pages now emit WebPage with speakable selectors, a Service schema, and an ItemList of live tenders; province/category pages emit an ItemList of profile cards. Dynamic wizard results with query parameters are now noindex.

Key Changes

  • Created /api/og/tender-radar-profile endpoint with 1200×630 BrandedOgLayout output and 24-hour Edge cache headers.
  • Updated metadata on /tender-radar, /tender-radar/[category]/[province], and /tender-radar/[category]/[province]/[profileSlug] to use getBaseUrl() and include twitter summary_large_image cards.
  • Added canonical Organization, WebSite + SearchAction, and BreadcrumbList JSON-LD to all three Tender Radar page types.
  • Added WebPage with speakable selectors, Service schema, and ItemList of matching tenders to profile pages.
  • Added ItemList of profile cards to province/category index pages.
  • Added SoftwareApplication schema describing Tender Radar to the landing page.
  • Emit robots noindex,nofollow when /tender-radar renders with query parameters.

Platform Impact

Tender Radar pages are now more shareable on social platforms, richer in search snippets, and aligned with the rest of the site schema. Dynamic wizard result URLs are hidden from search indexes so static profile pages remain the canonical landing pages.

2026-06-16
Search & Filtering
Tender Radar profile pages now show matching tenders

Fixed a category-matching bug that caused most Tender Radar company profile pages to return zero tenders. Profile pages now match against the real database category names and canonical names, including sensible aliases across related categories.

Key Changes

  • Tender Radar profile pages now return relevant tenders instead of empty results.
  • Category matching now uses both database category slugs and title-case canonical names.
  • Cross-category aliases are handled so related categories match correctly (e.g. cleaning-services maps to Cleaning & Maintenance).

Platform Impact

Visitors browsing company-type and province profile pages see real, relevant tender opportunities instead of empty lists.

2026-06-15
Billing & Access
Supplier contact details, document list AI summaries, and tender value estimates are now paywalled

Three additional tender detail paywall channels that were deferred from the original v1.3 paywall launch: supplier contact details (registration number, contact person, email, phone, address of the awarded supplier), per-document AI summaries in the SEO document list, and AI-computed tender value estimates. The workspace page shows the built-in purple "Unlock Value Estimates" placeholder for the value channel; the SEO pages use the standard dual-CTA overlay for all three. Cross-page consistency is preserved — a free user navigating between the public SEO page and the authenticated workspace for the same tender sees the same gate treatment. Tier 2 FROZEN modules (FeatureGatingService, TenderValueService) are reused read-only; no frozen module is modified.

Key Changes

  • TenderAwardsCard now accepts a `contactGated` prop. When true (workspace passes `!hasDocAccess`), the supplier contact block (registration, contactPerson, email, phone, address) is wrapped in a PremiumContentGate via the ternary pattern established in v1.3. Public fields (supplierName, RestrictedSupplierBadge, forensic risk pill, CompanyReportButton) stay outside the gate. The 4 SEO layouts (Active, Closed, Cancelled, Awarded) use the external PremiumContentGate wrap for the dual-CTA + JSON-LD signal.
  • TenderDocumentsList now accepts a `gated` prop. When true, the document list body (with per-doc aiSummary) is wrapped in PremiumContentGate. The empty state (no documents) stays public. The 5 SEO layouts (Active, Closed, Cancelled, Awarded, Notice) use the external PremiumContentGate wrap.
  • TenderValueSection now accepts an `isLocked` prop. When true, the section returns early with `<TenderValueCard estimate={null} isLocked={true} />` and SKIPS the expensive `tenderValueService.estimateForTender` database query (perf win for free users — the query scans comparable awarded contracts). Otherwise, `isLocked={false}` is forwarded to the card. The workspace page passes `isLocked={!hasDocAccess}`; the 4 SEO layouts use the external PremiumContentGate wrap (replaces the built-in isLocked UI to gain dual-CTA + JSON-LD).
  • Both the public tender page and the workspace page now emit a JSON-LD paywall WebPage node with isAccessibleForFree="False" and 9 WebPageElement hasPart entries (up from 6), one per gated content category. The 3 new cssSelectors are `.premium-supplier-contact-container`, `.premium-document-list-container`, and `.premium-value-estimate-container`.
  • Removed two dead imports from NoticeTenderLayout: `TenderValueSection` and `TenderValueSkeleton` (neither was rendered in the notice layout). Cleanup, zero behavior change.

Platform Impact

All 9 paywalled channels are now uniform across both tender detail pages. The value estimate channel uses the built-in purple placeholder UI on the workspace (since hasDocAccess is available server-side) and the standard dual-CTA overlay on the SEO pages. The supplier contact and document list channels use the dual-CTA overlay everywhere. Professional/Enterprise subscribers, active Action Pack bundle holders, and existing trial users see full content unchanged. Anonymous visitors on the SEO page may issue 9 parallel feature-access fetches (v1.3 C-4 corrective is a separate spec).

2026-06-15
Billing & Access
Document analysis, AI summaries, contact details, and briefing venue are now paywalled on every tender page

Anonymous visitors and free-tier accounts now see a paywall on every tender detail page (both /sa-tenders/tender/[slug] and /tenders/[id]) for document analysis, AI summaries, AI key requirements, contact information, issuing organization details, and briefing venue. Paid access requires an active subscription (Professional / Enterprise) or any active Action Pack bundle wallet. New registrations no longer create a 14-day Starter trial — they start as free-tier. Existing trial users are grandfathered.

Key Changes

  • Document analysis sections (DocumentAnalysisSection on the public page, TenderDocumentAnalysisCard on the workspace) are now wrapped in a PremiumContentGate with the analysis stepper as preview and a blur + dual-CTA overlay for free users.
  • AI summary card and inline AI key requirements are paywalled on the public page; the AI compliance checklist on the workspace page renders a placeholder (no 100-char excerpts) for free users.
  • Contact information card, sidebar Contact Information card, and Issuing Organization card (directors + org contact details) are paywalled on both pages.
  • Briefing venue (physical address) is paywalled on the three SEO layouts that render the briefing card (Active, Closed, Cancelled).
  • New registrations create a free-tier account (tier: "free", isTrial: false, 0 application slots, ACTIVE status) instead of a 14-day Starter trial. Downstream services that assume a Subscription row continues to work unchanged.
  • The /api/subscription/feature-access/[feature] endpoint now also accepts a BundleWallet holder as paid access — the response includes a new "source" field ("subscription" | "bundle" | "none").
  • Both the public tender page and the workspace page now emit a JSON-LD paywall WebPage node with isAccessibleForFree="False" and 6 WebPageElement hasPart entries, one per gated content category. All gated text remains in the initial HTML for SEO; only the visual blur and overlay are client-side.

Platform Impact

Premium content access is now uniform across both tender detail pages. A free user navigating between the public SEO page and the authenticated workspace for the same tender sees the same paywall behavior for the same content category. Professional/Enterprise subscribers, active Action Pack bundle holders, and existing trial users see full content unchanged.

2026-06-14
Performance & Reliability
Company intelligence profiles load significantly faster

Company intelligence profile pages were loading very slowly or timing out due to expensive database queries and a remnant of the restricted supplier integration that was removed from the UI but still ran on every page load. The page now loads in seconds instead of timing out.

Key Changes

  • Fixed the distinct-company count query that ran a full GROUP BY without LIMIT (5-30s query) — replaced with SELECT DISTINCT which is an order of magnitude faster.
  • Replaced the related-companies search with a lightweight paginated query instead of the full search pipeline.
  • Removed the OCPO restricted supplier database check from forensic scoring — the associated UI banner was already removed but the backend query still ran on every page load.
  • Moved the cipcEnrichment.count() outside the per-flag loop in forensic context computation — was running N times per page, now runs once.

Platform Impact

Company intelligence profile pages load reliably instead of timing out. This affects every company profile page on the platform.

2026-06-13
Procurement Compliance
World Bank debarred firms now shown on company intelligence profiles

Company intelligence profiles now surface World Bank debarments alongside the existing OCPO restricted supplier data. If a SA-registered company appears on the World Bank debarment list, it will be flagged in their profile — expanding compliance coverage beyond South Africa's National Treasury list.

Key Changes

  • World Bank debarred firms are now checked against registered South African companies. Any match is surfaced on the company's intelligence profile.
  • Data is refreshed weekly to stay current.

Platform Impact

Broader compliance coverage — company profiles now surface international debarments alongside local OCPO restrictions.

2026-06-13
Procurement Compliance
Restricted supplier status now visible across Company Intelligence, Organisation, Province, and Awards pages

Every company profile now shows a unified restricted supplier status banner — red for active restrictions, amber for expired ones, green for clean records. Organisation and province pages list restricted suppliers tied to that body. Award cards show a badge next to restricted supplier names.

Key Changes

  • Company Intelligence pages always show a restricted supplier status banner with per-source breakdown.
  • Organisation detail pages list restricted suppliers tied to that body, with links to their profiles.
  • Province detail pages show restricted suppliers tied to local authorities in that province.
  • Award cards show a red "Restricted" or green "Verified" badge next to the supplier name.
  • Award detail pages show a warning card when the winning supplier has active restrictions.

Platform Impact

Restricted supplier information is now surfaced across the platform wherever a company appears — on its profile, in award listings, and on organisation or province pages — without needing to check a separate list.

2026-06-11
Company Intelligence
Company profiles for claimed businesses no longer crash

Company intelligence pages for claimed company profiles were crashing when the claim-owner enrichment section tried to load. The owner's contact details, capabilities, B-BBEE level, and profile text now display correctly.

Key Changes

  • Claimed company intelligence pages no longer crash when rendering owner information.
  • Company owners' email, phone, and website are now displayed correctly on approved profiles.

Platform Impact

The company claim flow now completes successfully — approved claimants see their profile render fully instead of crashing.

2026-06-11
SEO & AI Visibility
AI platforms can now read and cite Tenders-SA content accurately

AI assistants like ChatGPT, Gemini, Claude, and Perplexity can now read Tenders-SA pages as clean markdown. Every major public route serves an AI-optimised version, with rate limits that distinguish well-behaved bots from scrapers. A daily cost guardrail keeps bandwidth in check.

Key Changes

  • 70+ public routes serve AI-optimised markdown to known AI bots — tenders, provinces, categories, blog, legislation, glossary, and more.
  • Well-behaved AI bots get 60 requests per minute; abusive scrapers are limited to 10.
  • A daily bandwidth cap monitors AI traffic and alerts admins if thresholds are exceeded.

Platform Impact

AI platforms can now discover, read, and cite Tenders-SA content. The site is a first-class data source for AI training and real-time answers, with safeguards against unexpected bandwidth costs.

2026-06-11
Performance & Reliability
Company Intelligence and Forensic Analysis pages load faster for returning visitors

Anonymous visitors (including AI crawlers) now get cached HTML from Cloudflare on repeat visits instead of triggering a full server render. Pro subscribers still see their full unlocked reports; free visitors see the locked default.

Key Changes

  • Company Intelligence and Forensic Analysis pages now serve cached content to anonymous repeat visitors — no server round-trip.
  • Pro subscribers continue to see the full report after a brief client-side upgrade.

Platform Impact

Repeat visits are served from Cloudflare's edge, reducing server load while keeping auth state correct for every user.

2026-06-11
Performance & Reliability
Tender detail pages and AI summaries are faster and more efficient

Tender detail pages are now cached instead of being rebuilt from the database on every visit. Blog, legislation, province, and category pages are served from Cloudflare's edge. AI rewrite jobs now run every 2 hours instead of every 15 minutes.

Key Changes

  • Tender detail pages load faster — served from cache instead of running a full database query on every visit.
  • Blog, legislation, province, and category pages served from Cloudflare edge cache.
  • AI summaries for new tenders appear within 2 hours (previously every 20 minutes).

Platform Impact

Faster page loads and lower platform costs. No visible change to what users see on any page.

2026-06-10
Billing & Access
Company profile claim flow completed — edit your profile from the dashboard

After paying the R1,500 claim fee, company owners can now edit their internal Company profile from the dashboard. The public profile shows owner-provided information (contact details, B-BBEE level, capabilities) in an "Additional information from the company owner" section. Expired trials are reactivated at no extra charge.

Key Changes

  • Pay the R1,500 claim fee and get immediate dashboard access, even if your trial expired.
  • Edit your company's name, registration, tax, B-BBEE, industry, provinces, and capabilities from the dashboard.
  • Your public profile shows a new section with your contact details and company information.

Platform Impact

Company owners who pay the claim fee can now manage their public profile and keep their information current.

2026-06-10
Billing & Access
Claim payments via Paystack now processed reliably

When a user pays the R1,500 Company Profile Claim fee via Paystack, the payment is now correctly reconciled. Previously, the webhook could create a phantom subscription instead of marking the claim as paid.

Key Changes

  • Paystack claim payments are now reliably reconciled — no more phantom subscriptions.
  • Closing the browser before returning to the success page no longer leaves claims stuck in pending.

Platform Impact

Claim payments via Paystack work end-to-end without manual intervention.

2026-06-10
Billing & Access
Paystack subscription checkout on the pricing page works again

Clicking "Subscribe" on the pricing page was failing for Starter, Professional, and Enterprise plans with a Paystack "Invalid Amount Sent" error. This is now fixed — users can complete checkout end-to-end.

Key Changes

  • All three paid plans now load the Paystack checkout overlay correctly when you click Subscribe.
  • Prices remain unchanged at R250, R800, and R2,000 per month.

Platform Impact

Users can successfully start a Paystack subscription from the pricing page without errors.

Related:/pricing
2026-06-09
Billing & Access
New subscriptions and purchases now use Paystack with ZAR support

Paystack replaces PayPal as the primary payment processor for all new transactions. New subscriptions, one-time product purchases, and claim payments now go through Paystack in South African Rand. Existing PayPal subscribers are unaffected.

Key Changes

  • New subscriptions use Paystack with ZAR pricing — no more USD conversion costs.
  • One-time product purchases and claim payments also use Paystack.
  • Existing PayPal subscribers continue on PayPal with no changes.

Platform Impact

All new payments are processed in ZAR through Paystack. Pricing has been reduced across most plans.

Related:/pricing
2026-06-09
SEO & AI Visibility
Browse company profiles by category and province with Tender Radar

Tender Radar now has province-level pages for every category. You can browse all company profiles in a specific category and province combination. It's linked from the navigation menu, footer, and SA Tenders pages.

Key Changes

  • Province-level Tender Radar pages let you browse companies by category and location.
  • Tender Radar is now accessible from the navigation menu, footer, and SA Tenders hub.

Platform Impact

Easier discovery of companies by category and province, with search engine visibility for each combination.

Related:/tender-radar
2026-06-07
SEO & AI Visibility
Features, how-it-works, changelog, and intelligence pages now have richer search engine data

All feature pages, the how-it-works guide, changelog, and intelligence feed now carry proper structured data. AI assistants can surface the 4-step HowTo process from how-it-works, understand changelog freshness, and cite the intelligence dataset.

Key Changes

  • Feature sub-pages now link to the platform's search engine identity for proper attribution.
  • How-it-works page now has a HowTo schema so Google can surface the 4-step process in search results.
  • Changelog page tells search engines when it was last updated.
  • Intelligence feed now described as a Dataset that AI assistants can cite.

Platform Impact

Better search engine understanding of these pages, enabling rich results and AI citation.

2026-06-07
SEO & AI Visibility
Blog and legislation pages now link to related tenders and procurement laws

Blog posts now link to related tenders in their structured data. Legislation pages map each act to its regulator — National Treasury for PFMA, B-BBEE Commission for the BBBEE Act, CIDB for the CIDB Act — so search engines and AI assistants can answer "who regulates what".

Key Changes

  • Blog posts now reference relevant tenders in their structured data, connecting articles to procurement opportunities.
  • Legislation pages identify the regulator for each act, making it clear which body enforces each law.

Platform Impact

Search engines and AI assistants can now connect blog content to specific tenders and map procurement laws to their regulators.

2026-06-07
Company Intelligence
Claim workflow fixes: file uploads, resume links, and clearer email CTAs

Four improvements to the company profile claim flow: proof documents are saved reliably with a 10MB cap, the payment button says "Pay Now", the "Resume Claim" link in emails works correctly, and "Claim Under Review" emails no longer point to admin-only pages.

Key Changes

  • Proof-of-ownership documents are saved with a 10MB file size limit.
  • The payment button now says "Pay Now" with the price shown clearly.
  • Resume Claim links in emails now take you back to the correct step.
  • Claim Under Review emails no longer link to admin-only pages.

Platform Impact

Fewer stuck claims and clearer communication throughout the claim process.

2026-06-07
SEO & AI Visibility
Publishers Hub pages now have richer search engine structured data

The Publishers Hub, all 5 sector pages, and the developers page now use the same structured data system as the rest of the platform, with proper attribution to Tenders SA.

Key Changes

  • Publishers Hub pages are now correctly attributed to the platform in search engine knowledge graphs.

Platform Impact

More consistent search engine representation across the Publishers section.

Related:/publishers
2026-06-07
SEO & AI Visibility
Province, organisation, and category listing pages now richer in search results

Province pages, organisation-type filters (municipalities, SOEs, national departments), category sub-pages, and awards pages now carry richer structured data. AI assistants can answer "how many awards in each province" or "list municipalities" from typed data.

Key Changes

  • Province notice and cancellation pages now described as geographic areas in search data.
  • Municipality, SOE, and department filter pages now tagged as government organisation types.
  • Category sub-pages (closed, awarded, notices, cancellations) describe the category itself.
  • Awards pages expose a dataset AI assistants can cite for award statistics.

Platform Impact

Better search engine understanding of listing pages and AI assistants can answer questions about award statistics.

2026-06-07
SEO & AI Visibility
Home and pricing pages now richer in search results with plan details and FAQs

The home page now describes its stats as a Dataset and the platform as a SoftwareApplication. The pricing page exposes each plan as a typed Service with ZAR pricing, so AI assistants can answer "how much does Tenders SA cost" from structured data.

Key Changes

  • Home page now describes its live stats (active tenders, awards, companies) as a Dataset.
  • Pricing page exposes each plan as a Service with ZAR pricing — AI assistants can answer cost questions directly.

Platform Impact

Search engines and AI assistants get a complete picture of what Tenders SA is, what data it provides, and what it costs.

Related://pricing
2026-06-07
SEO & AI Visibility
Tenders SA now searchable with social profiles and contact details in knowledge graph

The Tenders SA organisation entity now carries full social profiles (Facebook, LinkedIn group, X), WhatsApp contact, and South Africa address. AI assistants can answer "how do I contact Tenders SA" from structured data.

Key Changes

  • Tenders SA brand entity now includes Facebook, LinkedIn group, and X profiles.
  • WhatsApp and email contact details available in structured data.
  • Publishers Hub pages migrated to the same XSS-safe structured data system.

Platform Impact

Google can build a complete knowledge panel for Tenders SA and AI assistants can answer contact and social questions.

2026-06-07
Company Intelligence
Company claim workflow now resumes after interruption

Users who close the claim modal mid-flow can now return and pick up at the correct step — upload proof, pay, or awaiting review — instead of starting over. Rejected claims retain their full audit history.

Key Changes

  • Claim workflow now resumes from the correct step after a PayPal cancel, browser close, or network blip.
  • A "Resume your claim" prompt appears on your profile if you have an in-progress claim.
  • Rejected claims are no longer deleted on re-claim — admin review history is preserved.
  • The "Verified Profile" badge now only appears for admin-approved claims.

Platform Impact

Less friction in the R1,500 claim flow — no more losing your place or having to re-submit from scratch.

2026-06-07
Company Intelligence
Admins can now review company claims from a dedicated dashboard

A new admin claims dashboard lets admins find, filter, review, approve, and reject pending claim requests. Claimants receive emails on every state change. Approved claims unlock a profile editor.

Key Changes

  • New admin claims page with Pending / Approved / Rejected tabs, filters, and pagination.
  • Claimants receive emails when a claim is received, approved, or rejected.
  • Admins receive a notification when a new claim needs review.
  • Approved claims unlock a "Manage this profile" dashboard page.

Platform Impact

Completes the claim feature — admins can review claims, and users who pay the R1,500 fee get verified profile access.

2026-06-06
SEO & AI Visibility
Company profiles now show what they do and who they work for in search results

Company intelligence profiles now expose their top awarded categories and most frequent awarding bodies in structured data. A new DynamicSchema wrapper makes it easy to add similar data to other page types.

Key Changes

  • Company profiles show their top awarded categories and most frequent awarding bodies in search engine data.
  • AI assistants can now answer "what does this company do" or "who buys from this company" from structured data.

Platform Impact

Better search engine understanding of each company's specialisation and customer base.

2026-06-06
SEO & AI Visibility
Tender detail pages now show direct contact details for bid enquiries

Awarding organisations on tender detail pages now expose a "Tender Enquiries" contact point with phone numbers in standard international format.

Key Changes

  • Tender detail pages now show structured contact details for bid enquiries.
  • Phone numbers are normalised to international format for cross-market compatibility.

Platform Impact

AI assistants can cite direct procurement contact information from tender pages.

2026-06-06
SEO & AI Visibility
All 12 tool pages now discoverable with structured data

Every tool page — B-BBEE calculator, CIDB grade calculator, compliance checklist, preparation planner, readiness assessment, AI proposal generator, value estimator, JV calculator, forensic analysis, company lookup, heatmap, and company intelligence — now carries proper structured data.

Key Changes

  • All 12 tool pages now share the same search engine identity as the rest of the platform.
  • Tool pages with FAQ content now surface those questions in search results.
  • The heatmap no longer showed a fictional rating — it now describes real data.

Platform Impact

Tools section is now fully discoverable with accurate descriptions, pricing, and structured data.

Related:/tools
2026-06-06
AI Matching & Intelligence
Tender document analysis now shows progress on each document

Tender detail pages now show a progress indicator on the documents panel — "Reading the tender document", "Compliance review", "Bid-ready summary" — so you can see at a glance which documents have been analysed.

Key Changes

  • Document analysis progress shown per document: reading → compliance review → bid-ready summary.
  • Status is explained in plain procurement language, not technical terms.

Platform Impact

Users can see at a glance which documents are ready for bid preparation and which are still being analysed.

2026-06-06
AI Matching & Intelligence
Tender matching score now shows partial results when eligibility fails

Clicking "Calculate Matching Score" previously returned 0% if any eligibility gate failed. You now see a partial score from the other 12 matching factors plus the full breakdown, so you can identify which dimension to improve.

Key Changes

  • Partial score shown even when eligibility criteria fail — see which other factors still match.
  • Full factor breakdown lets you identify weak areas like industry codes, BBBEE, or province.

Platform Impact

More informative matching scores — users can see which specific areas to improve rather than getting a flat 0%.

Related:/tenders/[id]
2026-06-06
SEO & AI Visibility
All tender pages now share a single identity bundle in search results

Every tender-related page now shares the same Organisation and Website identity in search engine data, creating a unified entity. XSS vulnerabilities in JSON-LD rendering have been closed across all tender routes.

Key Changes

  • Every tender page now contributes to a single Tenders SA entity in Google's knowledge graph.
  • Breadcrumbs are now consistent and deduplicated across tender detail pages.

Platform Impact

Stronger brand signals across all tender routes and better search engine understanding of site structure.

2026-06-05
SEO & AI Visibility
Company intelligence paywall now correctly signalled to Google

Company intelligence pages now use the correct Schema.org paywall markup so Google understands which content is behind the subscription, resolving indexing issues for premium pages.

Key Changes

  • Paywalled content on company intelligence pages now properly marked in structured data.

Platform Impact

Company intelligence pages should now be properly indexed by Google while maintaining the paywall for non-subscribers.

2026-06-04
Performance & Reliability
Email delivery reliability improved with new provider fallback ordering

Fixed a bug where automated email flows were skipping the primary email provider and falling through to more expensive backups. All 60+ automated email flows now correctly try providers in the intended order.

Key Changes

  • All automated email flows now route through providers in the correct priority order.
  • Admin dashboard no longer shows spurious email connection errors on cold start.

Platform Impact

More reliable email delivery with correct provider prioritisation.

Related:/admin/emails
2026-06-04
Platform Updates
AI Document Analysis now matches the platform theme

The AI Document Analysis card on tender detail pages now uses the same green accent, gradient header, and branded styling as the rest of the page. Evaluation criteria headings now stack vertically for easier scanning.

Key Changes

  • Document analysis card now matches the page's green accent theme.
  • Evaluation criteria headings sit above their content instead of cramped beside it.

Platform Impact

Consistent visual experience — the document analysis section looks like it belongs on the page.

2026-06-03
SEO & AI Visibility
No more duplicate content in AI Document Analysis

When multiple tender documents restate the same information, duplicates are now suppressed. Each section shown on the page is unique across the entire tender — even when five documents carry the same paragraph.

Key Changes

  • Duplicate analysis sections across documents are now automatically suppressed.
  • First document to surface content wins; later duplicates are hidden.

Platform Impact

Cleaner reading experience — no more seeing the same paragraph multiple times under different headings.

2026-06-03
SEO & AI Visibility
SEO metadata generation now more reliable

All SEO metadata is now generated through a single, orchestrated pipeline with provider failover. Tender page descriptions are no longer at risk of being silently overwritten by inline AI on the request path.

Key Changes

  • SEO generation now uses the same AI orchestration as every other AI feature on the platform, with automatic provider failover.
  • Tender page metadata is no longer generated on the request path — reduces risk of broken or off-topic descriptions.

Platform Impact

More reliable, consistent SEO metadata across all tender pages.

2026-06-03
Performance & Reliability
Navigation bar API status now uses updated infrastructure

The API status indicator in the navigation bar now fetches metrics through updated backend routes. No visible change for users.

Key Changes

  • API status indicator now powered by updated infrastructure.

Platform Impact

Continued accurate API health display with no user-facing changes.

2026-06-02
Performance & Reliability
Amazon SES now primary email provider

All outbound email now routes through Amazon SES first, with SendPulse and Resend as automatic fallbacks. This reduces email delivery costs while maintaining reliability with a 3-provider fallback chain.

Key Changes

  • Amazon SES is now the primary email provider for all notifications.
  • SendPulse and Resend remain as automatic fallbacks if SES is unavailable.
  • No user-facing changes — email notifications work exactly as before.

Platform Impact

Lower email delivery costs with improved reliability through a 3-provider fallback chain.

2026-06-02
AI Matching & Intelligence
Extended tender document analysis — 15+ section types with source attribution

Tender document analysis now classifies content into 15+ section types, up from 7. Each section shows which source document it came from, so you can trace every requirement back to its original file.

Key Changes

  • Document analysis now recognises 15+ section types instead of 7 — more precise browsing of tender requirements.
  • Every analysis section shows its source document name for full provenance.

Platform Impact

Richer, more accurate document analysis with clear attribution to source documents.

2026-06-02
AI Matching & Intelligence
Extended document analysis now rewritten professionally

All existing tender documents with extended analysis sections now have professionally rewritten text. New documents get the same treatment on ingestion.

Key Changes

  • All existing extended analysis sections professionally rewritten for readability.
  • New documents are rewritten on ingestion — no manual backfill needed going forward.

Platform Impact

Consistent, professional-quality analysis text across all tenders.

2026-06-02
Performance & Reliability
Fixed tender extraction crash for live document ingestion

Tender extraction was failing mid-write with a Prisma error. The fix lets live document ingestion complete end-to-end without crashing.

Key Changes

  • Live document extraction no longer crashes during the save step.
  • New tender documents now ingest end-to-end as designed.

Platform Impact

New tender documents are reliably ingested without errors.

2026-06-01
Document Downloads
Document downloads now go through Workers for better reliability

Tender document downloads now use Cloudflare Workers to fetch and cache files, with the main app providing a resilient download URL.

Key Changes

  • Document downloads now use a Cloudflare Worker for caching and serving.
  • Maintains a fallback path so documents are always accessible.

Platform Impact

More reliable document downloads with edge caching for faster delivery.

2026-06-01
Document Downloads
Tender documents now cached at Cloudflare edge for faster downloads

A new document retrieval Worker caches tender documents at the Cloudflare edge, reducing load on government portals and speeding up downloads for users.

Key Changes

  • Documents are cached at the edge after first fetch — subsequent downloads are faster.
  • Reduces dependency on government portal availability.

Platform Impact

Faster document downloads and less reliance on potentially unreliable government sources.

2026-06-01
Document Downloads
R2-backed document URLs now preferred for all downloads

Document download URLs now prefer R2-backed Cloudflare storage over original government source URLs. Source URLs are only used as a fallback.

Key Changes

  • Document downloads prefer cached R2 storage over original government URLs.
  • Government source URLs are used only as emergency fallback.

Platform Impact

More reliable document access even when government portals are down.

2026-06-01
Tender Data
D1 schema aligned for document metadata storage

The Worker's database schema now uses the correct table layout for document metadata, matching the application's expectations.

Key Changes

  • Document metadata stored with consistent schema across Worker and app.

Platform Impact

Reliable document metadata storage without data loss or mapping errors.

2026-06-01
Tender Data
Document key format standardised across storage

R2 storage now uses a standardised key format: government tender ID + original document blob name. No more random or generated keys.

Key Changes

  • Documents stored with consistent, predictable keys based on original tender and document IDs.

Platform Impact

Documents are always findable at a predictable location regardless of how they were ingested.

2026-06-01
Document Downloads
Legacy document URLs repaired with correct metadata

A repair process has fixed existing document rows that had incorrect or broken URLs, populating missing metadata from original sources where possible.

Key Changes

  • Existing document records repaired with correct URLs and metadata.

Platform Impact

Documents that previously had broken download links now work correctly.

2026-06-01
Tender Data
Worker now repairs broken document URLs on ingestion

The document ingestion pipeline now repairs broken source URLs by fetching fresh metadata from government portals, populating the correct download links.

Key Changes

  • Document ingestion now repairs broken government URLs by re-fetching metadata.
  • Correct download links are populated automatically.

Platform Impact

New documents ingested with correct, working download URLs from the start.

2026-06-01
Document Downloads
Document download URL resolution now prefers R2

The document download endpoint now resolves R2-backed URLs first. If a document exists in R2 cache, it serves from there before falling back to the original government source.

Key Changes

  • Document downloads now prefer cached R2 storage.
  • Government source URLs are used only if R2 is unavailable.

Platform Impact

More reliable downloads — works even when government portals are down.

2026-06-01
Document Downloads
Tender detail document buttons now use download URL endpoint

Document download buttons on tender detail pages now route through the download URL API, which resolves the best available storage location.

Key Changes

  • Download buttons now use the API endpoint for URL resolution.

Platform Impact

More reliable document downloads from tender detail pages.

2026-06-01
Security & Trust
Privacy policy page added

A new privacy policy page explains what data we collect, how we use it, and your rights under South African law.

Key Changes

  • New privacy policy page with clear explanation of data practices.

Platform Impact

Users can understand their privacy rights and how their data is handled.

Related:/privacy
2026-06-01
Security & Trust
Terms of service page added

A new terms of service page outlines the rules for using the platform, subscription terms, and liability provisions.

Key Changes

  • New terms of service page with clear usage rules.

Platform Impact

Users can review the legal terms governing platform use.

Related:/terms
2026-06-01
Company Intelligence
CIPC enrichment data now includes director information

Company enrichment data now includes director names and details, enabling director-level analysis on company profiles.

Key Changes

  • Company profiles now include director information from CIPC data.

Platform Impact

Richer company profiles with director-level detail.

2026-06-01
Procurement Compliance
OCPO restricted supplier data now enriched with CIPC matches

Restricted supplier entries from the National Treasury list are now matched against CIPC-registered companies. When a match is found, the restricted supplier status appears on the company's intelligence profile.

Key Changes

  • OCPO restricted supplier entries matched against registered South African companies.
  • Matching companies show restricted supplier status on their intelligence profile.

Platform Impact

Tighter integration between government restricted supplier data and company profiles.

2026-06-01
Procurement Compliance
Restricted supplier sync now detects PDF changes automatically

The daily restricted supplier sync now checks whether the PDF has changed before processing. Unchanged PDFs are skipped entirely, reducing load and avoiding unnecessary writes.

Key Changes

  • Daily restricted supplier sync skips processing when the PDF hasn't changed.

Platform Impact

Faster, more efficient daily syncs with no unnecessary database writes.

2026-06-01
Procurement Compliance
Restricted supplier PDF now configurable from admin settings

The PDF URL used for restricted supplier sync can now be configured from the admin settings, with a sensible default if not set.

Key Changes

  • Admin can configure the restricted supplier PDF URL via settings.

Platform Impact

Admin control over data source without code changes.

Related:/admin
2026-06-01
Procurement Compliance
Restricted supplier sync status now tracked per source

Sync metadata now tracks when each restricted supplier source was last updated, so the platform can show data freshness per source.

Key Changes

  • Per-source sync timestamps tracked for data freshness indicators.

Platform Impact

Users can see how recent each restricted supplier source is.

2026-06-01
Procurement Compliance
CI restricted supplier banner shows per-source freshness

The restricted supplier banner on Company Intelligence profiles now shows when each data source was last checked.

Key Changes

  • Restricted supplier status banner shows freshness per data source.

Platform Impact

Users can assess how current the restricted supplier data is for each source.

2026-06-01
Procurement Compliance
CI restricted supplier integration — org and province sidebars

Organisation and province detail pages now show a sidebar listing restricted suppliers tied to that body or local authority.

Key Changes

  • Organisation pages show restricted suppliers linked to that body.
  • Province pages show restricted suppliers linked to local authorities in that province.

Platform Impact

Cross-reference restricted suppliers by organisation and location.

2026-06-01
Procurement Compliance
Restricted supplier data exposed through public API

The public API now supports querying restricted suppliers by source and authorised body.

Key Changes

  • Public API supports source and authorised body filters for restricted suppliers.

Platform Impact

API consumers can query restricted supplier data with flexible filters.

Related:/api/v1
2026-06-01
Company Intelligence
CIPC enrichment pipeline established

CIPC company registration data is now enriched and stored alongside tender data, enabling company lookups, director analysis, and cross-referencing with restricted supplier lists.

Key Changes

  • CIPC company data enriched and available for cross-referencing.

Platform Impact

Foundation for company intelligence features — lookups, director analysis, and compliance checks.

2026-06-01
Platform Updates
Admin settings page added for data source configuration

Admins can now configure data source URLs and sync settings from a dedicated admin page.

Key Changes

  • New admin settings page for configuring data sources.

Platform Impact

Admin control over platform data sources without code changes.

Related:/admin
2026-06-01
Performance & Reliability
SES email diagnostics available in admin dashboard

The admin dashboard now shows Amazon SES connection status and diagnostics for easier troubleshooting.

Key Changes

  • Admin dashboard shows SES email provider status and diagnostics.

Platform Impact

Easier troubleshooting of email delivery issues.

Related:/admin
2026-06-01
Performance & Reliability
Email provider diagnostics added to admin dashboard

The admin dashboard now shows diagnostics for all email providers (SES, SendPulse, Resend) at a glance.

Key Changes

  • Admin dashboard shows health status for all email providers.

Platform Impact

Easier monitoring of email infrastructure health.

Related:/admin
2026-06-01
Security & Trust
Cron secret validation added to all job endpoints

All cron job endpoints now validate a shared secret before executing, preventing unauthorised invocation.

Key Changes

  • All scheduled job endpoints require authentication via shared secret.

Platform Impact

Internal cron jobs are protected from unauthorised external invocation.

2026-06-01
Platform Updates
Cron routes added to middleware public route whitelist

Cron job endpoints have been added to the middleware's public route whitelist so they can be reached without session authentication.

Key Changes

  • Cron endpoints accessible without user session (authenticated via secret).

Platform Impact

Internal scheduled jobs can run without requiring a user session.

2026-06-01
Procurement Compliance
OCPO restricted supplier daily sync established

A daily cron job downloads the National Treasury OCPO restricted supplier PDF, parses it, and syncs entries to the database. Changes detected via PDF hash comparison to avoid unnecessary processing.

Key Changes

  • Daily sync of OCPO restricted supplier list from National Treasury PDF.
  • Change detection via PDF hash avoids unnecessary processing.

Platform Impact

Restricted supplier data stays current with daily refreshes.

2026-06-01
Procurement Compliance
OCPO sync now configurable from admin dashboard

The OCPO restricted supplier PDF URL can now be changed from the admin dashboard, with automatic fallback to the default URL.

Key Changes

  • Admin can configure the restricted supplier PDF URL from the dashboard.
  • Default URL used if no custom URL is configured.

Platform Impact

Admin control over data sources without requiring code deployments.

Related:/admin
2026-06-01
Procurement Compliance
Restricted supplier entries now severity-classified

Restricted supplier entries are now automatically classified by severity (critical, high, medium) based on the restriction reason, helping users triage the most important restrictions.

Key Changes

  • Restrictions classified as critical, high, or medium based on the reason.
  • Critical restrictions (corruption, fraud, collusion) flagged prominently.

Platform Impact

Users can focus on the most serious restrictions first.

2026-06-01
Company Intelligence
Restricted supplier entries now fuzzy-matched by company name

Restricted supplier entries are now matched to CIPC companies using fuzzy name matching, catching companies with slight name variations.

Key Changes

  • Fuzzy name matching catches companies with slight spelling differences.

Platform Impact

Better match rates for restricted suppliers whose names don't exactly match CIPC records.

2026-06-01
Procurement Compliance
Awards cards now show restricted supplier risk badges

Award cards across the platform now show a red "Restricted" or green "Verified" badge next to supplier names, giving an immediate visual indicator of supplier risk.

Key Changes

  • Award cards show restricted supplier badges next to supplier names.
  • Red badge for restricted, green badge for verified clean.

Platform Impact

Users can assess supplier risk at a glance while browsing awards.

2026-06-01
Procurement Compliance
Award detail pages show warning for restricted winning suppliers

When a winning supplier has active restrictions, the award detail page now shows a warning card with restriction details — type, period, and authority.

Key Changes

  • Award detail pages show a warning card when the winning supplier is restricted.
  • Warning includes restriction type, period, and the authority that issued it.

Platform Impact

Users can immediately see if a winning supplier carries compliance risk.

2026-06-01
Company Intelligence
Company name matching now ignores legal suffixes uniformly

Company name matching across the platform now normalises legal suffixes consistently — Pty Ltd, Ltd, Inc, CC, NPC, SOC Ltd — so variations don't prevent correct matches.

Key Changes

  • Company name normalisation now standardises legal suffixes across all matching.

Platform Impact

Better match rates when company names differ only in legal suffix formatting.

2026-06-01
Procurement Compliance
OCPO sync now stores entries with normalised company names

Restricted supplier entries are now stored with normalised names at write time, improving matching consistency.

Key Changes

  • Normalised names stored during sync for consistent matching.

Platform Impact

More consistent and accurate matching of restricted suppliers to companies.

2026-06-01
SEO & AI Visibility
SEO data generation now uses dedicated pipeline

SEO metadata is now generated through a dedicated pipeline that runs after tender analysis, rather than inline during page requests.

Key Changes

  • SEO metadata generated after document analysis, not during page requests.

Platform Impact

More reliable SEO data generation without impacting page load times.

2026-06-01
AI Matching & Intelligence
Tender AI analysis pipeline set up

Tender documents are now automatically analysed for key information — requirements, evaluation criteria, compliance needs, and bid preparation guidance.

Key Changes

  • Automatic AI analysis of tender documents for key information extraction.

Platform Impact

Users get AI-generated analysis on tender documents without manual effort.

2026-06-01
AI Matching & Intelligence
Per-tender AI analysis pipeline established

Every new tender now gets automatic AI analysis of its documents, extracting requirements, compliance needs, and evaluation criteria.

Key Changes

  • Automatic analysis pipeline for every new tender's documents.

Platform Impact

All new tenders come with AI-generated document analysis from day one.

2026-06-01
AI Matching & Intelligence
Tender analysis progress shown on detail pages

Tender detail pages now show a progress indicator for document analysis, so users know when to check back for results.

Key Changes

  • Progress status shown for tender document analysis on detail pages.

Platform Impact

Users can see when analysis is in progress and when it's complete.

2026-06-01
AI Matching & Intelligence
Tender analysis backfill scans for missed documents

A backfill pipeline scans for tenders that missed analysis and processes them, ensuring full coverage.

Key Changes

  • Backfill pipeline catches tenders that missed initial analysis.

Platform Impact

All eligible tenders eventually get document analysis, even if initial processing was skipped.

2026-06-01
Platform Updates
Notification system with multi-provider fallback

The notification system now supports sending via multiple email providers with automatic fallback, improving delivery reliability.

Key Changes

  • Notifications automatically fall back to alternative email providers if primary is unavailable.

Platform Impact

More reliable notification delivery.

2026-06-01
User Dashboard
Alert preferences added to subscription plans

Users can now configure alert preferences tied to their subscription plan, controlling which notifications they receive.

Key Changes

  • Alert preferences configurable per subscription plan.

Platform Impact

Users control which notifications they receive based on their plan.

2026-06-01
Platform Updates
Email sequence templates and rendering engine

A new email template rendering engine supports dynamic content, sequences, and multi-provider delivery.

Key Changes

  • Email templates support dynamic content and scheduled sequences.

Platform Impact

Consistent, professional email communications with support for automated sequences.

2026-06-01
User Dashboard
Notification digest system for daily/weekly summaries

Users can receive daily or weekly email digests summarising new tenders, awards, and changes relevant to them.

Key Changes

  • Daily and weekly email digests with personalised tender and award summaries.

Platform Impact

Users stay informed without checking the site constantly.

2026-06-01
Procurement Compliance
Restricted supplier severity classification refined

Restricted supplier severity rules updated to better distinguish critical restrictions (fraud, corruption) from medium ones.

Key Changes

  • Improved severity classification for restricted supplier entries.

Platform Impact

More accurate risk flags on company profiles.

2026-06-01
Procurement Compliance
Restricted supplier matching coverage improved

Matching between restricted suppliers and CIPC companies now uses multiple strategies for maximum coverage — registration number, exact name, and fuzzy name.

Key Changes

  • Three-tier matching strategy for maximum coverage.

Platform Impact

More restricted suppliers correctly matched to their CIPC company records.

2026-06-01
Company Intelligence
CIPC enrichment lookup API endpoint

A new API endpoint lets you look up CIPC company enrichment data by name or registration number.

Key Changes

  • API endpoint for CIPC company lookup by name or registration number.

Platform Impact

Programmatic access to company enrichment data.

Related:/api/v1
2026-06-01
Company Intelligence
Admin claim review with document preview

The admin claims dashboard now lets admins preview proof documents inline before approving or rejecting claims.

Key Changes

  • Admin can preview proof documents directly in the claims dashboard.

Platform Impact

Faster, more informed claim review process.

2026-06-01
Company Intelligence
Secure file upload for claim proof documents with type validation

Claim proof documents are uploaded securely with file type validation and size limits, stored safely on the server.

Key Changes

  • Secure file upload with PDF/PNG/JPEG validation and 10MB cap.

Platform Impact

Safe and reliable document upload for the claim process.

2026-06-01
Security & Trust
User password reset flow with email notification

Users can now reset their password through a secure email-based flow.

Key Changes

  • Password reset via email with secure token.

Platform Impact

Users can recover access to their accounts securely.

2026-06-01
Security & Trust
New user registration with email verification

New users can register with email and password, receiving a verification email to confirm their address.

Key Changes

  • Email registration with verification link.

Platform Impact

Secure account creation with verified email addresses.

2026-06-01
Security & Trust
User email verification flow established

A complete email verification flow ensures all user accounts have verified email addresses before accessing restricted features.

Key Changes

  • Email verification required before accessing certain features.

Platform Impact

Improved account security and communication reliability.

2026-06-01
Security & Trust
Edge middleware now performs JWT auth via cookie

Authentication now uses HTTP-only cookies validated at the edge, replacing client-side token storage for better security.

Key Changes

  • JWT authentication now handled via secure HTTP-only cookies at the edge.

Platform Impact

More secure authentication — tokens are never exposed to client-side JavaScript.

2026-06-01
Security & Trust
Secure cookie-based JWT authentication system

The authentication system now uses secure, HTTP-only cookies for token storage with 7-day lifespan, SameSite=Lax, and Secure attributes.

Key Changes

  • Authentication tokens stored as secure HTTP-only cookies.
  • 7-day session with SameSite and Secure protections.

Platform Impact

Defense-in-depth for authentication — tokens can't be stolen by XSS attacks.

2026-06-01
Platform Updates
MySQL database setup complete

Platform database infrastructure initialised with Prisma ORM for tender data, awards, organisations, and user data.

Key Changes

  • Database infrastructure established for core platform data.

Platform Impact

Foundation for all platform features.

2026-06-01
Platform Updates
PostgreSQL database migration completed

Platform migrated from MySQL to PostgreSQL for better performance, advanced features (pg_trgm, full-text search), and lower hosting costs.

Key Changes

  • Database migrated from MySQL to PostgreSQL.
  • PostgreSQL-specific features available: fuzzy matching, full-text search, JSON support.

Platform Impact

Better performance, lower costs, and access to advanced database features.

2026-06-01
Search & Filtering
Search index optimised for tender and company lookups

Database indexes created for faster tender, company, and award searches.

Key Changes

  • Optimised database indexes for faster searches.

Platform Impact

Faster search results across the platform.

2026-06-01
Performance & Reliability
Tender detail page performance improvements

Tender detail pages now load component data in parallel instead of sequentially, reducing page load time.

Key Changes

  • Parallel data fetching for tender detail pages.

Platform Impact

Faster tender detail page loads.

2026-06-01
Performance & Reliability
Caching introduced for frequently accessed data

Redis caching added for frequently accessed platform data (tender counts, company lookups, restricted supplier status) to reduce database load.

Key Changes

  • Redis caching for frequently accessed platform data.

Platform Impact

Faster responses for commonly requested data with reduced database load.

2026-06-01
Performance & Reliability
ISR caching applied to tender and content pages

Incremental Static Regeneration caching applied to tender detail pages and content pages for faster repeat visits.

Key Changes

  • ISR caching for tender detail and content pages.

Platform Impact

Faster load times for repeat visitors to cached pages.

2026-06-01
Tender Data
Live extraction pipeline for tender documents

A live extraction pipeline now processes tender documents as they are published, running AI analysis immediately.

Key Changes

  • Real-time document analysis as new tenders are published.

Platform Impact

New tenders have analysis available soon after publication.

2026-06-01
AI Matching & Intelligence
Tender analysis uses orchestrator AI with provider failover

Document analysis now uses an AI orchestrator that tries multiple AI providers in sequence, ensuring analysis completes even if one provider is unavailable.

Key Changes

  • AI document analysis with automatic provider failover.

Platform Impact

More reliable document analysis with built-in redundancy.

2026-06-01
AI Matching & Intelligence
Tender document analysis now uses latest generation AI

Document analysis upgraded to use the latest generation of AI models for better extraction quality.

Key Changes

  • Upgraded AI models for document analysis.

Platform Impact

Better quality analysis with more accurate information extraction.

2026-06-01
AI Matching & Intelligence
Tender rewrite service established

A dedicated rewrite service converts raw tender data into clear, professional descriptions suitable for public display and SEO.

Key Changes

  • Professional rewrite of tender descriptions for public display.

Platform Impact

Clearer, more professional tender descriptions across the platform.

2026-06-01
AI Matching & Intelligence
Tender AI rewrite now includes smarter section handling

Tender descriptions are now rewritten with structured sections that highlight key information like requirements, deadlines, and compliance needs.

Key Changes

  • Smarter section-based rewriting for better tender descriptions.

Platform Impact

More structured, informative tender descriptions.

2026-06-01
AI Matching & Intelligence
Tender matching engine initial implementation

A matching engine now scores company profiles against tender requirements based on industry codes, location, financial capability, and more.

Key Changes

  • Matching engine scores companies against tender requirements.

Platform Impact

Users can see how well their company matches available tenders.

2026-06-01
AI Matching & Intelligence
Company matching score visible on tender pages

Tender pages now show a "Calculate Matching Score" button that evaluates your company against the tender requirements.

Key Changes

  • "Calculate Matching Score" feature on tender pages.

Platform Impact

Users can immediately assess their fit for any tender.

Related:/tenders/[id]
2026-06-01
AI Matching & Intelligence
Tender matching score breakdown shows 12 factors

The matching engine now considers 12 factors including industry codes, BBBEE, province, value, experience, qualifications, capacity, and document readiness.

Key Changes

  • Matching score considers 12 factors for a comprehensive assessment.

Platform Impact

More accurate matching scores with clear factor breakdown.

2026-06-01
AI Matching & Intelligence
Tender matching cascade with partial eligibility scoring

The matching engine now returns partial scores even when eligibility fails, showing users which specific criteria they don't meet and which they do.

Key Changes

  • Partial matching scores shown when some eligibility criteria fail.

Platform Impact

Users can see their strengths even if they don't meet all requirements.

2026-06-01
AI Matching & Intelligence
Tender matching penalty/sensitivity framework

Matching algorithm uses weighted penalties and sensitivity analysis to produce more nuanced scores.

Key Changes

  • More nuanced matching with weighted factors.

Platform Impact

More accurate, balanced matching scores.

2026-06-01
AI Matching & Intelligence
Province matching uses centralised service with aliases

Province matching now handles city names, regional aliases, and national scope — so "Johannesburg" correctly matches Gauteng, and "National" matches all provinces.

Key Changes

  • Province matching handles city aliases and national scope.

Platform Impact

More accurate location-based matching.

2026-06-01
Company Intelligence
Company registration number validation

Company registration numbers are now validated for correct format when entered on the platform.

Key Changes

  • Validation for company registration number format.

Platform Impact

Cleaner, more consistent company data.

2026-06-01
Company Intelligence
Company lookup by name and registration number

Companies can now be looked up by name or registration number, with the system normalising names for better matching.

Key Changes

  • Company lookup by name or registration number.

Platform Impact

Easier to find and reference companies on the platform.

2026-06-01
Company Intelligence
Company intelligence query service with Redis caching

Company intelligence data now served through a dedicated query service with 1-hour Redis caching for fast repeat lookups.

Key Changes

  • Company intelligence data cached with Redis for faster lookups.

Platform Impact

Faster company profile loads, especially for repeat visits.

2026-06-01
Company Intelligence
Company intelligence pages initial launch

Company intelligence profiles now show comprehensive information including tender awards, CIPC enrichment data, director details, and restricted supplier status.

Key Changes

  • Company profiles with tender awards, CIPC data, directors, and compliance status.

Platform Impact

One-stop company research tool for procurement professionals.

2026-06-01
SEO & AI Visibility
Structured data: all tool pages now use XSS-safe component

All 12 tool pages migrated from raw JSON-LD script blocks to the XSS-safe StructuredData component.

Key Changes

  • Tool pages use XSS-safe structured data rendering.

Platform Impact

Eliminates a class of stored XSS vulnerabilities across all tool pages.

Related:/tools
2026-06-01
SEO & AI Visibility
Structured data: identity bundle applied to home, pricing, and tools pages

Home, pricing, and tools pages now share the same search engine identity bundle as the rest of the platform.

Key Changes

  • Home, pricing, and tools pages now linked to the platform's search engine identity.

Platform Impact

Stronger, unified brand presence across the entire site in search results.

2026-06-01
SEO & AI Visibility
Structured data: identity bundle applied to all tender routes

All 24 tender route templates now share the same Organisation and Website identity bundle.

Key Changes

  • All tender pages now share a unified search engine identity.

Platform Impact

Consistent brand entity across all tender content in search results.

2026-06-01
SEO & AI Visibility
Structured data: DynamicSchema wrapper for page-specific JSON-LD

A new DynamicSchema component provides a typed, safe wrapper for page-specific structured data, making it easier to add without raw JSON-LD.

Key Changes

  • New DynamicSchema component for safe, typed structured data.

Platform Impact

Easier and safer to add page-specific structured data going forward.

2026-06-01
SEO & AI Visibility
Structured data: company profiles expose knowsAbout and sponsor

Company profiles now expose their top categories and awarding bodies in structured data.

Key Changes

  • Company profiles show their specialisation and clients in search engine data.

Platform Impact

Search engines understand what each company does and who they work for.

2026-06-01
SEO & AI Visibility
Structured data: company profile paywall schema

Company intelligence pages now correctly signal paywalled content to Google.

Key Changes

  • Paywalled content properly marked in structured data.

Platform Impact

Google properly indexes company profiles while respecting the paywall.

2026-06-01
SEO & AI Visibility
Structured data: tender contact details as ContactPoint

Tender detail pages now show bid enquiry contact details as a proper ContactPoint in structured data.

Key Changes

  • Bid enquiry contact details available in structured data.

Platform Impact

Search engines and AI can surface tender contact information directly.

2026-06-01
SEO & AI Visibility
Structured data: organisation identity with social and contact details

The Tenders SA organisation entity now includes Facebook, LinkedIn, X profiles, WhatsApp contact, and South Africa location in structured data.

Key Changes

  • Organisation entity now includes social profiles, contact, and location.

Platform Impact

Google can build a complete knowledge panel for Tenders SA.

2026-06-01
SEO & AI Visibility
Structured data: publisher references now consistent throughout

All AI markdown mirrors and site pages now use the same Tenders SA publisher citation in structured data.

Key Changes

  • Consistent publisher attribution across all content.

Platform Impact

Clear, consistent authorship signals for search engines and AI.

2026-06-01
SEO & AI Visibility
Structured data: publisher citation block added to AI markdown mirrors

AI-optimised markdown pages now include a publisher citation JSON-LD block.

Key Changes

  • AI content carries publisher attribution in structured data.

Platform Impact

AI platforms correctly attribute content to Tenders SA when citing.

2026-06-01
SEO & AI Visibility
Structured data: JSON feeds for tenders and awards

JSON feeds for tenders and awards, plus JSON sitemaps for AI aggregators.

Key Changes

  • JSON feeds and sitemaps for AI platforms and feed readers.

Platform Impact

AI platforms and aggregators can consume Tenders-SA data programmatically.

2026-06-01
SEO & AI Visibility
Structured data: llms.txt and llms-full.txt for AI discovery

Standard llms.txt and llms-full.txt files help AI platforms discover and understand the site structure.

Key Changes

  • Standard AI discovery files for LLM platforms.

Platform Impact

AI platforms can easily discover all site content.

2026-06-01
SEO & AI Visibility
Structured data: AI Info API exposes full entity taxonomy

A public AI Info API returns the full entity taxonomy (41 content types), JSON Feed URLs, and LLMs.txt references for AI platforms.

Key Changes

  • Public API for AI platforms describing all content types and feeds.

Platform Impact

AI platforms can programmatically discover everything available on the site.

2026-06-01
SEO & AI Visibility
Structured data: AI-ready content at /_ai/* mirror paths

70+ public routes serve AI-optimised markdown at /_ai/* paths for AI platform consumption.

Key Changes

  • 70+ AI-optimised content mirrors available at /_ai/* paths.

Platform Impact

AI platforms get clean, readable content instead of JavaScript-heavy pages.

2026-06-01
SEO & AI Visibility
Structured data: AI bot detection at edge

16+ AI bot families detected at the edge and served optimised content with appropriate rate limits.

Key Changes

  • AI bot detection with 16+ recognised bot families.

Platform Impact

Well-behaved AI bots get good access; scrapers are limited.

2026-06-01
SEO & AI Visibility
Structured data: robots.txt updated for AI crawlers

robots.txt updated with specific rules for 10+ AI crawler types, blocking abusive scrapers from sensitive paths.

Key Changes

  • Updated robots.txt with specific AI crawler rules.

Platform Impact

Better crawling behaviour — AI bots directed to content, away from API and admin paths.

2026-06-01
SEO & AI Visibility
Structured data: sitemap updated with all pages

Sitemap.xml now includes all page types with appropriate priorities and update frequencies.

Key Changes

  • Complete sitemap with all page types and priorities.

Platform Impact

Better search engine discovery of all pages.

Questions about these updates?

Our team is dedicated to building the best procurement technology for South Africa. If you have feedback or questions about any change, please reach out.

Contact Support