Skip to content
View simple-actor's full-sized avatar

Block or report simple-actor

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
simple-actor/README.md

Simple Actor: web scrapers I build, run and fix in production

I build web scrapers, publish them on Apify, and keep them running when the sites change underneath them. Each one reads a site the way it serves itself to a logged-out visitor and returns one clean row per thing you asked for. When it can't read something, the row says so and says why, rather than handing you an empty file.

The repos here are working examples: the problem, a Node and a Python script, and real output from a real run. The write-ups are on simple-actor.github.io.

Latest write-up

Carbone, Torrisi, 4 Charles and Tatiana had no open day for two in the next 30 days. Misi had 25. 3 of 8 restaurants with any open day, 43 open days in all, $0.008 a run.

How to get a table at a booked-out New York restaurant on Resy (8 restaurants, 30 days): Resy's own booking calendar for 8 New York restaurants, 30 days out: 4 with no open day for two, Misi with 25, and a Lilia table that opened up between two runs. Lunch and 5pm count as available. $0.008 a check. Code: resy-table-finder

Use them without writing code

n8n workflows: Four tested workflows: Maps leads to Sheets, competitor ads digest, job alerts, CRM enrichment Claude guides: Ask Claude for leads in plain words; it runs the scrapers through Apify's MCP server

The scrapers

Leads and local businesses

Google Maps Leads: Every business Maps lists for a search, plus the emails, phones and socials on its website Google Maps: Places with rating, reviews, address, phone, website, hours and Place ID Website Contacts: Emails, phones, socials, address and contact form from a list of websites Business Profile: One business from a name and a town: its Google record, website contacts and socials

Search and ads

Google Search: Web results, or Google News stories with links to the publisher Google Images: Full-size image URLs, sizes and source pages for any search Google Short Videos: The Short videos tab across YouTube, TikTok, Instagram and more Google Ads Transparency: Every ad an advertiser runs, found by name or website

Social profiles and jobs

Facebook Page: A public page's latest posts with reactions, comments and shares Instagram Profile: A public profile's latest posts and its follower count TikTok Profile: A public profile's latest posts with views and followers X Profile: A public profile's latest posts and stats YouTube Channel: A channel's latest videos with views and likes LinkedIn Company: A company page and its latest posts with engagement LinkedIn Jobs: Public job postings for a keyword and a place

Travel, restaurants and the open web

Booking.com Hotels: Hotels for a destination with prices and reviews OpenTable: Restaurants with ratings and their recent booking count Resy: Restaurants and the reservation slots they have open Web Page Text: Any web page as clean text, plus its links

All of them, with prices: apify.com/simple.actor

Popular repositories Loading

  1. simple-actor simple-actor Public

    Simple Actor: web scrapers I build, run and fix in production

  2. simple-actor.github.io simple-actor.github.io Public

    Real problems solved with web scrapers: real runs, real output, honest limits

    HTML

  3. google-maps-email-scraper google-maps-email-scraper Public

    Every business Google Maps lists for a search, with the emails, phones and social accounts on its own website. Node and Python examples.

    JavaScript

  4. n8n-claude-lead-generation n8n-claude-lead-generation Public

    Four tested n8n workflows and three Claude (MCP) guides for lead generation: Google Maps leads with emails, website contact enrichment, competitors' new Google ads, LinkedIn job alerts.

  5. google-maps-scraper google-maps-scraper Public

    Every place Google Maps lists for a search, past the ~120-place limit by splitting it by area, deduplicated to CSV. Node and Python examples.

    JavaScript

  6. website-email-scraper website-email-scraper Public

    The email, phone, contact form and social accounts each website on a list publishes, one row per site, to CSV. Node and Python examples.

    JavaScript