← All transcripts

How I Scrape Business Websites to Build Better Directories (Deep Data Enrichment Workflow) Transcript, AI Summary & Key Points

Frey Chu · Jan 02, 2026 · People & Blogs · 15:43 · EN

📄 Transcript

Searchable transcript of How I Scrape Business Websites to Build Better Directories (Deep Data Enrichment Workflow) — Frey Chu (15:43). Search for a phrase, then click its timestamp to jump straight to that moment in the video.

Captions sourced from the original video on YouTube, published by Frey Chu. The video, its captions and all related intellectual property remain the property of their respective owners; AINotes claims no ownership. Provided for research, accessibility and search — see the Transcript Notice and Copyright Policy.

00:00 One of the hardest things about building a directory is getting the right data. I'm not even talking about the basics like the name, address, phone number. That's really easy nowadays. I'm talking about going way deeper and maybe cleaning a CSV or deeply enriching a CSV to get that information that people want to know because without that information, it's really hard to get people to trust your directory and see it as a source of truth and then submit a lead form, which then turns into a lead that you can go and sell

00:22 off. Now, usually the best source of data is going to be the business's website because they have all the information you possibly need. But the problem is that what used to be a very manual process of clicking websites and manually searching for the service or product that I'm building a directory around can now be automated in a scalable way using AI coding tools like Cloud Code and Appify.

00:42 So that's exactly what I'm going to show you today. There's a bunch of reasons why you may want to scrape data off a website over Google Maps. Maybe you're trying to build an events directory or a job board where the data isn't really straightforward to go and scrape compared to a location-based directory. But in this video, I'm going to be scraping data off websites more for the purpose of data cleaning and deep data enrichment for a niche that I've been wanting to build for a long time, which is luxury restroom

01:04 trailers. And I'm not going to lie, the first time I tried to build this, this was a major turnoff. I had to manually look up information on websites to confirm if they offered luxury restroom trailers for rent. And it really just made me put a pause to the project. So, now that I have a solution, I'm just way more willing to go and build this thing out.

01:21 Now, before we start, there are four things that you need prepared if you're going to go and do this. The first one is going to be a Claude Code subscription, which starts at $17 a month. The second one is scraped data. I scraped some sample data off out scraper for this niche. You can use Appify to scrape your data as well, but it is a little bit more expensive compared to Out Scraper.

01:39 So, if you are building a location-based directory, I would just use Out Scraper, especially if it's a nationwide directory with a ton of data that you're working with. The third thing you want is a very clear direction and definition for what you're building your directory around and synonyms to describe that thing. For example, mine's luxury restroom trailers, but people also type in luxury portaotties into Google to find the same exact thing.

02:01 So, you kind of want to find that, but for your own niche. The fourth and last thing that you want going into this is just an understanding of the search intent, right? What drives people's decision-m for the people looking for luxury restroom trailers? They want to know if they can serve their weddings, their outdoor festivals. They also want to know if there's two stall trailers, four stall, eight stall trailers, and that's information that we want to know going into this so that we can tell Claude code to go and

02:24 find that information for us. With that said, let's go ahead and dive into the workflow of scraping websites. So, let's start with the challenges when it comes to building a directory in the luxury restroom trailer niche. The idea is great. I validated it multiple times. It has high search volume, low keyword difficulty. It's also a high ticket niche, right?

02:41 People spend $1,000, $2,000 a day on these rentals. So, it all looks good. and I'm ready to go and build. Starting with the data. So, I went to out scraper like I usually do, use their Google Maps scraper, and this is what we're seeing here. And this is when we start to run into some issues. We have this massive sheet with a bunch of junk data. I see Home Depot, Walmart, and Lowe's.

03:00 There's a bunch of other businesses that don't deserve to be in a luxury restroom trailer directory. Let's just say we manually clean this and remove the obvious ones. we'd still be left with a pretty massive CSV, probably 10,000 listings where we don't really know if they offer luxury restroom trailers, let alone portaotty rentals. And it makes it very timeconuming to go and clean this data cuz now you have to go and manually check on a website, look for any portaotty rentals.

03:22 And then if it does, check if they have luxury restroom trailers. And that doesn't even include the data enrichment side where okay, you found a company that offers luxury restroom trailers. Now you have to go and curate all the information that that one company offers. And so this is exactly the problem that we're trying to solve today. Now for the workflow, I'm not going to clean and enrich every single listing on this sheet.

