When vaccines started rolling out in January, my father-in-law mentioned he was having trouble finding an appointment. We weren’t eligible yet, so he sent me his login so I could check it out. We quickly realized that the only way to get an appointment was to constantly refresh the site and click through dozens of links hoping to find an opening. In fact, a friend of mine actually took off work so they could stay home and get appointments for their parents!
So I built a script that would click through the locations automatically, then text me if something was available. I had my father in law an appointment within a few hours. It worked!
So I post to facebook, “If anyone needs help getting an appointment, let me know. I’ll call you when there’s one available.” Within an hour I had to take the post down because there were so many requests. So we made a spreadsheet of all the people who wanted alerts.
Rather than manage it myself, I built a really simple website where people could sign up for text messages without me being the middle man. The website is:
Within a few days I was sending over 50k messages per day! And they aren’t cheap – that’s like $500 in text messaging costs. It was a tough situation because I didn’t want to turn it off, but didn’t want to charge either.
Soon the website was picked up by news stations which just added more and more subscribers. I was really hopeful that the state would be willing to help fund the effort, but that never worked out. Instead, I resolved to launch a GoFundMe to at least offset the costs. Here are some of the articles:
KimRay – a local energy company – basically begged to give me money which was unbelievably kind. They donated the very first $5k to the effort which was quite a relief! Later we raised $20k on GoFundMe which pretty much covered the rest of the costs. Twilio also gave me a 25% discount.
All told there were over 80k subscribers, 250k users, 1 million page views, and over 10 million text messages and emails sent!
The biggest thing I learned is how to send a very large number of text messages without getting blocked as SPAM. It’s not as easy as you might think! Vaccine appointments are pretty easy to find these days, but technically it’s still going.
The tech behind it is a nodejs job with different strategies for the 5 main data sources. Some are just simple HTTP requests and some are full blown headless chrome browsers clicking through sites. All of that is saved in MongoDB and notifications are sent out for the “new” appointments.
Now people can set up their location, a search radius, which vaccine they want, which appointment they’re looking for, etc. I mainly did that because it helped me send less messages. Eventually I set up @VaccineAlertsOk so people could get alerts via Twitter. Ultimately I started automatically unsubscribing people after 7 days (but they could resubscribe) – just so I could try to save money.
Also, Google Maps is insanely expensive these days. I spent over $1k in just the first week. Eventually I figured out how to set up an open tile map server which is basically free (it’s open source). Basically I ran it via Docker on Digital Ocean. I really tried to make the homepage super helpful so maybe people would just get their info there (instead of subscribing).
It was fun building something that really helped people. We heard from SO many people about how the site helped them or someone they loved.