You're viewing an email archive of The Hustle newsletter. Join free to receive the 5-minute newsletter keeping 2M+ innovators in the loop.

🤖 Santa’s bot problem, explained

{date(‘MMMM dd, yyyy’,time(“now”))}
The Hustle

Holy cannoli, it’s here. We’re giving away $7,000+ in prizes to 10 readers. Here’s how it works:

  • When you share The Hustle using your unique referral link, you get entered into a raffle to win.
  • The more you share, the better chance you have (1 referral = 1 ticket).
  • On December 10th, we’ll randomly select 10 winners.

The prizes? You’ll find them (and your referral link) at the bottom of this email. May the odds be in your favor.

Today’s rundown:

  • Santa’s new nemesis: Grinch bots, explained.
  • Baht-coin? Thailand is betting on crypto to spur tourism.
  • Macy’s experiment: Inside the department store’s ad network.
  • Around the web: Mapping mushroom networks, GIF galleries, and more wild internet things.

Let’s do it.

The Big Idea
Christmas bot

Will bots ruin Christmas?

If Jingle All the Way were made today, it might not be Arnold vs. Sinbad, but dads vs. Grinch bots.

“Grinch bots” mop up all the hottest toys on the market before human customers can get them.

The demand drives up the resale price, allowing scalpers to make a pretty penny off desperate shoppers on 3rd-party sites like eBay.

For instance, in 2017, Fingerlings — cute monkey toys — retailed for $14.99, but were snapped up and resold for up to $1k, per NPR.

How do Grinch bots work?

Bots are frequently used on in-demand commodities including trendy sneakers and the PS5.

The bots scrape retail websites for a particular item, then zip through checkout faster than any human. Some can even get around CAPTCHAs.

In 2016, the Better Online Ticket Sales Act — AKA the BOTS Act — outlawed using bots for ticket scalping. Earlier this year, the federal government announced settlements with 3 alleged violators totaling ~$3.7m.

But what about the toys?

Earlier this week, lawmakers introduced the Stopping Grinch Bots Act, which would expand on the 2016 BOTS Act and extend to ecommerce, banning bots from bypassing digital retailers’ security measures.

The bill isn’t new. Lawmakers previously proposed it in November 2018 and 2019, but it died in Congress both times.

Chuck Bell, advocacy programs director for Consumer Reports, told The Hustle it’s not uncommon for consumer protection legislation to move slowly due to power disparities between industry trade groups and consumer organizations.

“If other interest groups are indifferent or opposed, it often takes us longer to get our bills over the finish line,” he said.

The bill could also be perceived as a seasonal issue…

… causing interest to fade in the new year.

But with media reports shining a light on year-round bot woes (e.g., trying to get Nvidia’s new video card or a Nintendo Switch), Bell hopes there’ll be a push for action.

Bots don’t even enjoy playing Animal Crossing!

Share on Facebook Share on Twitter Send as email to a friend View on our website
SNIPPETS

Razor consolidation: Edgewell, the maker of Schick razors, acquired women’s razor brand Billie for $310m. #ecommerce-retail

Smartphones + EVs: Apple isn’t the only phone maker with auto aspirations. Xiaomi, the Chinese phone maker, announced it would start producing 300k EVs per year starting in 2024. #clean-energy

Dirty data: UK regulators warned Clearview AI of a potential ~$23m fine, and told the company to stop processing data in the region. #privacy

Islands, a Web3 startup aiming to help creators build NFT communities, raised $3.5m. #fintech-crypto

Robot leader: Amazon released RoboRunner, an IoT service on AWS that helps startups build tools to power fleets of robots. #big-tech

Baht-coin
decline of air travel

Zachary Crockett / The Hustle

Thailand is betting on crypto to spur tourism

For Thailand, tourism accounted for 20%+ of pre-pandemic annual GDP. In 2019, the country drew ~40m travelers who collectively generated $60B+ in revenue.

But through the first 10 months of 2021, Thailand saw just 106k tourists, and it’s lost out on $80B in revenue throughout the pandemic so far.

So after more than a year without minimal visitors, it makes sense the country’s getting creative trying to recoup some of that cash.

