Inspiration
Three of the four of us are women. Ask any of us about the last time we hired a contractor and you'll hear three versions of the same story.
The technician who explained the problem to whichever man happened to be in the room, while the person actually paying stood there being talked past. The quote that showed up as one line and one number — no parts, no labor, no scope, just trust me. The "you don't really need to worry about the technical side," delivered to someone whose entire question was the technical side. The price that quietly grew once the walls were open, with no written reason and no way to argue.
You learn very fast that the quote in your hand isn't really a price. It's a test of whether you'll ask a follow-up question.
The fourth of us has spent seven years on the other side of that counter, running four home-services businesses in Northern Virginia — and he found the same problem pointed back at himself. His websites said "licensed & insured," the same four words on nearly every contractor site in the DMV. When he actually audited it, that phrase appeared in over a hundred places across his files, and he couldn't fully defend it. So he changed all of it to "fully insured."
That's the whole thesis of this project, sitting in one room: if an owner who is trying to be honest can drift into overclaiming without noticing, a customer reading three quotes has no chance at all.
Because here's what nobody tells you. Everyone says "get three quotes." No one ever teaches you how to read three quotes. So you fall back on the only number you understand — the lowest one — and that is exactly how people end up hiring the unlicensed guy with the vague one-line estimate and paying for it twice.
And this isn't a homeowner problem. It's a first-apartment problem, a broken-car problem, a moving-truck problem, a my-parents-just-got-a-weird-estimate problem. Sooner or later everyone in this room gets handed a number they have no way to evaluate.
EthicalQuote exists to make the honest choice the obvious one.
What it does
EthicalQuote has two halves that feed each other.
1. Compare quotes. Snap a photo of your contractor quotes, or paste them in, and AI analyzes 2–4 of them side by side for both price fairness and honesty:
- License verification — checked against Virginia DPOR's public regulant records, not the contractor's own claim
- Hidden fees — trip charges, vague "misc. materials" lines, missing labor/parts breakdowns, unexplained markups
- Ethics & transparency signals — scope clarity, warranty terms, written change-order policy
The output is a Trust Score and one clear verdict: The Honest Pick.
Critically, the honest pick is not always the cheapest. When a cheaper quote scores worse, the app says so out loud: "This one is $340 less — but they're unlicensed and the scope is vague. Here's why we didn't pick it." That amber callout is the whole product in one card.
2. The verified directory. DMV home-services businesses that meet our published standard get listed with an EthicalQuote Verified badge. Six criteria:
- Business license verified with the appropriate state authority
- Industry certifications and qualifications verified
- Supports local communities through charitable giving
- Customer reviews confirm ethical and reliable service
- Free second opinions available before you decide
- Anti-discrimination and anti-harassment policies in place
The two halves close the loop: after your quote analysis, EthicalQuote points you to the nearest verified business offering a free second opinion — so the tool doesn't just diagnose a bad quote, it hands you the next move.
How we built it
- Base44 for a rapid full-stack build — mobile-first, because "snap a photo of your quote" is a phone-first behavior.
- A strictly defined AI contract. Every quote returns the same JSON shape: business name, service type, line items, extracted total, flagged fees, license status, score, reasoning. Locking the schema before writing a single prompt is what kept the model from improvising — and on an ethics product, improvisation is the enemy.
- Three focused agents instead of one vague mega-prompt: a License Verification agent, a Hidden Fees agent, and an Ethics & Community agent. One job each, structured output each.
- Virginia DPOR public regulant data as the authoritative license source — published in bulk, refreshed regularly, no scraping fragility.
- A pricing rule, not a vibe. A quote is treated as fair when it falls inside a band around the median of the quotes being compared:
$$\text{fair} \iff 0.65 \cdot M \;\le\; Q \;\le\; 1.35 \cdot M \qquad \text{where } M = \text{median quote}$$
Outside that band it gets flagged high or suspiciously low — because a bid far under market is usually a scope that's about to change.
- A design system built around one signal. Deep pine green
#1B4332, warm cream#FAF7F0, and honey gold#E9B44Creserved exclusively for verified badges and primary CTAs, so gold always means exactly one thing: trust. Trust Scores use a traffic-light ring (emerald / amber / coral) so the verdict lands before you read a word. - DMV-first by design. Every location, every seeded business, every price band is Washington DC, Northern Virginia, and Maryland. National coverage is a growth step, not a launch claim.
Challenges we ran into
Resisting our own product's temptation. An ethics tool that quietly crowns the lowest number is just a price comparison wearing a costume. Every scoring decision had to be built so trustworthiness could outweigh price — and so the app would explain itself when it did.
Not hallucinating a license. This constraint shaped the entire architecture. On a platform about honesty, an AI that confidently invents a license number isn't a bug, it's a fatal contradiction. So we drew a hard line: the DPOR license check is the only signal presented as verified. Everything else is explicitly labeled assessed or self-reported. Saying "we can't confirm this" is a feature here, not a gap.
Scope discipline under a demo clock. The original design had six analysis agents. We shipped three. A working three beats a glitchy six when there's no video fallback and you're demoing live.
An empty directory looks like a dead product. Rather than fabricate listings, we seeded it with real DMV businesses and marked verification status honestly — verified vs. pending review. A directory that admits what it hasn't checked yet is the only kind this product is allowed to have.
Mobile-first vs. projector. Built for a phone, presented on a wide screen — which stranded the layout in white space until we added responsive desktop grids without breaking the phone experience.
Accomplishments that we're proud of
We built a recommendation engine that will tell you not to take the cheap deal. Getting an AI to pick the lowest number is trivial. Getting it to pick a higher number and defend that choice in plain language — "$340 more, but licensed, itemized, and warrantied" — is the hard part, and it's working.
Our license check is real. It runs against Virginia DPOR's public records, not against what the contractor typed on their own quote. In a weekend full of AI demos, having one signal that is genuinely authoritative matters more than having ten that sound impressive.
We made honesty visible in the UI itself. Verified, assessed, and self-reported are three different labels with three different weights, and the app never blurs them. We're proud that our product holds itself to the same standard it holds contractors to — including publishing our six verification criteria openly instead of hiding a black-box "trust score."
We built the flywheel, not just the feature. The quote checker brings people in, the directory gives them somewhere to go, and the free-second-opinion handoff connects the two. It's a product that still makes sense on Monday morning.
Four people with genuinely different vantage points built one coherent thing — three of us who've been on the receiving end of a bad quote, one who's spent seven years writing them. The product is better because that argument happened.
What we learned
- Structured output is a trust mechanism, not just an engineering convenience. Forcing every agent into a defined schema is what makes an AI verdict auditable instead of merely persuasive.
- The most credible thing a product can do is state its own limits. Labeling signals as self-reported made the whole app more believable, not less.
- Lived experience is a data set. Between us we knew what a padded HVAC quote looks like from the inside, which fees are legitimate and which are filler, and exactly how it feels to be handed a one-line estimate and expected not to ask. You can't research that in a weekend.
- One reveal screen carries an entire product. The score ring and the Honest Pick verdict are where the idea becomes obvious. Everything else is supporting cast.
What's next for EthicalQuote
- Expand license verification beyond Virginia — Maryland MHIC and DC DLCP next, so "the DMV" is covered end to end.
- Real fair-price bands from real jobs, replacing median-of-submitted-quotes with regional pricing data by trade and jurisdiction.
- Monetize the directory — annual listing fee, with a donation-based option so a one-truck operator who does honest work isn't priced out of being findable.
- Give businesses their own view — let an honest contractor see how their quote scores before they send it, and fix the vague line item instead of losing the job to a cheaper, worse bid.
- Beyond home services — the same trust model applies to auto repair, movers, and medical billing. Home services in the DMV is the wedge, not the ceiling.
Fair quotes. Honest businesses.
Built With
- ai
- anthropic
- base44
- claude
- javascript
- json
- llm
- mobile-first
- open-data
- prompt-engineering
- react
- tailwindcss
- virginia-dpor
Log in or sign up for Devpost to join the conversation.