FirstChat is a full-stack system created by Roman Slack for generating personalized first messages for dating apps. It is organized into three main components that work together: a profile scraper, an API server, and a user-facing web interface, forming an end-to-end pipeline from raw profile data to an analytics-backed opening message.
The profile scraper layer uses Playwright and Chrome to reliably extract profile data and images from dating apps (currently Tinder), saving the details and images into structured folders. The API server is built with FastAPI and processes that profile data and imagery, generating personalized first messages using OpenAI GPT models and Google Cloud Vision for image analysis, all exposed through a RESTful API. A Flask web application provides an intuitive user interface where users can upload images, enter profile information, and view generated messages alongside detailed analytics.
The system requires Python 3.9+, OpenAI API and Google Cloud Vision credentials, and Chromium for the scraper. Rather than relying on a persistent database, it currently stores extracted profiles directly on the filesystem, with each component configured independently through its own environment variables and config files. The project is released as proprietary software with all rights reserved.
Key Features
- Playwright and Chrome based profile scraper that extracts profile data and images
- FastAPI server that scores text and images and generates messages via a REST API
- OpenAI GPT-powered personalized first message generation
- Google Cloud Vision image analysis
- Flask web UI for uploading images and viewing analytics-backed messages
- Filesystem-based storage of extracted profiles with per-component configuration
Tech Stack
Designed and built by Roman Slack, Lead AI Platform Engineer. See more of Roman Slack's work on the projects page or get in touch via the contact page.