To do that, Thailand is betting on crypto.

The country wants to make more money, but that’s hard to do in a world with fewer travelers. So instead, it’s shifting its focus to high-spending tourists.

And who better to fit the bill for wealthy beach-loving nomads than crypto-millionaires, of which there are now 100k+?

What’s the plan?

Thailand’s Tourism Authority is now working with the SEC, the Bank of Thailand, and the country’s largest crypto exchange to lay the groundwork for a local crypto-tourism ecosystem.

“If they can use their currencies here without having to exchange it, or be faced with government taxes, then it would create convenience for them,” tourism chief Yuthasak Supasorn has said.

Yuthasak also noted that Thailand can achieve these goals better by getting crypto holders like Russell Crowe to visit.

You know the saying. “If you build it get Russell Crowe, they will come.”

Share on Facebook Share on Twitter Send as email to a friend View on our website
Podcast

Why you need to ignore your limitations

This episode has many hits of motivation.

The boys discuss investing in your health, how intensity helps you win, why 21-year-old Shaan was sleeping on a sushi chef’s couch, and the genius marketing campaign behind “Diamonds are forever.”

Episode highlights:

Listen for your morning lift.

Watch My First Million →
Podcast

Why you need to ignore your limitations

This episode has many hits of motivation.

The boys discuss investing in your health, how intensity helps you win, why 21-year-old Shaan was sleeping on a sushi chef’s couch, and the genius marketing campaign behind “Diamonds are forever.”

Episode highlights:

Listen for your morning lift.

Watch My First Million →
Ads Are Everywhere
Macy's billboard

Macy’s solution for the retail apocalypse? Selling ads.

Modest Proposal, a must-follow on Twitter, once tweeted, “On a long enough timeline, everyone sells ads.”

Macy’s is proving his point.

After narrowly escaping bankruptcy in 2020 with a $4.5B loan, and shuttering 45 stores in 2021, the department store behemoth reported its ad network is pulling in “tens of millions of dollars.”

So what exactly is Macy’s selling?

Macy’s Media Network gives brands the ability to target its customers with a combination of physical and digital ad campaigns, including:

  • Ads on the Macy’s website and app
  • Ads across social media and email
  • In-store video ads across 25 screens in select locations

So far, the company counts brands like Harry’s, Estée Lauder, and Ralph Lauren as customers, and already has some serious fans.

Melissa Burdick, a 10-year Amazon vet who now heads up Pacvue, an enterprise ad platform, called it a “must-buy” for her fashion clients.

Macy’s isn’t the only retailer experimenting with ads

Others include Walmart, Target, CVS, Lowe’s, and Albertsons.

Macy’s says its biggest differentiator from retail competitors is its ability to tailor campaigns for customers based on performance.

An even better differentiator? The ability to buy space on its Herald Square Jumbotron:

Source: Yuki Iwamura / Getty Images

Share on Facebook Share on Twitter Send as email to a friend View on our website
AROUND THE WEB

🚍 On this day: In 1955, Rosa Parks was arrested after she refused to give up her seat on the bus to a white man, leading the NAACP to organize a boycott of the bus system in Montgomery, Alabama.

📆 Useful: It’s the holiday season. But is it Christmas? Is it a Jewish holiday?

🍄 That’s interesting: The Society for the Protection of Underground Networks (SPUN) is mapping the world’s multi-trillion-mile underground fungi network. This is the 1st time conservationists have worked to map an ecosystem below ground.

🤝 How to: A company may seem welcoming and inclusive in the interview process, but how do you know for sure? Fast Company has some tips.

🚪 Cure boredom: Take a stroll through this gallery of 99.9k+ GIFs. Click on the doors to enter new galleries.

🐧 Aww: And now, penguins popping bubbles.

Meme of the day
bots meme

(Source: Memedroid)

How did you like today’s email?

Get the 5-minute roundup you’ll actually read in your inbox​

Business and tech news in 5 minutes or less​

Psst

How'd Bezos build a billion dollar empire?

In 1994, Jeff Bezos discovered a shocking stat: Internet usage grew 2,300% per year.

Data shows where markets are headed.

