Inspiration

Car shopping sucks. We want to search for "reliable family car" and get actual results that match the semantics and intent of the search query, no hassle involved.

What it does

sija uses AI to understand what you actually want. Gemini translates "reliable" to known reliable brands such as Toyota/Honda, and "family" to 5+ seats. Semantic embeddings find cars by meaning, not keywords. Even when searches fail, we relax constraints and try to return the best results. We also learn your preferences and generate personalized recommendations on the homepage using your search history.

How we built it

Python FastAPI + Gemini 2.5 Flash for query parsing, Sentence Transformers for semantic search on 12K+ cars, express backend, React + Typescript frontend. Pre-computed embeddings make search instant. The dataset includes 12K+ actual cars.

Challenges we ran into

Gemini rate limits crushed us. Switched models 3 times. Custom neural network failed; pivoted to pre-trained transformers. Building preference learning from failed searches was tricky. We also played with the idea of populating and using a PostgreSQL database, but using CSV files ended up much simpler given the amount of time we had.

Accomplishments that we're proud of

Sub-second semantic search. Passive personalization that learns from every query. Gemini correctly parses complex queries like "reliable blue sedan for family under 30k" into 5+ structured filters.

What we learned

LLMs are better at translation than generation. Pre-trained models beat custom training for hackathons. Rate limits are brutal, so we had to use our api calls effectively.

What's next for sija

Visual search, price prediction ML to find good deals, real-time inventory, ai chatbot helping the user, implement PostgreSQL database interaction, create user system and save multiple user data/recommendations to database.

Share this project:

Updates