TLDR : creé un bot que envía automáticamente mensajes personalizados y contextuales a cada listado nuevo publicado en wg-gesucht.de . ¡El robot me encontró un piso en Berlín!
Si está interesado en el aspecto técnico de este proyecto, ¡no dude en explorar el código mientras lee este artículo!
A medida que se acercaba mi semestre de intercambio en la Technische Universität Berlin, comencé a buscar lugares para vivir. Sin una red existente en Berlín, utilicé el sitio web wg-geuscht.de para contactar con posibles alquileres de pisos compartidos. Este fue un proceso muy repetitivo y decidí automatizarlo.
Configuré alertas por correo electrónico para todos los pisos nuevos potenciales en mi rango de precios en wg-gesucht.de y utilicé el servicio Google Clouds Pub/Sub con una suscripción push para estar atento a cualquier correo electrónico entrante en mi bandeja de entrada de Gmail.
Una vez que llega un nuevo correo electrónico, el servicio envía una notificación de webhook a mi servidor.
En el servidor, escrito en JavaScript con Express , leí el último correo electrónico en mi bandeja de entrada de Gmail y lo analicé con Regex para ver si el correo electrónico contenía enlaces a algún listado de wg-geuscht.
Para cada listado, generé un navegador Chromium usando Playwright , un marco de prueba de un extremo a otro. Esto me permitió navegar por el sitio web tal como lo haría uno al interactuar con él. Inicié sesión en mi cuenta, tomé nota de la descripción del listado y presioné enviar mensaje.
El mensaje se genera usando GPT-3.5 Turbo con el siguiente mensaje:
const prompt = ` Can you spice up the following text: "${starterText}" The updated text should explain why I would fit in the flatshare with the following listing text: "${listingText}". Add some emojies as well. Mention that my semester is from September to March, so a stay for that perioud would be ideal (but Im always flexible)! And if the listing is written in German, the answer should be in German as well. And if the listing says I need to say a specific word, start the whole text with that word! `;
El mensaje generado fue enviado junto con un par de imágenes mías.
El tiempo que tardó desde que se publicó una lista hasta que mi bot envió una respuesta fue de aproximadamente 10 segundos, lo que me dio confianza para ser el primero en responder. Esta fue la respuesta que me aseguró un piso:
Hallo zusammen! 🦄 Das scheint ja eine richtig coole WG zu sein, in die ich perfekt reinpassen würde! 😄 Ich bin Isak und ich glaube, dass ich perfekt in dein WG-Zimmer passen würde! Mein Semester in Berlin geht von September bis März, also wäre ein Aufenthalt für diesen Zeitraum ideal (aber ich bin auch immer flexibel!). Die Lage der Wohnung klingt super, besonders die Nähe zum RAW-Gelände und zum Boxhagener Platz. Und hey, eine Tram-Station direkt vor der Tür ist auch genial! 🚋 Die Wohnung hört sich toll an, mit Balkon, Badewanne und Waschmaschine. Da fühlt man sich doch gleich wie zuhause! Wenn du Interesse hast, würde ich mich freuen, von dir zu hören. 📞 Liebe Grüße und hoffentlich bis bald! Isak PS Wenn die Anzeige auf Deutsch ist, dann antworte ich auch gerne auf Deutsch. Aber sei gewarnt, mein Deutsch ist manchmal etwas holprig. Ich verstehe nur Bahnhof! 😄
Mirando hacia atrás, pasé más tiempo jugando con el bot que respondiendo manualmente a las notificaciones por correo electrónico. Pero dicho esto, estoy contento con el resultado de este proyecto. Me reí mucho de las respuestas tontas que enviaba el robot, y la frecuencia con la que las personas respondían a mí aumentó notablemente (probablemente porque yo fui el primero en responder).
Recientemente intenté activar el bot nuevamente, pero desde mi búsqueda en junio, se implementó la verificación de captcha en su sitio. Esto puede ser para mejor. Por lo que sé, muchos de los listados se crearon utilizando ChatGPT.