🚀 My Project Story: Building ArtisanTrust 🌟 Inspiration

ArtisanTrust was born from a simple observation: 5-star ratings don’t save you during a real emergency.

While researching home-service platforms, I noticed a recurring problem:

A plumber may have excellent reviews… but doesn’t work at night.

An electrician might be highly rated… but can’t handle storm-related failures.

Renovation experts often appear higher than emergency specialists in search results.

And in a crisis, the context matters more than the rating.

The spark came when I realized:

“What if we could engineer a rating system that adapts to urgency, conditions, and stress level of the situation?”

That idea became the foundation of ArtisanTrust, the first platform that ranks professionals using context-aware intelligence, not just reviews.

📚 What I Learned AI & Natural Language Processing

I learned how to extract urgency, problem types, and emotional cues from user queries. For example, the sentence: "URGENT – water flooding entire bathroom" triggers high-stress weighting and emergency skill detection.

Real-Time Context Modeling

I discovered how to convert factors like:

availability,

service specialization,

emergency history in reviews,

into numerical weights that feed a unified score.

API Integration & Data Engineering

Working with Yelp Fusion API taught me:

how to normalize messy business data,

how to merge absent fields,

and how to design fallback heuristics.

Mathematical Scoring Systems

The CAS Score became a full mathematical model view image png

Combining reviews, context, NLP, and availability made the model truly intelligent.

🛠️ How I Built ArtisanTrust

  1. Data Collection with Yelp Fusion API

I fetched:

star ratings

review text

business categories

opening hours

emergency keywords

Then I standardized everything into a unified format to feed the scoring engine.

  1. The NLP Engine

I built a custom rule-based + keyword-weighted NLP system that detects:

urgency (urgent, asap, emergency…)

hazard type (flood, fire risk, outage…)

stress indicators (water rising, sparks, leak severity…)

Which adjusts the weighting of the contextual score.

  1. CAS Score Computation

I designed a dynamic scoring pipeline where:

emergency queries increase the weight of availability and past emergency reviews

non-emergency queries increase the weight of craftsmanship reviews

This adaptability is what makes ArtisanTrust unique.

  1. Frontend Interface (Vercel)

The UI:

accepts natural-language emergency descriptions

displays ranked professionals

shows AI evidence badges explaining each ranking

Transparency builds trust — that became a core design rule.

  1. Backend Logic (PythonAnywhere)

I implemented:

API request handlers

NLP processing

CAS scoring functions

caching for faster load times

The architecture stays modular to allow future improvements (like user account data or more APIs).

⚠️ Challenges I Faced

  1. Missing Data & Inconsistencies

Many businesses don’t explicitly state "emergency service". I had to detect it indirectly through reviews. Example: "Came at 2am, saved us from a major flood" → triggers Emergency Availability tag.

  1. Fairness in Ranking

New businesses with few reviews were getting penalized. This created fairer, more stable ratings.

  1. Performance Issues

Calling Yelp + NLP + reranking caused slowdowns. I solved it by:

adding caching,

reducing unnecessary API calls,

using async rendering,

optimizing my NLP pipeline.

  1. Designing a Trustworthy Explanation System

Users must understand why a professional ranks #1. Creating readable, human-friendly “AI Evidence Explanations” was harder than expected, but essential.

🎉 Conclusion

ArtisanTrust taught me how to merge AI, math, APIs, and UX to solve a real pain point: finding the right professional when every second counts.

More importantly, it taught me that:

Intelligent matching requires understanding the human context — not just the data.

This project represents the intersection of technology and empathy, and I’m excited to continue pushing it forward.

Built With

Share this project:

Updates