Gen Pals

You can now write a letter to Joshbot and pop it in the mail, and a couple of weeks later you’ll get a handwritten reply in your mailbox.

As I was working on automating sending generated letters via postal mail for my recent Save Midwood Station campaign, it got me thinking about other ways to play with the thin barrier between digital and physical. With all sorts of lovely holiday letters arriving in the mail, it didn’t take long to start imagining what it might be like to receive something similar from Joshbot. After all, I’d already gotten him to receive and send photos — physical mail felt like the next logical step!

I knew how to programatically send mail thanks to Save Midwood Station. In that project, I use a Mad Libs-esque format to collect contact information and some personal content, and use that to generate a custom complaint letter to the USPS about the upcoming closure of my local post office. After collecting a small sum to pay for operating costs, I send the generated letter off to be automatically printed and mailed to the USPS by lob.com, a direct mail marketing service.

I wasn’t sure how to receive mail, though. Figuring there must be some virtual mailbox service out there that would meet my needs, I quickly landed on Earth Class Mail, which has reasonable prices, a robust API and mailing addresses all around the country. I set Joshbot up with a mailing address in West Hollywood, because I’ve always wanted to live in LA. While I haven’t made that happen for myself yet, there’s no reason my limitations should affect him! I sent off a test letter and it was scanned and API-accessible in my Earth Class Mail inbox about a week later.

Figuring out what to do with Joshbot’s fan mail was a bit more complicated. I decided to use the GPT-4 w/ Vision API to OCR my incoming mail, both to collect a return address from the envelope and to get the actual incoming letter’s context. I then piped that through to the same fine-tuned GPT-3.5 instance I use for SMS Joshbot to collect replies. For now, my script simply splits incoming mail into SMS-sized chunks, sends each to Joshbot one at a time, and then collates the response into a coherent letter. In the future, I plan to create another fine-tuned Joshbot instance that’s specifically tailored for letter-length responses.

So, what to do with Joshbot’s replies? I thought about sending them out via Mailform or Lob.com, but that just seemed too formal. Most of these direct mail services require pretty strict formatting, and include QR codes and USPS barcodes. They’re designed for a cold, corporate style which just wasn’t right:

A sample Save Midwood Station complaint letter — too formal for Joshbot!

I thought, wouldn’t it be nice if there were some API-accessible mail service that used an autopen? Then I could have Joshbot send out beautiful handwritten letters. I thought this was ridiculous… until I found Handwrytten. Exactly what I hoped for, Handwrytten sends out custom cards scribed with an autopen in one of dozens of handwriting fonts. I chose an all-caps font that vaguely resembled my own, and I’ve been so happy with the results. They sent me a bunch of samples so you can get a sense of their range and quality:

And… just like that, we have a generative post-trained transformer (get it?). A daily cron job checks for new letters, OCRs them with GPT-4, generates a reply via the fine-tuned Joshbot instance, and then sends the reply off to be scribed and mailed via Handwrytten. Just seeing the ink smudge on the return address brings me so much joy:

If you want to try this out (and I hope you do, because I had to jump through some hoops involving a notary to get this working right), send Joshbot a letter (handwritten or typed) addressed to:

Joshbot
8605 Santa Monica Blvd #43912
West Hollywood, CA 90069

Make sure to include your return address on the envelope!