Inspiration

After personally spending hours at work filling in BOMs, scouring suppliers for pricing and lead times, I thought, why not have an agent do this? Procurement of hardware takes hours when it should take minutes.

What it does

BOMA is a procurement agent for hardware teams. Upload a bill-of-materials as CSV, and the agent matches each line to live Digi-Key catalog data (gives the price, stock, and lead time), then returns a priced cart. In the same flow it can create a Digi-Key MyList (one-time link) so you can check out on the supplier side. Pay BOMA in USDC via AllScale at checkout.

How we built it

We built the front end with Next.js (App Router), React, TypeScript, Tailwind CSS, and Radix-based UI, with Firebase for auth.

The back end is FastAPI (bom_supplier_connector): that accepts a CSV, runs the pipeline, and returns enriched rows plus optional MyList metadata. Digi-Key is integrated with OAuth, product search, and third-party MyList creation.

The agent loop is orchestrated through CLōD’s OpenAI-compatible API: an orchestrator agent runs a tool loop (Digi-Key keyword and part-number search, up to a few iterations per line), and a specialist agent scores and picks the best candidate from the list (technical fit, stock, price, and optional deadline logic), returning structured JSON including a short match reason. Rows can be processed in parallel (with guardrails in code for Digi-Key rate limits and token refresh).

Challenges

The hardest problem was fuzzy matching. A BOM line like “0.1µF 0805 X7R cap” has to line up with a Digi-Key line that looks nothing like it (MPN, wording, and units differ). We address that by having the orchestrator choose searches and gather candidates, and the specialist compare each candidate to the row and commit to a choice with explicit reasoning, not a single blind string match.

The second challenge was payment-flow architecture. We wanted checkout in crypto, but suppliers don’t take USDC; we separate paying BOMA (AllScale) from buying parts (Digi-Key cart / MyList).

The third challenge was the Digi-Key API itself, OAuth, redirect URIs, and getting search + list creation reliable enough for a demo-grade end-to-end path.

Accomplishments

End-to-end path in this repo: CSV upload → FastAPI enrichment → priced rows with lead times → Digi-Key MyList link when part numbers resolve → checkout flow in the app with AllScale (plus CSV export / demo coupon paths in the front end). The two-stage agent design (search orchestration + specialist selection) is implemented and logged clearly in the CLI; the web UI shows progress states and full results when the enrich call completes. The ability to run multiple agents in parallel looking at different parts of the same csv without overlap.

What we learned

  • We learned a lot about how Agents are defined, some drawbacks of them. Additionally, we learned a lot about DigiKey and its API!
  • We also learned how to work together with GitHub, managing multiple branches, and working in similar directories.

What’s next

More suppliers. We anticipate to add Mouser and other suppliers. The next step is wiring second-source search and selection into the same pipeline, not only Digi-Key.

More industries. Same pattern extends beyond electronics(e.g. industrial catalogs0 once we add connectors.

Endgame: BOMA talking to supplier-side automation and closing custom quotes without humans in the loop.

Built With

  • allscale
  • claude
  • clod
  • cursor
  • fastapi
  • greptile
  • next-js
  • typescript
Share this project:

Updates