Day 100 of 100 Days Coding Challenge: Python
Guess what? Today marks my 100th consecutive day of coding. A round of applause, a pat on the back, maybe even a slice of cake—yes, I’ll take all of it. But here’s the twist: I’m not stopping. I’ve started a project (Business Rader 3000) that still has at least 11 days to go, and honestly, I’m too hooked to quit now.
For this milestone day, I tackled something spicy: scraping email contacts for companies. My plan was to use Hunter.io and LinkedIn. Before diving in, I checked Hunter.io and—surprise—they actually hand you 50 free credits a month. For my purposes (coding fun, not spamming every marketing lead in the world), that’s more than enough. I even signed up, grabbed my shiny new API key, and tucked it away like treasure. Little prep steps like that may sound boring, but trust me: they’re the difference between cruising through the code and banging your head against the keyboard later.
Today’s Motivation / Challenge
Why does this matter? Because a business radar that doesn’t give you contact info is like a phone book without phone numbers: decorative, but not terribly useful. Adding email search makes the project feel alive—it bridges the gap between “Hey, I know this company exists” and “Here’s a real human you could reach out to.” For a hobbyist project, it’s part detective work, part magic trick.
Purpose of the Code (Object)
The code connects to the Hunter.io API and asks for email addresses related to the company’s domain. If successful, it returns a tidy list of emails, along with names and job titles when available. Think of it as a very polite assistant who goes knocking on digital doors and brings back a calling card.
AI Prompt
Please add:
Day 4 of Business Rader 3000
Add this function:
- LinkedIn or Hunter.io Email Search.
- Use web scraping or Hunter.io API to extract emails.
- Optionally parse LinkedIn names (only if it’s legally allowed).
Functions & Features
- Take a company name and resolve it to a domain.
- Query Hunter.io API for emails connected to that domain.
- Display results with name, title, and email.
- Track credit usage so you don’t burn through your free quota.
Requirements / Setup
You’ll need:
- Python 3.11+
- Install libraries:
pip install requests
(Plus a Hunter.io API key saved in your .env file.)
Minimal Code Sample
import requests, os
api_key = os.getenv(“HUNTER_API_KEY”)
domain = “ford.com”
url = f”https://api.hunter.io/v2/domain-search?domain={domain}&api_key={api_key}”
resp = requests.get(url).json()
print(resp.get(“data”, {}).get(“emails”, [])[:3]) # show first 3 emails
This snippet grabs a few emails from Hunter.io for Ford—costs you one credit, but gives you real contact info.
business-rader-3000
Notes / Lessons Learned
The process was smoother than I expected, but I did trip over a silly variable mismatch. My function call used industry_hint=…, while the helper file similar.py didn’t know what that was. Cue cryptic errors. Once I tied the function signatures together, everything clicked.
Testing with Ford Motor Company gave me several emails right away, and I checked—just one credit gone. Not bad! For hobby use, the free tier is plenty. But if you’re planning to do serious lead generation, you’ll probably want to pony up for a paid plan. For me, though, the thrill was enough: after 100 days of code, I can officially say my project can find people on the internet. That feels oddly powerful.
Optional Ideas for Expansion
- Add a filter to only return emails with certain job titles (CEO, Marketing Manager, etc.).
- Save results into a CSV for later use.
- Combine Hunter.io with another source (like Wikidata titles) for richer context.
Conclusion
This wasn’t exactly Day 100—it was Day 108. That’s when the Business Radar 3000 project was finally completed.
We live in a surprisingly good era. Not long ago, the barrier to entry for programming felt much higher to me. I was always interested, but it was never a priority. At the time, I told myself it was because I was busy earning degrees and professional designations, or because work had me constantly traveling. Eventually, I had to admit the truth: those were excuses.
I’ve never been fond of “book-only” learning. I’m far more output-oriented. What matters to me isn’t the process itself, but what I can actually build from it. There was no guarantee I would enjoy programming—or that I would produce anything useful at all. But curiosity was enough to start.
To create something truly sophisticated, you still need solid programming skills. That hasn’t changed. But even with modest skills—like mine—you can already build meaningful tools. And that alone changes the equation.
That said, programming comes with responsibilities. A few lessons worth remembering:
- Protect your information. Never hard-code sensitive data when accessing services through Python.
- Use a
.gitignore file. If you’re pushing code to GitHub, protecting your credentials is non-negotiable.
- Back up everything. I once broke a project I’d been working on for over two weeks and spent hours repairing the damage. Once is enough to learn that lesson.
AI has the potential to close certain knowledge gaps. Someone with limited programming experience can now create simple but useful tools—like a stock tracker, a book tracker, a civilization timeline app, or a business analysis app.
I was curious about how far AI could push me, especially amid constant headlines about programmers losing their jobs and predictions that AI will replace most forms of work. Some displacement may be inevitable. But it’s worth remembering that there are still things AI cannot do.
There are warnings that AI will leave us intellectually hollow, disengaged from real thinking. I don’t believe that. Engagement is still a choice. What we build—and what we choose to care about—remains entirely human.