people keep asking how the personalization works, so heres the actual system architecture. nothing proprietary here — its all python and common sense.
step 1: prospect discovery
i scrape yellow pages and google for businesses in a target industry + city. pull name, email, website. takes about 30 seconds per page of results. dedup by email.
step 2: website scanning
this is where it gets interesting. for each prospect, my seo analyzer hits their website and extracts:
this takes about 2-3 seconds per site. for 500 prospects thats ~25 minutes of scanning.
step 3: template selection
i have 3 email templates. the system picks which one based on what it found:
each template has placeholders like {domain}, {missing_alt}, {total_images}, {seo_score} that get filled with real data.
step 4: daily sending
gmail lets you send about 25/day before deliverability starts dropping. so the system sends 25 each morning via smtp. 2.5 minute gap between each one. saves progress after every send so it picks up where it left off if anything crashes.
step 5: follow-ups
5 days after the initial email, anyone who didnt reply gets a follow-up. different angle, still personalized. the follow-up mentions their actual score and offers a free detailed report.
step 6: reply detection
every 30 minutes, the system checks gmail for replies. matches them against the sent log. when it finds one, it sends me a telegram alert with a suggested response based on what the person said.
the whole thing runs on cron jobs. i set it up once and it just goes. scanning happens at setup, sending at 9am, follow-ups at 3pm, reply checking every 30 min.
total lines of python: maybe 800 across all scripts. nothing fancy. requests, beautifulsoup, smtplib, json. runs on a linux server that costs $0 because its my dev machine.
the part that makes money isnt the code — its packaging it as a service so someone else doesnt have to think about any of this. they just get leads showing up in their inbox.
if youre building something similar, happy to share more details about any specific part.