Rabby Ilyas

A production in four acts · Client work · United States

Second Act PRO

An AI matching engine that pairs senior professionals with organizations that need them, and explains every match.

Tonight

Second Act Pro

↓ Scroll to raise the curtain

The Playbill · Season 2025 — 26

Second Act Pro

“A second act, with purpose.”

The client

Craig, a founder in the United States, places professionals with 12 to 30 years of experience into interim, advisory, board and project roles.

The problem

Keyword matching reads a CV like a stranger. Craig needed three answers for every candidate: do they qualify, will they fit this company, and why, in words he can defend.

The cast

Professionals looking for a meaningful second act. Organizations with a real problem to solve. An admin who has to stand behind every match.

My role

Full-stack & AI engineer. The intake, the CV pipeline, the matching funnel and the scoring lab: Next.js, FastAPI, Supabase, Pinecone and Gemini.

Running since Oct 2025 · 122 commits · Two milestones · Still playing

Act I

Two doors

Professionals and organizations each get their own intake. Every answer, down to the 'do not want' list, becomes something the matcher can use later.

Door one

The professional

Name
A. Rivera
Years of experience
24
Preferred roles
Interim COO · Board advisor
Availability
Project-based
Do not want
Relocation
CV
rivera-cv.pdf ✓
Share with SecondActPro

Door two

The organization

Project type
Interim leadership
Required skills
Ops turnaround · PE reporting
Duration
Short-term (1–3 months)
Budget range
$15k – $30k
Do not want
No board exposure
Verification
Cloudflare Turnstile ✓
Submit the project

Sample data · Every submission lands in Supabase, the CV in storage, the text in Pinecone

Act II

Reading a life's work

The heart of the engine. A career is not a list of keywords, so the CV is broken into the parts that matter and each part is read for meaning.

  1. i.

    A CV arrives

    pdfplumber reads every line of the PDF. Nothing is typed twice.

  2. ii.

    Nine sections

    Skills, work experience, about, education, projects, certifications, awards, languages and the rest. Each one is weighted differently.

  3. iii.

    Nine embeddings

    Every section becomes a 768-dimension Gemini vector in Pinecone: two indexes, thirteen namespaces, plus one pooled vector for the whole CV.

  4. iv.

    A match, in meaning

    Now a person and a role can meet on what they mean, not on shared keywords, and every score can be traced back to a section.

Act III

The funnel

Matching runs in four stages, and each one leaves evidence behind, so the final answer can be explained rather than just trusted.

  1. Stage 1

    Hybrid recall

    Dense vectors and keywords together pull a first pool of twenty from the whole database.

  2. Stage 2

    Eligibility gate

    Gemini turns the brief into must-haves and exclusions. Each candidate gets pass, needs review, or fail, because unverified is not the same as unqualified.

  3. Stage 3

    Compatibility rerank

    Six fit dials compare the candidate persona with the company persona: environment, operating style, leadership scope, organization, culture and engagement.

  4. Stage 4

    Top three, explained

    A fixed evidence pack comes first, then the explanation: drivers, friction flags, and why nobody passed when nobody did.

Must-haves · Exclusions
WeakModerateStrong fit

Environment

Operating style

Leadership scope

Organization

Culture

Engagement

ARJMKDLSTEBNPOCVGHWFMRDSELNKOTRBSJHPYCFZ

Why AR, for this role

Strong fit

Drivers: led two turnarounds at a similar size; decides fast, like the board. Friction: prefers remote; the role is on-site twice a month.

Act IV

The rehearsal room

A scoring lab for Craig. The same roles run through four scoring modes side by side, so he can see where the modes disagree before a match goes out. Try it.

Illustrative data

COOBoardCFOOpsStrat.
AR0.500.870.000.790.61
JM1.000.120.510.870.00
KD0.370.220.990.120.52
LS0.040.950.360.230.99
TE0.750.660.040.950.36
BN0.900.010.750.650.04
PO0.150.470.890.010.76

Curtain call

Now showing, in production

122
commits
25
API routes
13
Pinecone namespaces
10
database tables
9
vectors per CV
35
persona pairings pressure-tested

Second Act Pro

The credits

Client
Craig · United States
Engineering
Muhammad Rabby Ilyas
Frontend
Next.js 15 · React 19 · Tailwind v4 · shadcn/ui · TanStack Table
Backend
FastAPI on Vercel · Pydantic v2
Data
Supabase Postgres, Auth & Storage · Pinecone
Intelligence
gemini-embedding-001 · Gemini 2.5 Flash · Gemini 3 Flash · BM25 · ColBERT
Security
Cloudflare Turnstile · Row Level Security
Quality
pytest · a pressure-test harness · Supabase ↔ Pinecone sync audits

No CV was read like a stranger in the making of this production.

Visit the live app

(Next case) · Client

Daphne

Bring clarity to long-form conversations.

Continue
Evidence
Risk
Tension
Option
Gap
Ask Daphne