03:43 That's way too much data and I want to keep this short. I just took a sample of 10 businesses here and I color coded them here so we can kind of see if Claude Code did the task correctly. The green highlighted listings are the ones that do offer luxury restroom trailers verified manually. And this orange one right here does offer portaotty rentals, but they don't have luxury restroom trailers.

04:02 So technically, this should not belong in our directory. Just to show you an example of the final output from a data cleaning perspective. This is what we see. Cloud code went ahead and used Apify to go through every single one of these websites and it created this information right over here. We can see that it now identifies if it is a porta-otty company and then if it is, it'll go and verify if it offers luxury restroom trailers.

04:23 But I didn't stop there. I went a step deeper but now for data enrichment. And I said, "Okay, for all the luxury restroom trailer companies that you found, tell me more." And this is when it found this information right here, which tells us that this business offers two stall trailers, four stall trailers, so on so forth. I think you get the point. So from here, I'm going to fire up Claude Code.

04:42 And I am going to do this quickly. If you want a video where you can kind of do this for the first time and hear out how I learned how to do this, this is the video to watch how I started building with Claude Code in just 14 days. From here, we're going to go ahead and just type in Claude cuz we already have it installed. Now, we're ready to get going.

04:58 And the first prompt is just going to be context. I'm going to tell it a little bit about my task here. I have a CSV of website URLs that I wanted to scrape. So, let me write this and then come back when it's finished. So, this is the prompt that I came up with. You can pause it if you want, but I'm basically telling it about my data cleaning and data enrichment task with Appify.

05:14 And I do talk about my luxury restroom trailer directory idea, the challenges associated with it. And I'm saying that I want to give my CSV full of these website URLs to Claude Code and Appify to basically scrape the website and verify whether or not a business offers portaotty rentals and or luxury restroom trailers. At the very end, I say, "Please start by recommending the best Appify actor that's best for this task."

05:36 And I'm going to go ahead and let this run. And by the way, Appify actor is just another way to say Appify Scraper. We can see that Appify isn't one scraping tool. It's a marketplace for data scrapers. And we can see on the front page, these are the most popular ones. We're probably going to be using this one, website content crawler or something similar to it.

05:54 But there is one for Google Maps. As we can see, it's just a little bit more expensive than Outs Scraper in my experience. So, might as well save a few bucks and just get your data from out scraper and then bring it in this way. So, it came back with a few recommendations for ampify actors, which is interesting because the best choice apparently is the GBT scraper.

06:12 That's not the same ampify actor that I used for my test run, which worked really, really well. And the one that I used was called the Playright Scraper. When you're doing this, just make sure that you explain your task as thoroughly as possible so it understands, you know, the best one to recommend. So, I'm just going to move on and basically tell Claude Code that I used the playright actor before and it worked well, but just start to give me the setup instructions for Ampify and then it will kind of walk us through

06:33 the steps to get this thing working. Sometimes Claude Code might give you the wrong recommendation for actors, but the truth is you learn by just trying it out because the best way to find the best actor for you is to run a small test run because Apify has a free $5 credit and you can try this out to see if you're satisfied with the end output. For the setup, it's pretty straightforward.

06:52 Just go to appify.com, sign up for a free account, get your API token by going to the console, and then just give it to Claude Code. So, we can now connect Claude Code and Appify. Starting with the first one, I'm just going to click get started. And I am going to use a new email. So, I have the $5 credit. Once you create an account, you will see a dashboard like this.

07:10 And then now we can head over to the left-hand side under settings and go to API and integrations. And this is the personal API token that you want. So, I'm just going to go ahead and copy this. I will be rotating this token. I'm just showing you the actual key here just for demonstration purposes. Head back over to Cloud Code. And if you want, you can just give Claude Code your key.

07:29 So, I'm just going to copy and paste it here and say, "Here's my API key." So, I gave it my key and said, "Please set it up." And just confirm that it's good before we move on. Cool. My connection is ready to go. And here it does give us a heads up just for best security practices since I gave my API key. You should rotate it after the project is done.

