Inspiration
Nigeria's informal economy has no shortage of skill. It has a shortage of provable skill. Tens of millions of people do real work every day that leaves no trace a bank, a stranger, or a new town will believe — so work flows to whoever is already known, disputes have no referee, and a lifetime of competence can't be borrowed against or carried.
We didn't want to import a trust mechanism. Nigeria already invented one: ajo (esusu, adashe) — rotating savings circles that have moved enormous capital for centuries on reputation alone, collateralized by neighbours, kept by an alajo who is paid a visible fee for holding the pot. NOP digitizes that, and gives it a memory that travels.
What it does
A shop owner sends a WhatsApp voice note in Pidgin: "I need person wey go paint new sign for my shop." No form, no app install.
Gemini turns that into a structured, priced task, matches it to a worker with verified skills, and holds payment in escrow before work starts. The worker does the job and submits photo/video proof carrying a unique anchor code written into the scene itself. Gemini verifies it, escrow releases, and the completed job becomes a permanent entry on the worker's Passport — a portable, bankable record of what they can actually do.
The same loop runs in Hausa, and the record is designed to be legible to a microfinance lender who has never met the worker.
Both sides negotiate — for real. The business names a ceiling, the worker names a floor, both private; Gemini knows the fair rate from its own ledger of completed jobs, or a provisional estimate if the task is new, finds the overlap, and closes the deal in seconds while holding a fairness floor so nobody gets lowballed. This runs today, end to end — match, accept, floor and ceiling, settle — a live pricing decision with real money attached, not a scripted demo.
A worker can also upload a certification — a trade license, a First Aid card — and a second live Gemini decision reviews it: pulling the printed expiry date and flagging a mismatch against what was declared, with its own prompt-injection defense tested against real adversarial input. It shows as reviewed, never as a full background check — the language is deliberately not oversold.
How we built it
Three services: a Node.js API (nop-api) owning escrow, jobs and the WhatsApp webhook; a stateless Python/FastAPI service (nop-ai) owning every Gemini call; and a shared PostgreSQL schema (nop-schema), fronted by Next.js and Nginx, with Cloud Storage for proof media.
Escrow runs on a real, verified Stripe integration — Checkout Session funding, webhook-signature-verified release, idempotent event handling — not a simulated payment provider.
Two rules shaped the architecture more than anything else. The Python service never touches the database — anything that looks like a foreign key crossing that boundary is treated as a bug, since a stateless service can't resolve an ID. And all utterance-level inference consolidated into a single /comprehend call returning one structured node (side of the trade, skills, requirement levels, unit count, timing, location, reasoning), rather than several independent calls over the same sentence.
Challenges we ran into
Bulk jobs were a fraud surface in both directions at once. Eight phone repairs modeled as one job and one escrow lets a worker reuse proof across units, lets a client dispute good units as an informal discount, and lets a colluding pair farm trust score from a single posting. Fix: unit-level atomicity as a hard architectural rule — verification, payment and stamping happen per unit, always, with a batch as a container over N independent records. Rate estimation has no data on day one. Early prices are guesses dressed as data, so we seed them from real market knowledge and say so in the bot copy rather than pretending the ledger exists yet. Rails we don't control. WhatsApp Business API and payment-provider onboarding have their own lead times. So the trust engine was deliberately built rail-independent — it reads task and escrow events and runs on real or seeded data regardless of external approvals. Code-switching. Real users don't speak clean Hausa or clean English. The transcription path had to handle mid-sentence switches without asking anyone to repeat themselves.
Accomplishments that we're proud of
The fee is the trust mechanism, not extraction. The test the alajo tradition applied for centuries: would people pay this knowingly, and gladly? A fee set too high doesn't quietly enrich us — it shows up immediately as members leaving, which is exactly the signal the engine is built to catch. The exit is kept deliberately cheap.
Roles are per-transaction, not identity. Oga (the one with the work) and gwani (the expert) are things you are in a trade, not what you are on the platform. The same person is both, most weeks.
A living decision ledger. Rejected ideas are kept with full reasoning, not deleted — so settled questions stay settled.
Trust as a trajectory, not a star rating. Standing, the score behind each Skill Stamp, is grounded in a published dynamical-systems research program that models cooperative institutions through kinetic trust — trajectories, not static scores — rather than an ad hoc reputation formula (Benjamin, 2026, DOI: 10.5281/zenodo.21534818).
What we learned
Failed trades are the most valuable data we have. When no price clears, that's a direct read on where expectations break — so comprehension records are permanent and separate from trade outcomes, rather than being thrown away with the transaction that failed.
Multiple LLM calls over one utterance are worse and more expensive. Each call re-pays the forward pass and produces outputs that don't agree with each other. Consolidating was both the cheaper and the more coherent choice — a rare case where those point the same way.
Escrow ordering is the product. Funding before work starts is what makes "no chasing for cash" true rather than aspirational. Every other feature is downstream of that one sequencing decision.
What's next for Naija Opportunity Passport
Teaching the negotiation agent to restructure a trade when no deal clears — trim scope, bundle tasks, flex the timing, assemble a small team — instead of just returning "no match." Then the Employer Passport, so workers can decline low-trust clients on evidence. Then the Raba ledger opening into savings circles, microfinance partnerships that read the Passport as collateral, and eventually the diaspora remittance corridor — the largest flow in the system, and the one where the missing apex costs Nigerians the most.


Log in or sign up for Devpost to join the conversation.