Inspiration

Usable building materials are discarded when crews face a hard removal deadline but reuse organizations' real capacity, preparation rules, and pickup windows exist only on the phone. Small community organizations should not need another portal for a contractor to get a useful answer.

What it does

LastCall Materials lets a contractor describe a safe, non-hazardous material lot, select an approved reuse partner, review a narrow call brief, and authorize one CALL-E discovery call.

CALL-E asks only about quantity, condition, preparation, timing, and pickup or drop-off. The response becomes a structured, evidence-backed candidate result—not an automatic commitment.

The signature case starts with 10 reusable office doors that must leave before Friday. A partial response for 2 doors becomes:

  • 2 candidate-matched
  • 8 still unresolved
  • 0 verified picked up

The same workflow supports wall panels, non-structural framing, fixtures, piping, lumber, and other reusable components.

How we built it

The application uses Next.js, React, strict TypeScript, Zod, and a custom worker-centered interface inspired by work orders, dispatch tickets, blueprint markings, and material ledgers. Pure domain transitions keep offered, candidate, approved, confirmed, and picked-up quantities separate.

A shared provider contract supports deterministic fixtures and a server-only adapter for the official authenticated CALL-E CLI. The public Fly.io deployment is intentionally fixture-safe: judges can test the complete workflow without credentials or dialing anyone. Every simulated call screen states that no call was placed.

Vitest and Playwright cover partial allocation, invalid provider results, authorization invalidation, idempotency, hazardous-material exclusions, evidence handling, mobile behavior, and the complete judge path.

CALL-E at runtime

A controlled operator-only path invokes the official CALL-E CLI for one allowlisted, role-play-authorized phone number. The browser never receives the number or authentication token and cannot start a live call. CALL-E performs the disclosed natural-language conversation and returns capacity and logistics evidence; deterministic TypeScript validates the result and changes application state.

We also completed an authorized one-phone proof call for the demo scenario: the role-play reuse center could potentially accept 2 of 10 doors with pickup Friday at 2 PM.

Safety and human control

  • Approved or explicitly authorized recipients only
  • One recipient, one attempt, and duplicate-call protection
  • AI identity and narrow purpose disclosed
  • No arbitrary phone-number input
  • No hazardous, contaminated, structural, or regulated materials
  • No reservations, payments, valuations, tax statements, or automatic promises
  • Unknown or contradictory answers stop for human review
  • Only a separately attested physical pickup can increase verified recovery

Challenges we ran into

The difficult part was not making a phone call. It was converting a variable conversation into trustworthy application state without overstating impact. Partial acceptance, conflicting evidence, duplicate events, and the difference between interest and completed pickup all needed explicit rules.

Public hosting also cannot safely rely on a developer's local CALL-E authentication. We solved that with one provider boundary: a protected operator-only live adapter and deterministic public fixtures that exercise the same validated domain path.

Accomplishments that we're proud of

  • A real authorized CALL-E proof call
  • Honest 10 → 2 candidate + 8 unresolved + 0 verified accounting
  • Evidence and confidence beside consequential facts
  • Human approval before any commitment
  • A public judge experience that is safe and testable at any time
  • An original white-and-labor-blue design built for tradespeople and community reuse work

What we learned

Phone automation becomes useful when the product around it is disciplined. The call can discover fast-changing capacity, but deterministic software must own validation, quantity math, authorization, and accountability.

What's next

Next we would onboard additional reuse organizations, add durable multi-user storage, support human-reviewed material photos, and extend the controlled live integration while preserving allowlists, consent, and human approval.

Built With

Share this project:

Updates