07:47 So, at this point, it's asking for our CSV with all of the URLs, but I would highly recommend that you give it some more context before you start to run this scrape. And the way to think about it is that Appify right now is the engine that allows us to scrape and crawl all of these website URLs at scale. But Claude Code is the brains of the operation.

08:08 Right now, it doesn't know what your budget is, how many pages that has to go through to find this information. and you can tell it and direct it to look for certain keywords, maybe those synonyms that we prepared, just so it doesn't scrape and look at a 300page website and run up your Apify bill when you really don't need to do that. So, I'm just going to go ahead and write a prompt basically telling it the keywords, the synonyms of the keywords I'm looking for.

08:29 I might even mention some game plan and then I'll get back to you once that prompt is finished. So, this is the prompt that I wrote and you can pause it if you want, but I basically said that I want to do this efficiently so it doesn't cost a ton and we're not scraping pages that are unnecessary. And I basically take time to define what a luxury restroom trailer is because there are some websites that say they have luxury portaotties, but they're not actual trailers.

08:48 So, I just took time to kind of define that and I said there could be one or multiple stalls. Some porta potty companies may call it luxury, but it's not. And then I added to look for some keywords that match the search intent for luxury restroom trailers such as luxury portaotties, luxury bathroom rentals, and anything else you can think of. Lastly, just go ahead and check the homepage and any main menu links on the website so that we're efficient with how many pages we're scraping.

09:12 Awesome. So, it's kind of reiterating its game plan here. Proposed keyword lists looks pretty good to me. It says this should limit most sites to 1 to three pages instead of crawling the entire website. I'm going to tell it can do 1 to seven pages just to get more depth in terms of data, but it's totally up to you. And then I'm just going to give it my CSV.

09:30 So, let me write that prompt and then get back to you. I just said you're welcome to limit to 1 to seven pages for more accuracy. Here's my CSV and use the playright actor and just look at the website URLs. Let's go ahead and see what it can do. The first test run is complete and it did kind of time out here. We can see that four sides timed out. So, I am just going to let it do its thing and finish up these four and then we'll see the results afterwards.

09:50 I think the problem was that I specified it was seven pages as the max. In reality, I think maybe just don't specify. Leave it to Claude code to find that information because I know for a fact one of these M andK portaotties has luxury restroom trailers. I'm just going to keep it vague and say don't worry about the seven-page limit. Just use best practices and be efficient.

10:08 So, we hit a little bit of a snag and despite this working perfectly with the same exact data and the same exact test last night. Um, something kind of went wrong. And so, let me explain what happened. Here are the results from the very first run that we did. And I won't say this is terribly wrong. It just kind of missed this row right here, row 10.

10:26 and there's no data. Either the website timed out continuously or something just went about. It didn't scrape too many pages for most of them. One or two pages, five pages deep for a couple listings here. But other than that, the good news is that it did its job correctly in a sense. It found three out of 10 businesses that offer portaotti rentals. And then under offers luxury trailer, it did catch nestpumping.com that offers portaotty rentals but not luxury restroom trailers.

10:53 And just to kind of show you what I mean, if we go to the website, we do see porta potty rentals right here, but they don't actually offer the trailers that we're looking for. So, at least it caught that, which is awesome. But it just missed this one row. And long story short, I tried to run it again, but I just cleaned up the CSV that I gave Claude Code.

11:09 This is the one that I gave it. It has all of this information, and I just gave it a simplified one. And then this is the second result of what we got. And in these second results, we see that it yet again missed this single row, but it also missed this one right over here. But other than that, the data looks good. So, I guess I'm starting to see some slight inconsistencies when it comes to running Apify.

11:29 And I don't think it's necessarily Appy's fault. I looked it up to see why it would time out. It may be due to the actual website's anti-scraping measures. It could be due to the specific Aify actor that I chose. I would probably test around to see other actors to see if I can get 100% perfect results like I did last night. So, this is kind of a realistic situation of what may happen to you.

11:49 Uh, but just letting you know. But with that said, let's continue on. And now that we have at least some of the correctly mapped out luxury restroom trailer businesses, we can now prompt Claude Code and ask for more information. We want to go deeper and I want to get an idea of their full service offering. So, I'm going to go ahead and just go back to Claude Code.

