Before I get into the tech stack, let me briefly talk about SuperProfile.
SuperProfile (in alpha right now) is an AI powered tool that reviews your LinkedIn profile for you. It tells you how many different customer and company personas would be interested in whatever it is you are offering.
It also tells you if you are stretching yourself too thin - does your profile showcase completely disparate talents which could become a problem because even someone in your target demo might not realize that on thing you are offering that is right for them in a sea of other unrelated offerings.
With that out of the way, let me talk about the tech stack.
Since I am most comfortable with AWS, I have decided to keep everything there. Even within AWS, our usage levels aren't so high that our bills exceed the cost of renting a single EC2 box for a month. For this reason, we are sticking to serverless (API Gateway + Lambda).
Our users can request that our profile reviews be emailed to them which we handle using AWS SES. I told you we are AWS fanboys.
We store profile reviews linked to an email in DynamoDB.
Our backend is GPT-4 (no prizes). There is no special plumbing between us and GPT-4. As requests arrive, they are farmed out to GPT-4. We don't have a queue to feed requests in dribs and drabs to GPT-4.
This is because we haven't hit any of OpenAI's rate or token limits (alpha stage, remember?)
If it happens that GPT starts to rate limit us, we will worry about implementing a retry loop.
We haven't started doing email marketing since all our users are people we know but once we open it for beta users, we will be using a more sophisticated email marketing tool that AWS SES.
We did our prompt engineering offline to cover all the basic questions people want use to answer about their profile.
Hope this helps someone.