ReFind is an AI-powered secondhand shopping assistant. It helps users find the best deals on secondhand items across multiple marketplaces like Craigslist, Facebook Marketplace, and OfferUp.
The project is structured as a full-stack application leveraging an LLM orchestrator (powered by Railtracks) to provide a conversational, real-time agent interface.
- Backend: Python, FastAPI, Railtracks (LLM Orchestrator), Uvicorn
- Frontend: Next.js (App Router), React 19, TailwindCSS v4,
@assistant-ui/react
- Multi-marketplace Search: Simultaneously searches Craigslist, Facebook Marketplace, and OfferUp to find listings.
- AI Orchestration: Understands user requests, analyzes pricing context, and objectively scores deals based on condition and market value.
- Real-time Streaming: Uses Server-Sent Events (SSE) for a fast, responsive chat interface.
- Mock Mode: Can run without an LLM API key by automatically falling back to simulated search and pricing tools.
The easiest way to get ReFind up and running is using Docker Compose.
- Docker installed on your system.
-
Start the application using Docker Compose from the root directory:
docker-compose up --build
-
Open your browser and navigate to the frontend:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
If you prefer to run the services directly on your machine:
- Navigate to the
backend/directory:cd backend - Install dependencies:
pip install -r requirements.txt
- Set up your environment variables (refer to
backend/.env.example):cp .env.example .env
- Start the backend server:
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload
- Open a new terminal and navigate to the
frontend/directory:cd frontend - Install dependencies:
npm install
- Start the Next.js development server:
The frontend will be available at http://localhost:3000.
npm run dev
Contributions are welcome. Feel free to open issues or submit pull requests.