12:07 Write a prompt and I'll get back to you when it's done. So, I just wrote a quick prompt and I basically said, "I want to hone in on these two restroom trailer businesses that you found." And I want to know the restroom trailer options. Is it two stalls, four stalls? And I want to know this so I can accurately include this data on my directory listings.

12:20 So, go ahead and dig deeper with Appify. And I'm going to let this run. See what it can come up with. Hopefully, this turns out pretty well. All right, that was actually pretty quick, maybe a few minutes. And this is the CSV that we got from an enrichment side. And it looks pretty damn good. So, it has M&K portaotties and A1 rentals. And check out the level of data enrichment that we can use for these listings.

12:41 We have the trailer model, the exact size of the luxury trailer stall count right here, which is super valuable. The configuration, and we even got some pricing information for this second one, A1 rentals. It's $1275 a day, I believe, and 1225 a day for these kind of different offers. So, overall, this is incredibly thorough. So, just to break down my final thoughts on Ampify, I think that there are a few different kind of disadvantages or things that I would consider if you're going to go and use this and one major

13:10 advantage. The major advantage here is that you can actually just have this running overnight. You don't have to really do anything or babysit this. If you wanted to set a budget, for example, of $100 and see where that takes you, then you can go ahead and do that. Uh, we can go to usage right here. And if we look at the bottom, it says custom usage limit.

13:29 You can set this to however much money you want to spend. You do have to upgrade to the monthly paid plan if you want to set this, which kind of sucks. I've done it before, but I think it could be worth it because this $39 a month actually goes towards your credits for your Apify scrapes. So, it's not like this money is wasted. And it also depends on your niche.

13:46 If you have a niche like mine where the data enrichment can go really, really deep, then I think it's absolutely something to consider because this data right here would take a good amount of time to go and get manually. So, for these reasons, it may be worth it for me personally because I want it to be super enriched and I believe that this niche is lucrative enough or has monetization potential enough to make this worth it.

14:09 As far as the cons and some reasons why you may not want to use Aify, I would say the first one you witnessed, which is it can be a little bit glitchy, kind of finicky when it comes to the task accuracy. So, that may happen to you. The second one is the cost. So, what we did today costed $1.35, which isn't much, and it's nice. you get $5 for free, but if you have thousands of listings, then this could get pricey very quickly.

14:31 And the third con is that it's just a little bit slow. Like, this took me a long time, and I think something went wrong with the first run. The second run took a long time, too. It probably took 25, 30 minutes just to run one of those scrapes. So, I've been sitting here waiting for an hour just to see these results. So, if you're looking for something fast and accurate, I'm not sure this is the best option.

14:49 Um, but if you don't mind just letting this run overnight, then this is not that big of a deal. So, that's pretty much it. and at least you have one more tool in your tool belt. So, those are my thoughts on using Appify. Hopefully, that was valuable. I think this does unlock so many potential directory ideas that I haven't really explored. I've kind of only built location-based directories, but I've always been curious about these AI tool directories where I saw a board game directory last year that was absolutely

15:13 crushing it, doing like multiple millions a year. So, this now allows me to go and get data for those types of directories. And maybe you're building one yourself. So, if you are, let me know in the comments below. And also feel free to let me know what other challenges you have when it comes to manipulating or acquiring the right data. I can always make more videos around this topic because I have a feeling a lot of people stop when it comes to the data side of directories.

15:36 But that's it for now and as always I appreciate you watching. Thanks so much for the support and I'll catch you in another video. See you.

💡 Answer

Use a CSV of business website URLs with Claude Code as the reasoning layer and Apify as the scraping engine. Define the niche, synonyms, search intent, keywords, desired fields, and crawling limits, then validate the results and enrich qualifying listings.

🧠 AI Summary

A directory can use Claude Code and Apify to scrape business websites, verify whether listings fit a niche, and enrich qualifying records with detailed service information. The workflow uses a CSV of website URLs, targeted keywords, synonyms, search-intent requirements, and limited page crawling to control cost. In a test of 10 businesses, the process identified three businesses offering portaotty rentals, but results were inconsistent because of timeouts or anti-scraping measures. Enrichment extracted trailer models, stall counts, configurations, and pricing. Apify is useful for large, deep enrichment jobs that can run unattended, but it can be slow, glitchy, and expensive at scale.

