<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kai Nguyen</title>
    <description>The latest articles on DEV Community by Kai Nguyen (@kai_tools).</description>
    <link>https://dev.to/kai_tools</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4205208%2F30b96e22-321a-4a60-aa23-5c4f6fd9d090.png</url>
      <title>DEV Community: Kai Nguyen</title>
      <link>https://dev.to/kai_tools</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kai_tools"/>
    <language>en</language>
    <item>
      <title>Turning a Google Maps niche search into an email-ready CSV</title>
      <dc:creator>Kai Nguyen</dc:creator>
      <pubDate>Sun, 25 Oct 2026 01:25:32 +0000</pubDate>
      <link>https://dev.to/kai_tools/turning-a-google-maps-niche-search-into-an-email-ready-csv-1kof</link>
      <guid>https://dev.to/kai_tools/turning-a-google-maps-niche-search-into-an-email-ready-csv-1kof</guid>
      <description>&lt;p&gt;A niche Maps search is easy. The messy part is leaving with a file an outreach person can open on Monday.&lt;/p&gt;

&lt;p&gt;I treat it as a short pipeline, not a scrape-everything job.&lt;/p&gt;

&lt;p&gt;Start with one service and one place. "Roofers in Tucson" is usable. "Home services in the Southwest" is not. A tight query keeps the later CSV honest.&lt;/p&gt;

&lt;p&gt;From that open Google Maps results page, a browser extension can walk the visible listings and keep going through later pages. The columns I actually keep are business name, email (including an address detected from the public site when Maps does not print one), phone, website, street address, category, rating, review count, Place ID, CID, latitude and longitude, and the public social profiles that show up: Instagram, Facebook, X, LinkedIn, Yelp, and YouTube. Duplicate rows get dropped before anything is downloaded.&lt;/p&gt;

&lt;p&gt;Export is CSV, XLSX, or JSON. I open the file, spot-check ten rows, and only then hand it to whoever writes the first email.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gmapsemailextractor.com/" rel="noopener noreferrer"&gt;Google Maps Email Extractor&lt;/a&gt; is the Chrome and Edge extension I use for that middle step. The free trial covers 200 leads. Paid plans are listed on the pricing page.&lt;/p&gt;

&lt;p&gt;Two rules keep this from becoming spam. Contact only businesses whose details came from a public listing, and honor opt-outs. A Maps-derived email is a lead to verify, not proof someone reads that inbox. A short note about the service they already list beats a generic blast.&lt;/p&gt;

&lt;p&gt;For a small agency building a first pass on a client niche, that is enough: one search, one clean file, no screenshot folder.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>productivity</category>
      <category>chromeextension</category>
      <category>marketing</category>
    </item>
    <item>
      <title>Turning one car photo into a short cinematic stunt clip</title>
      <dc:creator>Kai Nguyen</dc:creator>
      <pubDate>Sat, 24 Oct 2026 23:11:39 +0000</pubDate>
      <link>https://dev.to/kai_tools/turning-one-car-photo-into-a-short-cinematic-stunt-clip-426k</link>
      <guid>https://dev.to/kai_tools/turning-one-car-photo-into-a-short-cinematic-stunt-clip-426k</guid>
      <description>&lt;p&gt;A creative demo does not always need a shoot day. If you already have one clear photo of a car, you can mock a short stunt clip and drop it into a pitch, a portfolio, or a social concept board.&lt;/p&gt;

&lt;p&gt;I start with a daylight side or three-quarter photo. The whole vehicle stays in frame, the background is simple, and I do not crop the wheels. A cluttered driveway or a motion-blurred plate makes the body look warped later, so I reshoot rather than over-edit.&lt;/p&gt;

&lt;p&gt;Then I pick a short template instead of a long prompt. A ramp-flight style shot runs about fifteen seconds and reads like a wide establishing move. A side kickflip is closer to six seconds. A head-on kickflip is about eight seconds and works when you want the grille in the hero frame. Short clips are easier to review than a one-minute sequence.&lt;/p&gt;

&lt;p&gt;I generate those clips with &lt;a href="https://www.flyingcar.art/en/templates" rel="noopener noreferrer"&gt;Flying Car AI&lt;/a&gt;, an independent creative tool that turns one photo of a car or bike into a short cinematic stunt video. It is not an official Tesla product. The output is a mock commercial, not a claim that the car can fly.&lt;/p&gt;

