Skip to content
MHMichel Habchy
← All projects

AI SaaS · Full-Stack Engineering · Document Intelligence

Production

Taqdeer

AI-powered construction estimation SaaS

A bilingual Arabic/English multi-tenant SaaS that turns construction RFPs into structured, priced Bills of Quantities, combining AI document analysis, semantic catalogue search, assembly-aware matching and deterministic pricing.

Role
Co-Founder & Full-Stack Engineer
Timeframe
2025 – Present

The problem

Construction estimation requires engineers to interpret project documents, identify work items, match them against supplier or internal catalogues, and prepare structured quantity and cost estimates. The work involves complex terminology, multiple document formats, inconsistent descriptions, and scope lines that often map to several catalogue components at once.

The objective

Turn Arabic and English RFP documents (Excel, Word, PDF) into reviewable, priced Bills of Quantities, with AI doing the interpretation and matching, and the application keeping every financial calculation deterministic and auditable.

My role

  • Founded the product and built it end to end as the sole engineer.
  • Designed the system architecture, data model, AI pipeline and security model.
  • Built the FastAPI backend, the Next.js front end, and the catalogue ingestion layer.
  • Owned delivery: CI/CD, containerization, production deployment and monitoring.

Technical approach

  • Documents are parsed into structured work items through FastAPI and Anthropic Claude using structured outputs, so the model returns typed data rather than free text.
  • Work items are matched to a priced catalogue with pgvector semantic search on PostgreSQL, and every match carries a confidence score for human review.
  • An assembly-aware engine decomposes a single scope line into the multiple catalogue items an engineer would specify, returning quantities and confidence scores.
  • Pricing is deliberately excluded from model context. Costs, markups and totals are computed in application code so financial logic stays deterministic.
  • Supplier rate sheets are normalised into one internal schema: item codes, bilingual descriptions, units, material and labour cost, markup and brand.
  • Multi-tenancy is enforced in the backend with role- and capability-based access control, JWT authentication with TOTP 2FA, scoped integration API keys, and per-tenant usage metering and billing.

Key features

AI document analysis

Excel, Word and PDF RFPs processed through FastAPI and Claude with structured outputs.

Semantic catalogue search

PostgreSQL + pgvector retrieve relevant catalogue items by semantic similarity, with confidence-scored matches.

Assembly-aware matching

One scope line decomposed into the several catalogue items it actually requires, with quantities.

Deterministic pricing

Costs, markups and totals stay in application logic, never delegated to the model.

Catalogue ingestion

Supplier rate sheets normalised into a common bilingual schema.

Secure multi-tenancy

RBAC with capabilities, JWT + TOTP 2FA, scoped API keys, per-tenant metering and billing.

Bilingual, RTL-aware product

RFP intake, Kanban project pipeline, BoQ review and approval, and financial dashboards.

Production delivery

Docker, GitHub Actions CI/CD, Vercel and Render deployment, and monitoring.

Interactive demo

SIMULATIONRuns entirely in your browser. Scope lines, catalogue, match scores and prices are fictional; the real product uses live models and customer catalogues.

Sample scope line
RFP language
  1. 1

    Document input

    Done

    Supply and build 200 mm hollow concrete blockwork walls, plastered both sides, as per drawings. Quantity: 120 m2

    Language: EnglishQuantity: 120Unit: m²
  2. 2

    AI interpretation

    Done

    Schema-bound structured output (typed fields, not free text). No prices in the model context.

    {
      "work_type": "masonry",
      "element": "wall",
      "material": "hollow concrete block",
      "thickness_mm": 200,
      "finish": "cement plaster",
      "finish_faces": 2,
      "quantity": 120,
      "unit": "m²"
    }
  3. 3

    Semantic retrieval

    Done

    Top catalogue candidates by vector similarity (pgvector). Candidates below the threshold are flagged for review.

    • MS-201

      Hollow concrete block wall, 200 mm

      0.94
    • PL-110

      Cement plaster, 15 mm

      0.88
    • MS-205

      Hollow concrete block wall, 150 mm

      0.81
    • MR-020

      Masonry mortar

      0.77
    • PT-301

      Emulsion paint, two coats

      0.52
  4. 4

    Assembly-aware matching

    Done

    One scope line decomposed into the catalogue items an engineer would specify.

    ItemWhyQtyConfidence
    MS-201Hollow concrete block wall, 200 mmPrimary element120.0 m²0.94
    PL-110Cement plaster, 15 mmPlaster on both faces240.0 m²0.88
    MR-020Masonry mortarMortar per m² of wall2.16 m³0.77
  5. 5

    Deterministic pricing

    Done

    Rates come from the catalogue and every total is computed in application code, so results are repeatable and auditable.

    CodeQtyRate (SAR)Amount (SAR)
    MS-201120.0 m²60.007,200.00
    PL-110240.0 m²23.005,520.00
    MR-0202.16 m³260.00561.60
    Subtotal13,281.60
    Markup 12%1,593.79
    VAT 15%2,231.31
    Total (SAR)17,106.70

    All lines above the review threshold.

Outcome

  • A production-deployed, bilingual AI SaaS built and shipped by one engineer.
  • Demonstrates end-to-end AI engineering, semantic retrieval, relational data architecture, secure backend development, bilingual front-end engineering and production deployment.

Source code and customer data are private. Diagrams on this page are original illustrations of the architecture.

Let's connect