We all know about dogs and bones. Give a juicy bone to your pup, and there's no way it's letting go, and you may get a nip if you try to take it off them. The same goes for technical SaaS founders. Once we have an idea, then there's no way we're stopping working on it until it's done ...
I had one of those moments last week. I'd happened across a blog post about a US CRM company that had built a business card scanner for their phone app using a new tool from Google called Vision API.
I've done a lot of research on business card scanning because it's something I wanted for YourPCM for the longest time, but it was going to cost a fortune to implement in initial setup costs and ongoing subscription fees. Like the US CRM developers, I was thrilled about Google's clever little AI offering.
Imagine going to a networking event. We receive business cards from people we meet and then what do we do with them? Leave them in a pile on our desk? Put them in a drawer and forget all about them? Leave them in our handbag then discover them a few months later when we've lost the opportunity? "Oh no, I dropped them on the floor of my car! Oh well, I'll pick them up later as I'm tired now and need some food! But we never do pick them up later, do we?
Well, what we should do is find some time to put the contact details into our CRM, then reach out to them to say hello and offer them a 121 to find out more about what they do. From small beginnings come great opportunities as the saying goes. Go networking, go home, add business cards, reach out ... that's how we should be doing it. But it's another time-consuming task that falls by the wayside, so we miss opportunities to connect.
The problem I personally have with business cards is that the writing is tiny (and my eyes are bad!), then the colours are sometimes hard to decipher. Each and every single business card has a different design too!
But what if I could just hold it up to my webcam, take a picture, have AI read the contents of the business card, then extract the text in the right way and add them to a new contact in YourPCM? That would be massively useful to me and I know it would be to all of my subscribers. It's something I didn't think I could do without great expense ... until I read that blog post.
So, after reading more about Google Vision API and checking out the documentation, running some test scans manually on the API console (using business card images taken on my iPhone), then feeding the results into ChatGPT to get correctly extracted and formatted data back with the right labels, I realised this was something I was going to be able to do, but it would take a massive effort to make it happen.
Once it was sent to the script on my server, it needed to be decoded to a binary stream, saved as a PNG on my server, and then I sent the actual URL to Google Vision API for processing. What I got back was seemingly a load of gobbledegook, but once I'd examined the JSON I realised all the wording on the business card was shown in the response text.
But I didn't need all of it (it contained bounding box co-ordinates too), just the first couple of thousand characters where the actual data was, so I trimmed it down and submitted what remained to the ChatGPT API and asked it to extract things like first name, surname, company, email address, website URL etc.
So, once I received the properly formatted data back from the ChatGPT API, I needed to tweak it in my script (things like processing +44 telephone numbers into the correct UK STD format), stick it into a bunch of querystring variables then pass it to my ADD NEW CONTACTS form to display as default data, which the subscriber could then tweak and change before saving.
It doesn't always get everything 100% (that's the nature of AI I guess), but a subscriber can always click the SCAN, button and try again. Sometimes Google Vision gets it a little wrong, and sometimes ChatGPT doesn't quite process it right, but as both AIs learn, they improve so the second time we scan and process a business card, it could be perfect. So, far, out of 50 business cards I've scanned, the maximum times I've had to scan a card is three, and then it got the data 100% right.
And, of course, I think a lot of these errors are caused by the business card not being completely in focus, or maybe the lighting is slightly off. I was testing these at night while I was working quite late, so maybe in a well-lit office, with a good webcam it would get it 100% right all of the time. Having access to your webcam control panel to twiddle exposure and focus is useful here.
It's quite amazing that an idea I've had mulling over in the back of my mind for a great many months has finally been realised. It took a blog post to trigger the thought processes, some further reading and experimentation, and then a whole lot of coding over a weekend to get it finished.
I snuck the beta version out last night. I wonder what my subscribers will think?
If anything I've mentioned here resonates with you, do call me on 07490 373980 and let's talk.