Charge contractors $99/month for a daily email of new building permits in their trade and zip code; 20 contractors equals $2,000/month, and the build costs only about $17 ($5.67 in Replit credits plus an $11 domain).
Build a web app that reads a city's free open-data permit feed each morning, tags each permit with the trades that would want it, and emails a daily digest of new permits to contractors who subscribe by trade and zip code. Sell access at $99/month; 20 contractors is $2K/month. The city already collects and publishes the data for free — the whole business is removing friction.
Searchable transcript of Turn Free City Data Into a $2K+/Month Side Hustle With AI — Chris Koerner on The Koerner Office Podcast (20:46). 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 Chris Koerner on The Koerner Office Podcast. 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 Every time someone pulls a permit for a new pool in Dallas, Texas, a fence company, a landscaper, and a patio guy all want that address. And the city posts every one of those permits online for free in any city, not just Dallas, every single day. But what's the move? You charge a contractor 99 bucks a month to get those permits in their inbox every single morning.
00:17 20 contractors is two grand a month from a list that the city gives away for free and that AI will assemble and send out for you. I've got my clock right here, 111. I'm going to type one prompt, let replet agent build it, and spend the rest of the time trying to sell it. By the end of this video, you're going to have the exact prompts I use, the list of trades that actually buy these leads, and the exact message that I send to contractors to get their business.
00:42 It's all going to be free in a Google doc in the description. And at the end, I'm going to actually reach out to real contractors live and try to get one of them to pay me. No audience plants. So, if nobody bites, you're going to see that tour. So, the business here today is a daily permit alert. A contractor will pick their trade and their zip code and every morning they'll get an email with the new permits that matter to them.
01:03 That's it. And I'm going to build it with Replet agents. Replet, the partner of the show, and I build a bunch of stuff on it. You can find the link below. I use Replet every day in my actual life. So, everything you're seeing here is authentic. Let's dive in. But before I touch anything, here's why this is a business. So, when someone pulls a permit, they're about to spend real money.
01:27 Usually five or six figures, hundreds of thousands of dollars. A brand new house is going to need a fence, a yard, gutters, blinds, and a new pool will need a fence and a patio at a bare minimum. And the contractor who shows up first is usually the one that gets the job. And how do I know? Because I'm building a pool right now. We're in the thick of this in the real world.
01:42 And with our tree service, we use this same strategy to find jobs. Now, there's a lot of ways to find jobs. You can use referral yard signs, pay for leads, but a lot of these paid lead sites sell the same homeowner five different leads. Not going to name names, but just thumb drive, you know. So, you're paying like 40 bucks as a business owner to race four other guys to a phone call, but that's the old way.
02:09 We're not doing that anymore. There are already companies selling cleaned up permit data as a subscription. People pay for this. And why I love it is because there could be five to 10 business owners in every city doing the same business. There is room for everyone here. So today, we're going to make a simpler version for one city in one trade and sell it only to the gods who need it.
02:29 And here is the math. 99 bucks a month, 20 contractors equals two grand a month. Your cost on this is going to be some credits and an email service. And once it works in one city, you just point it to the next city's data in the same app. So here are the five trades that I would sell this to. Number one, landscapers. Every new house needs a yard and the builder usually stopped at sod because he's not a landscaping business.
02:51 Number two, gutter companies, new home, new additions. Same deal. Number three, blinds and shutters. Nobody moves into a new house with fair windows. Okay. Number four, pool builders. A new home permit on a big lot is just a pool conversation waiting to happen. And number five, the one I'm building for today because they get it from both sides. new homes and new pools and, you know, tear down.
03:14 And in a lot of cities, a new pool legally needs a new fence around it, mine included. So, you're going to hear me say two different things. Number one, open data. Okay, that is just like the city spreadsheet posted online and updated every day. Legally, they have to post this stuff. Replet agent is going to read that spreadsheet every morning for us.
03:37 And the second thing you'll hear me talk about are tasks. So in our tree service, the climbers in the tree, the chippers chipping, the rake guy is raking, and everybody's going at the same time, right? They're working in tandem, concurrently at the same time. Replet agent also does that. I give it three jobs to do. Let's say fill the website, make an agent, and make an email automation.
03:59 And it will look at all three at the same time. Don't overthink me. Let's start building. Okay, we're going to click new. Go to chat. And here's my prompt. built a web app called Permit Central for local contractors every morning for new building permits from the Dallas open data portal at dallasopendata.com. How did I get that URL? I went to Google.
04:15 I typed in Dallas open data portal URL. There it is. Tag each permit with the trades that would want it next. Fence, landscaping, pool, gutters, and blinds. Contractors sign up, pick their trade and their zip code, and get one email every morning with the new permits that match. a simple dashboard where they can browse and filter with permits. Charge 999 a month with Stripe.
04:35 Send email with resend. Keep it clean and simple. Built for a contractor checking it on their f. All right, let's see what it cooks up. And remember, nothing goes live until we hit publish, right? We can make any changes we want. Everything's reversible. I'm the boss here. It's working for me. Okay, it's going to start with the Dallas data feed. Sign up payment.
04:54 Stripe needs to be connected. Okay, we're going to connect Stripe, which is of course a payment processor, just by clicking that fake food button. Boom. It took about eight seconds. Stripe is connected. That's it. Okay. Resend is who I use for uh email sending. I'm just going to log into my account. I'm just clicking the big black button. Permit central.
05:13 Full access. Click add. Okay. There it is. I copy it. Don't look. No lookies. Back here. Paste it. Submit. Okay. Now, it needs to know which email I'm going to send emails from. Which email address. I already have one in resend. I'm going to type that in. What I love about Rebellet Agent is you don't need to know what to do. They just ask you for things.
05:33 And if I didn't know how to do any of this, I would just say, "How do I do that?" And it would tell me where to find it or how to do it or whatever. Okay, payment and email setup is in place. It's building the app and connecting it to the actual permit feed. Okay, this is cool. It was like, uh, sorry, Chris, you screwed up and they don't have an active data set at that website anymore.
05:51 So, I found the right one. Didn't even have to do it myself. It's going to clearly point out which records are historical, which are new and fresh. This avoids charging contractors for new leads that aren't current. Daily fresh leads will need an accessible current sales. Look, if you click this right here, you can actually see what it's doing. A lot of these are being done at the same time.
06:16 This is a task. This is part of what they call plan mode. It will split up, you know, a large plan like this into tasks and show you what it's doing as it's doing it. Boom. Know which permits mean work for your cruel. Look at this. These are real permits. Foundation repair $11,650. Replace HVAC $3,500. These are real addresses, real permits. I never even went to this website.
06:39 And now they're listed right here. Well, this is Holy crap. Okay. And I didn't even have to like design it. It designed it for me as it was building out the actual infrastructure. Speaking of design, if we didn't like this design or we just want to change the headline or something, you just toggle from build to design and it gets really really it becomes a wizzywig editor.
06:53 What you see is what you get. In other words, editing and building websites with twofold know how to code. So, we'll just click this edit. I'm just going to make it simple. More permits equal more money. Save one edit. I just wanted to show you how you can make edits. If we want to keep building the actual infrastructure, we'll just toggle back away from design to build.
07:14 Here's the thing about this business. The contractor is going to pay 99 bucks to see the job before the other guy does, before his competitor does. One fence job off this list is worth 2,000 20,000 bucks. So, what's 99 bucks to him? And I'm thinking the reason he's going to stick around is because it's so dang easy. It's frictionless. Two words that every business owner needs to get tattooed on their forehead if you tattoos, which I'm not.
07:40 remove friction. Okay, remove friction. Shows up in his inbox. He skims it. He makes a couple calls. Hopefully, he gets a job. The city already did the hard part. They collected all the data. It's just sitting there free, ugly, hard to use, and all we're doing is using an AI tool to make it. That's the whole business. Removing friction. Okay. Okay.
08:02 Remember, nothing's published yet. We haven't published. We can still make changes, but it's just to me, my mind is just kind of blown looking at the actual permits here. Like these are potential jobs right here. 2,00 records. And it's even telling us that some of these are old, which is great because we don't want to get in hot water. We can fix that.
08:16 Let's go ahead and publish it so we can play around with it on the internet. This isn't going to be on a custom.com yet. It's going to be on refle.com. I like that because then no one can accidentally find it until I'm ready for the government to find it. So, hey, here's what I like about it. It's telling me other things I need to do that I don't even know about, right?
08:35 It's saying, "Hey, the only leads we have right now are old. We need to get the new fresh, you know, updating ones. Cool. Start that. And confirm paid access and one morning email to Okay, so it's going to start on two tasks at once with two clicks. Boom. And we are publishing. Uh-oh, guys. We hit some friction. We're trying to remove that. It's saying I have to make a phone call or send an email to the city of Dallas to unblock this stuff.
09:01 Uh, no. Here's what I'm going to do. I'm going to change the dang city. There's freaking 50,000 cities in this wonderful country. Doesn't have to be Dallas. What's the purpose of vibe coding a website in my PJs if I were wearing PJs? If I have to call someone, come on. No. So, instead of like hopping over to Chad or Claude and doing all this research, Rabbi can do that, too.
09:23 Going to go to research flowing. Try and find a better city to go. You guys thought I was going to edit out the roadblocks, right? There's always going to be roadblocks. Big deal. I'll look for a large city with a working public permit API. No calls, account approval, and manual download. Yeah. Cool. And guess what? We're live. We are live. Swap out the word Dallas with whatever city we come up with.
09:42 Look at it. Found all these cities. Austin, Chicago, yada yada yada. Chicago. Beautiful. Chicago's great. Go all in on Chicago then. And it's it's waiting to send this because it's already working on something, but I'm impatient. So, I'm going to click send now. That way, it doesn't keep spinning its wheels looking for other cities because it doesn't know if I want to do Chicago yet.
10:01 So, usually I try to be patient there, but in this case I want them to save some. Let's just do this. Okay, look at this. Here we are. Chicago Pit central Chicago. It already made a bunch of changes for me in its agent agent feature. So, I'm going to apply those changes. I'm pretty bad at actually checking replets work. It's because really gives me reasons to doubt it.
10:18 So, I always just hit. Do your own research. Okay. And remember, we already published this. Right now, it's invite only. I want to make it public. And after you do that, you want to hit republish. So, so we can get this online and start promoting it. Okay, our app website is live. Permit central Chicago. We got pricing, but I don't see any actual permits like I did on the Dallas one.
10:45 We got to fix that. And remember in Replet, if you want to see what the site or the app actually looks like before you hit publish and poke around and play with it and test it, just click the preview pane right up here in the center of the screen. Okay, cool. Cool. I am seeing some leads here, but I wasn't seeing them on an actual website for some reason.
10:59 But when I refresh, boom, there it is. I see them. So, we're good. So, I'm going to tell Frelet we're good. Never mind. Okay, good. All right. Remember, the last mile of any project is the hardest to build, right? Last mile of a marathon is the hardest. The last mile for a shipping company is the hardest because it's the most inefficient. You're going in and out of neighborhoods to the second floor of a building.
11:24 You know, you can't see the unit number on the door. The last mile is the hardest part, but that's okay. You got to push through it. Now, let's find some customers. Here's the fun part. I'm going to give you this prompt for free in the description that will have my AI agent reach out to a ton of home service businesses in the greater Chicago area for me until we find a customer.
11:37 You don't have to do this. Okay. Okay. There's my huge master prompt. Let me give it the URL for the app. And you know what? It looks pretty janky. Just, you know, replet.refflet.app. I want to get a custom domain name. So very very simple. Here's what I'm going to do. I like to use Namecheep for my domain name. I'm going to go to Namecheep right here and search Chicago permit central.com because permit central.com is $5,000.
12:06 I'm not paying that. Add to cart. We're going to sign in. One of the most important parts of making any app or website is connecting it to your own.com. And a lot of people are intimidated by how to do that. So I'm going to show you right now and you will not be intimidated at all. Okay. Chicago permit central. Confirm order. pay now. Okay, now we're just going to hop right back over to Reflet.
12:27 We're going to go to tools, publishing, domains right there. Use a domain you already own. Chicago permit central.com. Recklet is magic. And it will see where that domain is hosted right now. And it's about to see name. Okay, right there. Just purchased it. And you know what? Before we'd have to go into the DNS records and add the text record and TTL and you don't have to do any of that, okay?
12:50 All you got to do is type in the domain you just bought on replet. It's going to say, "Oh yeah, you bought it on namecheep. Cool. Log into namecheep." I'm going to do that right freaking here. It's going to want my two-factor authentication again. No problem. Connecting Chicago permit central.com. Now, is that long domain name ideal? It's not. You know what?
13:09 What is ideal? Okay. Chicago permit central. Seven syllables. Not my favorite, but it is personalized at least. And if we ever make it outside of Chicago, then we would just change the name or we would make, you know, Dallas Carlson or whatever. Okay. No thanks. Boom. That's it. It's done. Now it's orange. And in about 5 minutes, that light's going to be green right here.
13:32 And then it's going to be fully connected. I'm going to republish it again. And I'm going to go back and tell my agent right here. Chicago central.com. Dude, already has 2699 permits pulled. All recent. That's amazing. Now, the agent is just asking, "What's the reply email?" Like, "Where should people reply to you?" I just gave my email. And then I'm going to say, "Only pitch to five trades that this site actually supports."
13:53 Oh, you know what this needs? We need a nobrainer offer. Oh, I love this. I'm going to tell the agent to switch up the outreach a little bit. Add a no-brainer offer to the outreach. If the business owner doesn't land a lead from our list within 30 days, we will refund their $99 in full. No questions asked. Because guess what, guys? before you say, "Oh, that's too risky."
14:15 Because what if they don't? What if they're not good stewards of the lead, which they might not be? Doesn't matter because if our leads are no good, we don't deserve their $99. It has to actually work. All right? I know there are companies out there that sell, you know, a crappy bill of goods that don't actually work and they're still in business.
14:30 We're not that. We're not doing that. Okay? So, this is a good litmus test to see if they're actually good or not. If they're not, we have to keep refunding people. Then we got to fix something. Then we have a fulfillment problem, not a sales problem. I would rather have a fulfillment problem than a sales problem any day of the week because sales is usually harder.
14:45 Okay, start sending to as many as possible. And look at that freaking thing right there. Boom. Chicago.com green. Now we are ready to republish it. This is so cool. Boom. Republish with the new domain name. First list is in and verified. 22 fence companies, 22 landscaping companies, 44 total. 23 of them are email ready. Five have a contact form on the website.
15:11 12 have only Instagram and Facebook DMs. And the other three industries, pools, gutters, and blinds are still running. Oh, that's so cool. Every message is a full offer. Boom. Website is live at the new domain name. You can see right there at the top. Boom, boom, boom. And now we're good. That's such a good email. Hi, I'm Chris Kerner. I built Permit Central.
15:33 Chicago public comfort central.com which emailed contractors every fresh Chicago building permit in their zips at 7 a.m. An $800,000 new construction permit just pulled on North Oakley Avenue in 60618 your home turf same zip code that he's in. Ravenswood projects and all. And that yard is going to need landscaping before it needs anything else. Want tomorrow's list for your zip free no card?
15:53 Keep it for 99 bucks a month. And if you don't land a lead in 30 days, I refund it in full no questions asked. That is a nobrainer offer email. Should I send the email? Absolutely. Always allow. Boom. Now, if something was breaking about this app, I could have you, my agent here, log into Replet and fix it for me while I sleep. Now, just for funsies, let's see if this website actually works.
16:17 Set up your trade. Okay, you've seen everything I've done to build this. Okay. Like continue with Google, like all this signin stuff. It just did all this. I don't even know what to say to have it do this for me. It just did it. So, I'm signing in dashboard. Okay. Company name Chris. Uh, let's say landscaping 60614. Add. I could add other zip codes.
16:43 Amazing user interface. 7 a.m. digest. Do I want that? Absolutely. Save and open permits. Okay. Landscaping pool. It shows me some, right, which is great. But I'm going to go ahead and pay as a customer. So you can see it works. Hopefully it it does. And no, don't worry. I'm not going to count this as being my first paying customer. I'm not that lame.
17:00 Go ahead and hit subscribe through Stripe per month. This is recurring. And we're good. Look at that. No more payw wall. I can keep scrolling. It's scrolling and scrolling. 113 pages only landscaping. And I I can look at tool permits if I want, but those are probably not applicable to me. When you click into it, you see this imported. Boom. Issued value.
17:24 Why? And it even has a little explainer why it's triggered. Roof work may create an opportunity for gutter roof. That is true. And if you want to see the official like origin of record, city record, you just click on that link and it's right there. It works, guys. It works. I didn't have to debug anything. It works. Now, let's see how much it cost me to build this.
17:45 I'm going to go to my usage here on Replet. You can do this everything I did on a $20 a month plan. And these are all the projects I'm working on. You can see I'm not just doing this for the sponsored post. I actually work in Replet every single day right here. Permit central. $567. It cost me $5.67 plus the $11 domain name. cost me twice as much dominion to put up this beautifully designed website with a Stripe integration that officially works.
18:10 Beautiful. Now, what time is it? It is 9:58 p.m. That's embarrassing, but I [laughter] procrastinated a lot. The length of this video, unedited, is about 53 minutes, but I ate dinner, I got Chipotle, and I did a bunch of other stuff. It is still the same day, and a different agent is sending out messages for her. guys, sell it before you have it.
18:35 Okay? $6 plus $11 for the domain name and we're in business. If you want to even save, you know, $17, go to the biggest fence company in town and say, "Hey, I'm going to build something like this just for you. Your trade, your zip code, your logo, $1,500 bucks to set it up and $200 a month to keep it running." Then you can have a customer before you even build it, before you even waste 53 minutes building it.
18:56 If you can sell the same thing to a landscaper, a gutter company and a blinds company in the same city and none of them are competing with each other. It's the same app. You could you could copy and paste this literally in Replet and sell the same website with a different name or a different niche or a different city to thousands of different businesses.
19:14 Now, I'll know the kind of secrets about these AI agents like use and grock and all that. When they're doing stuff like sending emails, they often want you to click wow, send over and over. is very tedious and it's like well that's not really done for you. So you get something like Grockbot which is another agent just like Muse. You log into Grockbot and then you log into Muse with Grockbot and then you say go to this one chat called permit central and the only thing you can do is click send send.
19:44 Every time it appears just click send over and over. I'm going to sleep. You keep doing this and it will in fact I'm going to do exactly that for this. You've got to come to grips with yourself on how much permission and allowance you want to give these agents. That's up to you. Do your own research. Not without risk, but I do it and it's worked great for me so far.
20:04 And if you wanted to fill out contact forms, that's even better because you don't have to keep clicking allow. It will do those in bulk without your intervention. So, I just told it to focus on doing that. Tell you what, right now, guys, the first dollar in any business is the best dollar you will ever earn in the world. Took me under an hour. Replet supports this channel.
20:22 I support Replet. If you sign up with my link in the description and upgrade to Core, we're both going to get 10 bucks in credits. So, that'd be cool. Um, you're going to get all the prompts and that exact contractor text in the free doc down there, too. So, go start something. And if you got a weird way you're making money, I want you on the show. So go to tkos.com and we might see you next time on the Kerner