Projects / AI products

Funding-matching platform.

Matches organizations to non-dilutive funding. It reads thousands of mixed-format documents with retrieval-augmented generation, matches on embeddings, and predicts fit with a fairness-calibrated model, all inside a bilingual client portal.

Stack
Next.js, Laravel, FastAPI, pgvector, GCP, AWS
Scale
84,000+ users · $90M+ in completed funding · 2,000+ opportunities · SOC 2 Type II
Role
Co-founder and hands-on CTO. Designed the architecture and wrote core code
Top matches card showing 11 opportunities and $850,000 CAD in potential funding

Flow.

  1. Funding sources
  2. Scraping agent
  3. Semantic chunking
  4. Embeddings
  5. pgvector search
  6. LLM rerank
  7. Fairness-calibrated score
  8. Match in portal

How it works.

Opportunities arrive from thousands of sources in inconsistent formats. An autonomous agent structures them into a common record, and a chunker splits each document at meaning boundaries instead of fixed lengths, so eligibility rules stay intact.

Every chunk is embedded and stored in Postgres with pgvector. Organization profiles are embedded the same way, and the cross-lingual alignment means an English profile can match a French opportunity without translation in the loop.

Nearest-neighbour search produces candidates. A reasoning pass with an LLM scores each candidate against the organization's real constraints, and a temporal-aware predictive model estimates likelihood of success, calibrated so historically under-represented applicants are not penalized by skewed data.

The client portal is a bilingual Next.js app using TanStack Query for server state, talking to a Laravel core API and FastAPI microservices for the AI work. Background jobs for matching, scoring, email, and exports run through Laravel Horizon queues.

Hard parts.

Outcome.

Grew from zero to 84,000+ users with more than 2,000 opportunities indexed and over $90M in completed funding. Won 1st place at a national innovation summit and a Google for Startups partnership along the way.

Screens.

Top matches card showing 11 opportunities and $850,000 CAD in potential funding
Matches arrive scored: eleven opportunities, $850,000 in potential funding, each with a match percentage and AI insights.
Opportunity card with a one-click apply button
One-click apply from the opportunity card, using the organization’s stored profile.
Match alert notification for a new opportunity
Real-time alerts when a new opportunity matches, so nothing with a deadline is missed.