And that’s why we built Trends — to show you up-and-coming market opportunities about to explode. Interested?

[class^="wpforms-"]
[class^="wpforms-"]
[email-submission-form button-text="Join Free" include-trends-opt-in="true" success-url="https://thehustle.co/signup" default-source="thehustleco" default-medium="home-exit-popup" default-campaign="home-page" form-id="exit-popup-general" optinmonster-conversion="true" redirect-after-signup="https://thehustle.co/thank-you-hub/"]
<script type="text/javascript"> var onloadCallback = function() { grecaptcha.render('verify-your-humanity', { 'sitekey' : '6LdddrcZAAAAALyttpvOqiwQGwq5BNhgDz4tMQGE' }); }; function getCookieValue(a) { var b = document.cookie.match('(^|[^;]+)\\s*' + a + '\\s*=\\s*([^;]+)'); return b ? atob(decodeURIComponent(b.pop())) : ''; } function getCookie(name) { var cookieArr = document.cookie.split(";"); for(var i = 0; i < cookieArr.length; i++) { var cookiePair = cookieArr[i].split("="); if(name == cookiePair[0].trim()) { return decodeURIComponent(cookiePair[1]); } } return null; } function setHiddenFieldValue(wrappingDiv, searchParams, className, utmName, cookieName, defaultValue) { var el = wrappingDiv.getElementsByClassName(className)[0]; var existingVal = el.getAttribute('value'); if (utmName == 'ref') { var newVal = searchParams.get(utmName) || getCookie(cookieName); } else { var newVal = searchParams.get(utmName) || getCookieValue(cookieName); } if ((existingVal == null || existingVal == '' || existingVal == defaultValue) && (newVal != null && newVal != '')) { el.setAttribute('value', newVal); } } function setHiddenFieldValueFromUtm( wrappingDiv, searchParams, className, utmName, defaultValue ) { var el = wrappingDiv.getElementsByClassName(className)[0]; if (el != null) { var existingVal = el.getAttribute("value"); var newVal = searchParams.get(utmName); if (newVal != null && newVal != "") { el.setAttribute("value", newVal); } } } function initForm() { var wrappingDivs = document.getElementsByClassName('email-submission'); Array.prototype.forEach.call(wrappingDivs,wrappingDiv => { var sp = new URLSearchParams(window.location.search); setHiddenFieldValue(wrappingDiv, sp, 'funnel-source', 'utm_source', 'funnel_source', 'thehustleco'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-campaign', 'utm_campaign', 'funnel_campaign', 'home-page'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-medium', 'utm_medium', 'funnel_medium', 'home-exit-popup'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-referral', 'ref', 'funnel_referral', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-a', 'a', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-c', 'c', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-o', 'o', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-oc', 'oc', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-e', 'e', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-f', 'f', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-r', 'r', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-t', 't', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s1', 's1', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s2', 's2', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s3', 's3', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s4', 's4', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s5', 's5', ''); var error_message = getCookieValue('validate-email-message'); if (error_message && error_message.trim() != '') { var error = wrappingDiv.getElementsByClassName('funnel-error')[0]; var prev_email = getCookieValue('funnel_email'); error_message = prev_email + " is not valid. Please try again"; error.innerHTML = error_message; error.style = ''; } }); if (false) { initCaptchaFormV2(); } } function initCaptchaFormV2() { var v3RecaptchaResponseEl = document.getElementById('recaptcha-response-v3'); v3RecaptchaResponseEl.parentNode.removeChild(v3RecaptchaResponseEl); var wrappingDiv = document.getElementById('email-submission'); var subForm = wrappingDiv.getElementsByClassName('email-submission')[0]; var captchaVersion = document.createElement('input'); captchaVersion.class = 'g-recaptcha hidden-input'; captchaVersion.type = 'hidden'; captchaVersion.name = 'g-recaptcha-response-v2'; captchaVersion.value = 'true'; subForm.appendChild(captchaVersion); var captchaEl = document.createElement('div'); captchaEl.id = 'verify-your-humanity'; subForm.prepend(captchaEl); var captchaApiScriptEl = document.createElement('script'); captchaApiScriptEl.src = 'https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit'; captchaApiScriptEl.async = true; captchaApiScriptEl.defer = true; document.head.appendChild(captchaApiScriptEl); } function appendCheckboxes_email_submission() { var wrappingDiv = document.getElementById('email-submission'); var optInDivs = wrappingDiv.querySelectorAll('.trends-opt-in'); optInDivs.forEach(el => { el.style.display = null; if (el.getElementsByClassName('trends-opt-in-checkbox').length < 1) { var checkbox = document.createElement('input'); checkbox.setAttribute('id', 'trends_opt_in_email_submission'); checkbox.setAttribute('class', 'trends-opt-in-checkbox'); checkbox.setAttribute('type', 'checkbox'); checkbox.setAttribute('name', 'trends_opt_in'); var label = document.createElement('label'); label.setAttribute('for', 'trends_opt_in_email_submission'); label.setAttribute('class', 'trends-opt-in-text'); label.textContent = "Yes, I'd like to receive additional emails on hot business opportunities from Trends, by the Hustle"; el.appendChild(checkbox); el.appendChild(label); checkbox.click(); } }) } window.addEventListener('DOMContentLoaded', (event) => { initForm(); if (true) { appendCheckboxes_email_submission(); } }); </script> <div class="email-signup" id=email-submission> <div class="funnel-error" style="display:none;"></div> <form class="email-submission " id="exit-popup-general" action="https://cms.thehustle.co/api/v1/contacts/wordpress_create" method="post" autocomplete="email"> <div class="email-form-wrap"> <input class="funnel-source hidden-input" type="hidden" name="source" value="thehustleco"> <input class="funnel-campaign hidden-input" type="hidden" name="campaign" value="home-page"> <input class="funnel-medium hidden-input" type="hidden" name="medium" value="home-exit-popup"> <input class="funnel-form-id hidden-input" type="hidden" name="form-id" value="exit-popup-general"> <input class="funnel-referral hidden-input" type="hidden" name="referral_code"> <input class="funnel-fail-url hidden-input" type="hidden" name="fail_url" value=""> <input class="funnel-a hidden-input" type="hidden" name="a" value=""> <input class="funnel-c hidden-input" type="hidden" name="c" value=""> <input class="funnel-o hidden-input" type="hidden" name="o" value=""> <input class="funnel-oc hidden-input" type="hidden" name="oc" value=""> <input class="funnel-e hidden-input" type="hidden" name="e" value=""> <input class="funnel-f hidden-input" type="hidden" name="f" value=""> <input class="funnel-r hidden-input" type="hidden" name="r" value=""> <input class="funnel-t hidden-input" type="hidden" name="t" value=""> <input class="funnel-s1 hidden-input" type="hidden" name="s1" value=""> <input class="funnel-s2 hidden-input" type="hidden" name="s2" value=""> <input class="funnel-s3 hidden-input" type="hidden" name="s3" value=""> <input class="funnel-s4 hidden-input" type="hidden" name="s4" value=""> <input class="funnel-s5 hidden-input" type="hidden" name="s5" value=""> <input class="funnel-success-url hidden-input" type="hidden" name="success_url" value="https://thehustle.co/signup?redirect_after=https%3A%2F%2Fthehustle.co%2Fthank-you-hub%2F"> <input id="recaptcha-response-v3" class="g-recaptcha hidden-input" type="hidden" name="g-recaptcha-response" value=""> <div class="signup-icon" style="display:none;"> <svg width="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6Zm-2 0-8 5-8-5h16Zm0 12H4V8l8 5 8-5v10Z" fill="#848B92"></path></svg> </div> <input class="signup-email" type="email" name="email" placeholder="Your email address" required autocomplete="email"> <input class="email-submit om-trigger-conversion" type="submit" value="Join Free"> </div> <div class="validate-mistake-emails-message" style="display:none;"></div> <div class="trends-opt-in" style="display:none;"></div> <div submit-success> <template type="amp-mustache"> <p class="c-message c-message--success">Thank you for subscribing.</p> </template> </div> <div submit-error> <template type="amp-mustache"> <p class="c-message c-message--failed">Your submission failed. Please try again!</p> </template> </div> </form> </div>