Rock Auto Parts CRM & Call-QA Pipeline by Mohammed Faraz Saifullah AnsariRock Auto Parts CRM & Call-QA Pipeline by Mohammed Faraz Saifullah Ansari

Rock Auto Parts CRM & Call-QA Pipeline

Mohammed Faraz Saifullah Ansari

Mohammed Faraz Saifullah Ansari

Verified

The client

Rock Auto Parts is a US auto parts reseller that sells over the phone. A customer calls about a broken part, a rep finds the right one, holds the card, sources the part and ships it. Before this build, all of that lived in a hand-reconciled spreadsheet.

What I built

A multi-tenant CRM the business now runs on, built solo on Next.js, Apollo GraphQL, Prisma and PostgreSQL. 51 models with strict per-org isolation and role-gated resolvers. The order lifecycle runs end to end: caller and vehicle load by phone number, quote against the exact vehicle, card hold through Authorize.net, source with cost and margin visible, capture when tracking goes on, ship through Shippo and send the receipt. Chargebacks, refunds and settlements have their own flows. Every sale posts to Slack with cost and price, invoices go out from the CRM, and reps are paid on margin from the same numbers.

The call-QA pipeline

Every sales call is recorded through Zoom Phone, transcribed, card data redacted, and graded by Claude through a three-pass structured-output chain: rationale first, then scores against Zod schemas, with the overall score computed in code rather than by the model. Each result stores the prompt and rubric version it was graded with, so a rubric change never silently rewrites history. A versioned eval set with a gold set bootstrapped with Claude Opus catches regressions before a prompt ships. A 15-minute business-hours cron runs it with retry limits, failure monitoring and Slack alerts, and managers can send a one-click coaching DM to the rep.

Also in the box

A sourcing assistant, a CRM auto-pricer, live Slack sales scoreboards, and a lead-gen site rebuilt in Next.js with about 80 programmatic SEO pages, Markdown versions for AI crawlers and llms.txt, posting leads into the CRM with ad-click attribution.

How it stays correct

Around 4,500 Vitest cases run against a real Postgres in CI. Claude Code and Cursor write most of the code through a ticket-to-PR pipeline I built, with CLAUDE.md conventions and an automated PR review before a person reads it.

Stack

Next.js 16, TypeScript, Apollo GraphQL, Prisma, PostgreSQL, Authorize.net, Shippo, Zoom Phone, Slack API, Claude API, Zod, Vitest, Vercel. Product page: https://crm.rockautoparts.us
Like this project

What the client had to say

Faraz built our CRM and website. We moved off a hand-reconciled spreadsheet. Every sale now posts to Slack with cost and price, and invoices go out from the CRM. He understood how we run and shipped both. I’d work with him again.

Alex Johnson, Rocks Auto

Oct 11, 2026, Client

Posted Oct 16, 2026

Multi-tenant CRM a US auto parts business runs on: full order lifecycle, Slack sales feed, auto-pricer, and an AI pipeline that grades every sales call.

Likes

1

Views

3

Timeline

Jul 1, 2026 - Oct 11, 2026

Clients

Rocks Auto