Product Launch
B2B SaaS

BidForge — How I Built an AI Tool That Generates Public Procurement Dossiers in 10 Minutes

French SMEs spend 1,500+ euros per consultant to write procurement bids. I built a tool that does it for 49 euros in 10 minutes.

March 28, 20267 min read
Next.jsFastAPIPythonAISaaSB2BPublic Procurement

The Problem: 200 Billion Euros, Mountains of Paperwork

French public procurement represents over 200 billion euros per year. Every school, hospital, city hall, and public agency buys goods and services through a formal bidding process. For SMEs, this is a massive opportunity.

But there's a catch. To respond to a tender, you need to produce a dossier de candidature: a technical memorandum (mémoire technique) that demonstrates your expertise, a methodology adapted to the buyer's specific needs, administrative forms (DC1, DC2), a price schedule (BPU), and declarations.

Most SMEs either pay a consultant 1,500 to 3,000 euros per bid, spend 20+ hours doing it manually in Word, or simply don't respond at all and leave money on the table.

The average French SME that responds to public tenders spends 15-20 hours per bid on paperwork alone. At 5 bids per year, that's 100 hours of writing the same type of document over and over.
200B+
Annual market (EUR)
1,500+
Consultant cost/bid
20h
Manual writing time
10 min
BidForge generation

The Insight: CCTP Criteria Are the Key

When I studied how procurement evaluators actually score bids, I realized something. Every tender publishes its evaluation criteria and weights in the CCTP (Cahier des Clauses Techniques Particulières). “Technical approach: 25%. Team qualifications: 20%. Timeline: 15%. Price: 40%.”

Consultants who write winning bids don't have magic formulas. They read the CCTP carefully, identify the criteria, and structure the mémoire technique to address each criterion with the buyer's own vocabulary. That's it.

This is exactly the kind of structured, criterion-matching task that AI excels at. Not generating generic text, but parsing specific requirements and producing content that mirrors the evaluator's language.

The Architecture: FastAPI + Next.js + GPT Pipeline

BidForge is built as two services:

  • Frontend: Next.js 16 on Vercel. Landing page, dashboard, market browser, Kanban pipeline, Stripe billing.
  • Backend: FastAPI/Python on a VPS. BOAMP scraper, DCE parser, AI generation pipeline, document assembly.

The generation pipeline is a 6-step process:

  1. DCE Analysis — PyMuPDF extracts text from the uploaded PDF. GPT identifies the market type, evaluation criteria, weights, and key themes.
  2. Section Planning — Based on the detected market type (IT services, construction, consulting), the planner selects 9-11 sections from a catalog, each with a target word count.
  3. Content Generation — 9 concurrent GPT calls, each with a system prompt that enforces specificity: “use the buyer's vocabulary, reference the CCTP criteria, never be generic.”
  4. DOCX Assembly — python-docx builds a professionally formatted document with cover page, table of contents, branded headings, and criterion annotations.
  5. Admin Documents — DocxTemplate fills DC1, DC2, declaration, and BPU from Jinja2 DOCX templates with company data.
  6. ZIP Packaging — Everything goes into a single downloadable ZIP with a README.
The entire pipeline runs in under 2 minutes. The bottleneck is the concurrent GPT calls (9 sections, semaphore limited to 3 at a time). The DOCX assembly itself takes less than a second.

Competitive Intelligence: 10K+ Award Notices

Beyond document generation, BidForge scrapes BOAMP (the official French procurement bulletin) daily and maintains a database of 1,200+ active tenders. Each tender is scored by AI based on relevance to the user's company profile.

The competitive intelligence module tracks 10,000+ historical award notices, allowing users to see who won similar contracts, at what price, and with what team size. This is data that used to require expensive subscriptions to France Marchés or Vecteur Plus.

The Business Model: 30x Cost Reduction

The pricing is simple:

  • Free — Browse tenders, AI scoring (5/day), competitive intelligence
  • 49 euros per dossier — Full document generation (mémoire technique + all admin docs)
  • 199 euros/month (Pro) — 15 dossiers/month, Telegram alerts, unlimited scoring
  • 499 euros/month (Business) — Unlimited everything

At 49 euros per dossier vs 1,500 euros for a consultant, that's a 30x cost reduction. For an SME responding to 5 tenders per year, BidForge saves 7,000+ euros annually.

Try It: Free First Generation

The fastest way to see if BidForge works for your use case is to try it. Upload your DCE (the PDF from the procurement platform), enter your email, and get your complete dossier in 10 minutes. No account required, first generation is free.

Tech Stack

Next.js 16
Frontend + SSR
FastAPI
Backend API
MongoDB Atlas
Database
GPT-5.1
Content generation
python-docx
DOCX assembly
PyMuPDF
PDF extraction
Stripe
Billing
Vercel
Hosting

What's Next

BidForge is live and generating real dossiers. The next steps are about validation and expansion:

  • Get feedback from 10 real users on document quality
  • Make the monitoring/scoring module free as an SEO engine
  • Explore international expansion (TED for EU tenders, SAM.gov for the US)
  • Build a reusable company knowledge base so each successive bid improves

If you're an SME responding to public tenders in France, try BidForge for free and let me know what you think.

A

Andy Garcia

Fullstack developer building AI-powered tools. Shipping fast, learning in public.