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

📝 How AI is catching cheaters

The Hustle

The Felicity Ace, a cargo ship carrying 2.5k cars, including Porsches, Bentleys, and Volkswagens, caught on fire in the Atlantic. It’s uncertain whether the ship will be seaworthy after the fire is extinguished, which means there may soon be a very expensive used-car lot at the bottom of the ocean.

In today’s email:

  • Remote exams: How software is curbing cheating.
  • Gas station ATMs: There are 225k of them — who owns them?
  • Digits: Travel nurses, dungeons, and more wild numbers.
  • Around the web: Intentional spam, simpler phones, tracking poachers, and more internet finds.

🎧 On the go? Listen to today’s <10 minute podcast to hear about Vaseline’s comeback, the IRS’s insane call volume, cheating techniques, and more.

The big idea
kids looking at a computer

Exam software is booming, but is it ethical?

College kids have been cheating on exams since the beginning of time.

But remote learning has created a new challenge for educators: How do you keep a student from cheating when they’re taking the test from their bedroom?

Luckily for academic institutions, this challenge has led to a burgeoning new industry — remote exam proctoring software, per The Markup.

The key player in the space…

… is Honorlock, which grew revenue 1k% YoY between 2020 and 2021, leading to a $25m fundraise last year.

At the time of the raise, Honorlock counted 300+ institutions as customers and 1m+ students using its software.

How does remote proctoring work?

As you can imagine, it’s not as simple as asking your class to clear the formulas in their TI-83.

Honorlock’s software uses AI to:

  • Scan students’ faces to make sure they’re the ones actually taking the tests
  • Detect the use of cellphones and other devices during the exam window
  • Track activity on fake websites that provide answers to test questions

In other words, it’s all about student surveillance — and the last bullet has landed Honorlock in hot water.

These fake websites, which the company calls “honeypots,” exist solely to catch students cheating. Critics say it’s a classic case of entrapment and argue that the software creates an environment that assumes students cheat — which could backfire by normalizing cheating.

So what’s the answer?

One possible solution is switching to different testing methods.

Sarah Eaton, an associate professor at University of Calgary who studies academic integrity, suggests oral and open book tests that require answers you can’t find on Google.

Until then, we encourage any test-takers out there to study up, lest you end up caught in a honeypot.

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

Hot commodity: People are snapping up collectibles of this year’s Olympics and Paralympics mascots — a panda and a Chinese lantern. Here’s how they’re made. #ecommerce-retail

Big in Texas: Texas was 1st in renewable energy in the US last year with 7.3k+ megawatts of new wind, solar, and energy installation projects. #clean-energy

White Castle is bringing on 100 robot workers known as Flippy 2 to flip burgers in ~1/3 of its locations. #emerging-tech

T-R-A-C-K: The New York Times recently acquired Wordle. And now, the popular word game comes with ad tracking. #privacy

Gone phishing: Hackers made off with an estimated $1.7m in NFTs from 32 OpenSea users in just 3 hours. #fintech-crypto

Snapchat’s new safety feature lets users share their real-time location with family and friends for up to 8 hours. #big-tech

Take it to the bank

How do gas station ATMs work?

They are everywhere.

Nonbank ATMs — run by independent operators — that sit inside gas stations and convenience stores.

Per The Wall Street Journal, there are ~225k of these ATMs across America. In 2020, they collectively processed $90B.

These ATM operators…

… depend on major bank chains to deliver the cash that fills the machines (think armored cars). The operators also need 2 bank accounts:

  • The 1st account holds cash for ATMs and receives deposits from a user’s bank when they withdraw money
  • The 2nd account receives the fees that a user pays to use the ATMs

Banks are souring on the relationship

Why? Per WSJ, regulators are concerned that independent ATM operators are “a higher fraud and money-laundering risk.”

The operators say they are serving underbanked populations, especially in areas without traditional bank branches (regulators do acknowledge this fact).

To make it worth their time, banks are raising fees on servicing the ATMs. If you hate that “convenience fee,” well, now you know where some of it comes from.

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

8 masterful marketing budget templates

We’re more than halfway through Q1 already…

Did you swear you were gonna speed things up this year, too?

It’s not too late. We’ve got some new shortcuts for sharing. Here are 8 templates to help your team track spending like great spending trackers.

Download all 8 business budgeting templates:

  • Product marketing
  • Paid advertising
  • Content
  • Public relations
  • Branding and creative
  • Website and event design

HubSpot templates offer a clean way to iron out trifling processes. Use these to start managing your budget like the best.

Bodacious budgeting →
By the numbers

Digits: Bookstores, dungeons, and Italian jewels

1) There are now ~32k jobs for travel nurses, up from ~8k in early 2020, with the average weekly pay standing at $3,334 per week. In just 6 months, some travel nurses earn the entire median pay that non-travel nurses do in a year.

2) Hasbro’s Wizards of the Coast unit, which oversees Dungeons & Dragons and Magic: The Gathering, accounted for ~46% of the company’s $1.31B in annual earnings.

3) Bookstore sales were up 28% in 2021 after a major dip in 2020, hitting $9.03B, up from $6.5B. That’s much better than the 19.3% rebound seen across retail generally.

4) A former Italian royal family is suing the government over ~$342m in crown jewels they claim are theirs. Interestingly, none of the royal family members have ever seen the jewels in person.

5) Fancis Ford Coppola, the 82-year-old Godfather director, will spend up to $120m of his own fortune on Megalopolis, which no Hollywood studio will fund. The film’s cast is rumored to include Zendaya, Cate Blanchett, Oscar Isaac, Jon Voight, Forest Whitaker, and more.

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

📕 On this day: In 1848, Karl Marx published The Communist Manifesto in London.

🗑️ Haha: Straight 2 Spam helps you compose emails that will automatically go to someone’s spam folder. According to the site, it’s for when you don’t want some “clown” at your party, but your mom is making you invite them.

📱 Useful: Chatsie is an app that simplifies the interface on Android phones, handy for minimalists and users who aren’t particularly tech-savvy.

🐘 That’s interesting: Forensic experts are analyzing DNA found on seized elephant tusks to track elephant poachers.

🐧 Aww: And now, some silly penguins.

Meme of the day
studying meme

Scary accurate. (Source:

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​


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?

[email-submission-form button-text="Join Free" include-trends-opt-in="true" success-url="" default-source="thehustleco" default-medium="home-exit-popup" default-campaign="home-page" form-id="exit-popup-general" optinmonster-conversion="true"]
<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'); wrappingDivs.forEach(wrappingDiv => { var sp = new URLSearchParams(; 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; = ''; } }); 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'; = 'g-recaptcha-response-v2'; captchaVersion.value = 'true'; subForm.appendChild(captchaVersion); var captchaEl = document.createElement('div'); = 'verify-your-humanity'; subForm.prepend(captchaEl); var captchaApiScriptEl = document.createElement('script'); captchaApiScriptEl.src = ''; 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 => { = 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);; } }) } 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="" 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=""> <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=""><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>