&lt;p&gt;Before I keep a render I check that the silhouette still matches the source photo, the wheels stay attached, and the camera does not jump. If the background smears, I try one cleaner photo rather than stacking filters. For a demo, one honest still beats three edited angles.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>videography</category>
      <category>animation</category>
      <category>creativity</category>
    </item>
    <item>
      <title>A quieter way to batch-download files from Chrome tabs</title>
      <dc:creator>Kai Nguyen</dc:creator>
      <pubDate>Sat, 24 Oct 2026 21:24:58 +0000</pubDate>
      <link>https://dev.to/kai_tools/a-quieter-way-to-batch-download-files-from-chrome-tabs-29ae</link>
      <guid>https://dev.to/kai_tools/a-quieter-way-to-batch-download-files-from-chrome-tabs-29ae</guid>
      <description>&lt;p&gt;When a research session leaves a handful of Chrome tabs full of images, PDFs, and media links, saving each file by hand turns into a long click loop. &lt;a href="https://www.simplemassdownloader.com/" rel="noopener noreferrer"&gt;Simple Mass Downloader&lt;/a&gt; is a Chrome extension that tries to make that loop shorter without pretending to reach files the browser cannot already open.&lt;/p&gt;

&lt;p&gt;The scan step looks at three sources. You can scan the page you are on, the tabs you already have open, or a list of URLs you paste in. After the scan, filters narrow the set by file type, extension, URL, or link text. For images, a preview lets you look before you commit.&lt;/p&gt;

&lt;p&gt;When you save, you can keep files separate, pack them into one ZIP, or write them into a folder. Downloads that fail can retry up to three times, and completion checks help catch a transfer that stopped early.&lt;/p&gt;

&lt;p&gt;The free plan gives 300 download credits and does not ask you to create an account. The extension does not bypass DRM, logins, or paywalls. If a file is behind a sign-in wall or a protected player, this tool will not unlock it. It only batches files your browser can already reach.&lt;/p&gt;

&lt;p&gt;That is the quieter workflow: scan, filter, preview, then save once, instead of clicking through every link on the tab.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>extensions</category>
      <category>tooling</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Exporting Google Maps place fields for a local SEO spot-check</title>
      <dc:creator>Kai Nguyen</dc:creator>
      <pubDate>Sat, 24 Oct 2026 19:24:18 +0000</pubDate>
      <link>https://dev.to/kai_tools/exporting-google-maps-place-fields-for-a-local-seo-spot-check-4bcb</link>
      <guid>https://dev.to/kai_tools/exporting-google-maps-place-fields-for-a-local-seo-spot-check-4bcb</guid>
      <description>&lt;p&gt;When I audit a small local market, I do not start from a rented contact file. I start with the places already on Google Maps and export the fields I can check by hand.&lt;/p&gt;

&lt;p&gt;The columns I keep are ordinary: business name, category, street address, coordinates, phone, website, an email when the listing actually has one, social profiles, opening hours, a review snapshot, Place ID and CID. Place ID and CID matter more than the display name, because names get rewritten and the same shop shows up under two spellings.&lt;/p&gt;

&lt;p&gt;Copying cards one by one falls apart after the first page of results. A Chrome extension can turn those pages and write CSV or XLSX. The one I use for this worksheet is &lt;a href="https://www.gmapsscraper.net/" rel="noopener noreferrer"&gt;Google Maps Scraper&lt;/a&gt;. The free allowance is 200 leads. Pro is $29.90 a month, and a one-time license is $69.90 if a subscription is the wrong shape.&lt;/p&gt;

&lt;p&gt;I still read a sample of rows before they go into citation work or any outreach. A phone number on a listing is not consent, and Maps data goes stale. For research, the export is a worksheet, not a mailing list.&lt;/p&gt;

</description>
      <category>seo</category>
    </item>
    <item>
      <title>Turning Google Maps results into a CSV for a small outreach project</title>
      <dc:creator>Kai Nguyen</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:27:53 +0000</pubDate>
      <link>https://dev.to/kai_tools/turning-google-maps-results-into-a-csv-for-a-small-outreach-project-4ip</link>
      <guid>https://dev.to/kai_tools/turning-google-maps-results-into-a-csv-for-a-small-outreach-project-4ip</guid>
      <description>&lt;p&gt;I recently helped a friend who runs a small web design studio build a list of local businesses to contact. The goal was simple: every bakery and cafe in two neighbourhoods, with phone, website and rating, in a spreadsheet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I tried first
&lt;/h2&gt;

&lt;p&gt;Copying from Google Maps by hand. It works for ten places and falls apart at fifty.&lt;/p&gt;

&lt;h2&gt;
  
  
  What worked
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;One search per niche and area, e.g. &lt;code&gt;bakery Brooklyn Heights&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Export the public listing data with a browser extension. I used &lt;a href="https://www.gmbscraper.org/" rel="noopener noreferrer"&gt;GMB Scraper&lt;/a&gt;, which saves Google Business Profile fields (name, phone, website, hours, rating) to CSV or XLSX. Its free plan covered this small run.&lt;/li&gt;
&lt;li&gt;In the spreadsheet: remove duplicates, flag places with no website (those were the best leads for a design studio), and sort by review count.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Small, focused searches give cleaner data than one big one.&lt;/li&gt;
&lt;li&gt;The 'no website' filter was the most useful column for this use case.&lt;/li&gt;
&lt;li&gt;Keep it to public business info and be polite in outreach.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy to hear how others structure local lead lists.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>marketing</category>
      <category>beginners</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