🔑 Key Points

  • Business websites provide deeper directory data than basic name, address, and phone fields.
  • Claude Code acts as the reasoning layer while Apify crawls and scrapes website URLs at scale.
  • A clear niche definition, synonyms, search intent, keywords, and desired output fields improve the scraping workflow.
  • Targeted crawling of homepages and main menu links can avoid unnecessary scraping and costs.
  • The test found three out of 10 businesses offering portaotty rentals and correctly excluded a company that did not offer luxury restroom trailers.
  • Scraping results can be inconsistent because of website timeouts, anti-scraping measures, or actor selection.
  • The enrichment workflow extracted trailer models, stall counts, configurations, and pricing for qualifying businesses.
  • Apify is suitable for unattended jobs but may be too slow or costly when processing thousands of listings.

✅ Actionable items

  • Prepare a CSV containing the business website URLs to scrape.
  • Define the directory niche, relevant synonyms, search intent, keywords, and the specific data fields required.
  • Give Claude Code detailed context about the cleaning and enrichment task before starting the scrape.
  • Use a small test run to compare Apify actors and evaluate output quality using Apify's $5 free credit.
  • Create an Apify account, obtain the personal API token from API and integrations settings, and connect it to Claude Code.
  • Ask the scraper to check the homepage and main menu links first rather than crawling every page.
  • Use a small sample of businesses and manually verify results before processing the full dataset.
  • Run a second scrape with less restrictive page limits when strict limits cause timeouts.
  • Prompt Claude Code to enrich only businesses that passed the initial qualification step.
  • Rotate the Apify API token after completing the project.

💡 Business ideas

Luxury restroom trailer directory01:00

A directory of companies offering luxury restroom trailers, including detailed trailer and service information.

For
People looking for luxury restroom trailers for weddings, outdoor festivals, and similar events.
Solves
Makes it easier to identify qualified providers and compare their trailer offerings.
Validate by
The niche was validated multiple times using high search volume, low keyword difficulty, and high-ticket rental economics.
  • Two-stall trailers
  • Four-stall trailers
  • Eight-stall trailers
Events or job-board directory using website-sourced data00:47

A directory or job board whose listings require information that is not straightforward to obtain from location-based sources.

For
People searching for events or jobs.
Solves
Provides structured data for categories where Google Maps data is not sufficient.
  • Events directory
  • Job board

🏗️ Business models

Enriched directory lead generation00:00

Build a trusted directory from verified and enriched business listings, collect lead forms, and sell the resulting leads.

  1. Acquire an initial business dataset.
  2. Scrape business websites to verify niche relevance.
  3. Enrich qualifying listings with detailed service information.
  4. Publish the information in directory listings.
  5. Collect lead forms.
  6. Sell the leads.
  • Luxury restroom trailer directory

💰 Monetization

Lead selling 00:19

