u/Luminaaar

Fixed the bug that made my actor return empty rows — what broke and what I learned
▲ 1 r/apify

Fixed the bug that made my actor return empty rows — what broke and what I learned

My actor (Google Maps No-Website Leads) had a nasty integration bug: the child Google Maps scraper returned valid data (title, phone, website, url), but my pipeline expected canonical fields (businessName, phonePublic, websiteUrl). Rows passed through unmapped, so buyers would pay for a run and get empty output.

The annoying part: my tests all passed, because my CSV fixtures already had canonical columns. Production was broken while the test suite was green.

Fix was a normalization layer mapping child scraper fields into the canonical schema, plus a status bug where temporarilyClosed: false got stringified into businessStatus: false.

Live smoke test after the fix:

  • 2 real no-website mobile welders in Austin, priority score 88, phones included, pitch-ready outreach line
  • 1 healthy-site business correctly classified as not_a_fit and skipped

Actor: https://apify.com/luminar/google-maps-no-website-leads

Two questions for fellow builders:

  1. How do you validate your output pipeline against the ACTUAL child dataset shape, not fixtures? I added a regression test replaying a real child record through the mapper, but it feels like there is a better way.
  2. Store discoverability: I went from invisible to ranking #3-8 for no-website-leads searches after renaming the slug to match buyer search terms. Any other Store SEO tricks that actually worked for you?
u/Luminaaar — 8 days ago