Convert directory lead-form submissions into leads and sell them.

    Rental service listing monetization People spend $1,000 and $2,000 a day on these rentals. 02:40

    Use detailed listings in a niche with high-ticket rentals and sufficient monetization potential to justify enrichment costs.

    • Luxury restroom trailers

    📣 Marketing

    Sales

    • Use lead forms to generate leads that can be sold.

    Branding

    • Provide enough detailed information for users to trust the directory as a source of truth.

    Distribution

    • Publish enriched business records as directory listings.
    • Use website-sourced data for events directories, job boards, and other non-location-based directories.

    Customer acquisition

    • Target search intent around weddings and outdoor festivals.
    • Use niche synonyms such as luxury portaotties and luxury bathroom rentals.

    🔍 SEO & discoverability

    Mistakes

    • Including irrelevant businesses such as Home Depot, Walmart, and Lowe's in the initial dataset.
    • Relying on strict page limits that contributed to timeouts and missed records.

    Local seo

    • Use Google Maps data as an initial source for location-based directories.

    Strategies

    • Build around a niche with high search volume and low keyword difficulty.
    • Use synonyms that match how people search for the same service.

    Content strategy

    • Include trailer models, stall counts, configurations, and pricing in directory listings.
    • Capture service capabilities relevant to weddings and outdoor festivals.

    Keyword research

    • Identify synonyms for the niche.
    • Use search-intent terms such as luxury portaotties and luxury bathroom rentals.

    🧭 Frameworks

    Website verification and enrichment workflow04:58
    1. Start with a CSV of business website URLs.
    2. Define the niche, synonyms, search intent, and qualification criteria.
    3. Connect Claude Code to Apify.
    4. Select and test an Apify actor.
    5. Scrape relevant pages using keywords and efficient crawling rules.
    6. Verify whether each business offers the target service.
    7. Enrich qualifying businesses with detailed offerings.
    8. Manually validate a sample of results.
    9. Import the enriched data into directory listings.

    🧰 Tools & AI usage

    • Claude Code — Reason about the scraping task, recommend actors, configure the workflow, and interpret results.00:38
    • Apify — Crawl and scrape business websites at scale through scraper actors.00:40
    • Out Scraper — Scrape initial location-based business data, especially for nationwide directories.01:31
    • Google Maps scraper — Collect initial business listings for a location-based directory.01:49
    • GBT scraper — An Apify actor recommended for the website-scraping task.06:10
    • Playright Scraper — An Apify actor used in the test run.06:16

    AI is used for

    • Directing website scraping and data enrichment — Use task context, niche definitions, keywords, synonyms, and desired fields to guide Apify scraping.04:58
    • Classifying business relevance — Determine whether a business offers portaotty rentals and whether it offers luxury restroom trailers.04:17
    • Extracting detailed service attributes — Find trailer models, stall counts, configurations, and pricing for qualifying businesses.11:59

    📊 Numbers mentioned

    Costs

    • A custom usage limit of $100 was given as an example.
    • Processing thousands of listings could become expensive quickly.

    Growth

    • The initial dataset could contain approximately 10,000 listings after obvious manual cleanup.
    • The sample test contained 10 businesses.
    • The first run identified three out of 10 businesses offering portaotty rentals.
    • The recommended crawl range was 1 to 3 pages, while a test was configured for 1 to 7 pages.
    • Individual scrapes took approximately 25 to 30 minutes.

    Pricing

    • Claude Code subscription starts at $17 a month.
    • Luxury restroom trailer rentals may cost $1,000 or $2,000 a day.
    • A1 Rentals pricing included $1275 a day and $1225 a day.
    • Apify provides $5 in free credit.
    • A monthly paid plan costs $39 a month and the amount goes toward Apify scrape credits.
    • The test scrape cost $1.35.

    Traffic

    • The luxury restroom trailer niche has high search volume and low keyword difficulty.
    • A board game directory was described as doing multiple millions a year.

    ⚖️ Advantages, risks & lessons

    Advantages

    • Website scraping provides deeper information than basic business listing fields.
    • The workflow can run overnight without continuous supervision.
    • Detailed enrichment can save substantial manual research time.
    • The approach supports directory categories beyond location-based listings.

    Risks

    • Scraping can time out or miss rows.
    • Website anti-scraping measures can reduce accuracy.
    • Different Apify actors may produce different results.
    • The process can be slow, with individual runs taking 25 to 30 minutes.
    • Costs can increase quickly when processing thousands of listings.
    • Giving an API key to Claude Code creates a security concern unless the token is rotated afterward.

    Lessons

    • Test a small sample before committing to a scraping actor or large dataset.
    • Give the AI detailed task context and clear definitions to improve classification.
    • Avoid crawling unnecessary pages when the required information can be found through targeted links and keywords.
    • Manually verify sample outputs because automated scraping may produce inconsistent results.

    💬 Quotes

    Appify right now is the engine that allows us to scrape and crawl all of these website URLs at scale. But Claude Code is the brains of the operation.

    Clearly distinguishes the roles of the scraping platform and AI coding tool.07:58

    The best way to find the best actor for you is to run a small test run.

    Captures the recommended method for selecting an Apify actor.06:42

    👤 People & companies

    Home Depot

    Example of irrelevant junk data appearing in the directory dataset.

    02:58
    Walmart

    Example of irrelevant junk data appearing in the directory dataset.

    02:58
    Lowe's

    Example of irrelevant junk data appearing in the directory dataset.

    02:58
    M&K Portaotties

    Portaotty business identified during the scraping and enrichment test.

    10:02
    A1 Rentals

    Restroom trailer business whose enriched record included pricing information.

    12:36
    nestpumping.com

    Business identified as offering portaotty rentals but not luxury restroom trailers.

    10:48

    🔗 Links mentioned