Mechanical Turk gives your website the instant power of 200,000 people who are ready to accomplish any digital task to help grow your website. This tutorial will walk you through your first Mechanical Turk Project.
I recently read the (gigantic) book by Ray Dalio named Principles. If you are not familiar with him, Ray Dalio is an investor, hedge fund manager and founder of Bridgewater Associates… oh yeah… he’s also worth 18 BILLION dollars! Not bad Ray!
The book is a collection of principles about life and work that he has figured out from running his business for over 40 years. The book covers – among a lot of other topics – thinking of your business as a machine. The way too quick synopsis is: Machines have inputs and outputs and your aim should be to design a business machine that mixes technology and people to accomplish your goals.
If you’ve been following along with our new niche affiliate site OutsmartCarbs.com you know that one of the central components of the site is our curated collection of low carb food items. Each low carb item displays the nutrition information, photo and and a short description. Here is an example of Low Carb Everything Bagels that shows those individual pieces.
In order to make all of that happen, we created custom post types and custom fields which allows us to enter in all of that information into the WordPress backend. That custom interface looks like this:
But how does all of that information get there? Well, the simplified process of adding new products looks like this:
Up until this point it has been us MANUALLY doing all of those steps which takes a lot of our time. That is not much of a machine. Ray Dalio would NOT be proud of us.
The Sticking Point
We’ve already added over 170+ low carb products to the site, and in that process we’ve found that the piece of data that takes the most time is… writing the product description. Copying and pasting the numerical nutrition information (like Sodium, Calories, Carbs, etc…) doesn’t take that long however we are not just copying and pasting the product descriptions we find on Amazon. For each product we are writing a unique, funny and interesting product description to help rank in Google for that product search term. Simply copying and pasting the existing product description would not give us any benefit in Google.
That is the bottleneck that needs to be fixed.
While we would like to automate the entire process (and we will), the product descriptions are the main things that slows us down, so we want to focus on fixing that first.
But we had a question that needed an answer… how do we get someone else to write a unique product description that magically appears in the correct spot on our website… and do it all for less than a dollar?
Enter Amazon Mechanical Turk
Most people think of Amazon as a company that can get a product delivered to your house within two hours (if you live in a major city) and that’s true… but they are so much more. They own tons of different businesses from Zappos.com, Audible.com and even Whole Foods. Visit the Amazon homepage and scroll all the way down to see the complete list of businesses. One of the businesses they own (which isn’t even listed) is called Mechanical Turk.
I know it’s a strange name but it’s actually a reference to a mechanical chess playing machine created by Baron Wolfgang von Kempelen in 1769. From the description on the Amazon MTurk (MTurk is short for Mechanical Turk) site, it describes itself like this:
Mechanical Turk gives your business access to a scalable, on-demand workforce. Mechanical Turk lets you get results faster by having multiple Workers complete individual Human Intelligence Tasks (HITs) in parallel. The global Worker community on Mechanical Turk lets you get work done at a lower cost than was previously possible.
Translating that empty corporate babble to the way humans really talk:
Mechanical Turk is a service where you can have lots of people complete small digital tasks for you. This can include data entry, tagging photos, verifying a location, categorizing things, taking surveys, audio translation… AAAANNNNNDDDD… writing content!
While Amazon does not release official numbers, according to this report release in January 2018 states that between 100,000 and 200,000 people are currently signed up to complete tasks on Mechanical Turk. That’s a lot of people who are ready to help you build your business machine!
There are many ways to tie into the Mechanical Turk system, however the easiest way is to use a secret code.
Using a secret code with Mechanical Turk
First a word of caution: integrating Mechanical Turk with your WordPress powered site to collect workers output and generate a unique secret code for each submitted item is not a simple thing to do! However if you are serious about building a business machine, it is worth it and I’ll show you how to do it!
If you remember from above, we are not trying to automate the entire process just yet… right now we are only trying to automate the most time consuming part, which is writing unique product descriptions. With that understanding the process that we need to create for the Mechanical Turk workers is basically this:
Screen 1: Mechanical Turk workers need to visit a page which will display the available products that need descriptions. They should be able to click on any product name to read more about the product and there should be a button that would allow them to temporarily hold that product so someone else doesn’t get it first. Remember, they are potentially competing with 200,000 other people that might take the task first so they have to be able to temporarily hold the item BUT not totally remove it from the list incase they don’t complete the task.
Screen 2: Once they pick the product they want to write about they should see a text area that they can type in their text. while they are on this screen no other Mechanical turk workers should be able to write a description for this product.
Screen 3: Lastly, once they submit their product description they need to see a secret code that they will copy and paste into the Mechanical Turk screen which serves as verification that they completed the task and ensures they get paid. This secret code should be different for each product description so the worker can be linked to the description they wrote. You’ll see why this is really important in a bit.
Of course these screens need to tie into the existing database application already
Now that we have a plan of action for our machine now we need to actually build it all out.
Building the Mechanical Turk screens
Out plan is to build a total of three screens in order for a Mechanical Turk worker to pick a product, write product description and then get their secret code.
SCREEN 1 – List of available products
In a previous tutorial we already gave you an overview as to how we are using Toolset to display the low carb products on OutsmartCarbs.com so using that same system we need to create a View that filters all the products and only displays products that DO NOT currently have a description written.
That screen looks like this:
As you can tell, there is a little introduction at the top and then the table of products that do NOT currently have descriptions written. Each product name can be clicked on and will launch the product page on Amazon in a new tab (opening in a new tabs is important so the worker does not lose this screen).
Then there is that orange button that when clicked on directs the worker to the next screen. However that button then changes so other workers that come to this screen AFTER him/her are not able to click that button. That button changes to this (and is not clickable):
Once the worker submits their description, that product will no longer in the above list.
So that’s the first screen. Let’s move onto…
SCREEN 2 – Product description box
This is a simple screen that has a link to the product (incase they need to get more information), a character counter (see that number under the big box below) and it also has a built in security system in case someone tries some funny business. Here’s what the second screen looks like:
I’m purposely not showing you the URL to this page because it contains a URL variable for this particular product. Each product has its own unique ID and if the ID of the product HAS a description the large box does NOT display. This simple security measure stops someone from manipulating the URL to display other products and (potentially) cause a mess. So, unless someone can guess the product ID of another product that does not have a description… they will not be able to do any damage.
So once the MT (short for Mechanical Turk) worker has written their product description, they click the save button and are redirected the third – and final – screen.
SCREEN 3 – Secret Code
This page is even simpler than the previous one. It basically contains the thing… a secret code that looks like this:
That secret code is dynamically generated using the URL variable of this product (like the last screen) with some characters around it. Basically, in the backend the code is generated like this:
AMT + [PRODUCT ID FROM URL VARIABLE] + 84
In the above example the URL variable (product id) would be 952.
That way, each secret code is different but contains the same three letters at the beginning and two numbers after it with the product ID in the middle. NOTE: The actual live version of this code is slightly different than above so we don’t give away all our secrets!
Now that all the screens have been built out and tested now it’s time to create a Mechanical Turk project.
Create a Mechanical Turk Project
Once your website has been setup (and tested) to accept MT Worker output and your MTurk Requester account has been created, now it’s time to send MT Workers to your Screen 1 page. Here’s how:
The first step is to create a new Project. The first section contains the general properties about the project. Things like project description overview, pricing, timing, worker qualifications, etc… goes here. In our case we want the Worker to visit our screen 1 (from above) click on the product they want to write about, write a product description, submit it and the workers have about 30 minutes to do it. Currently we have 10 products (we are just trying to prove the concept but in the future there will be more) that need descriptions written and for each description we will pay .75 cents. We want them all done in an hour and we will auto-approve the work in an hour.
NOTE: That last part is where we went wrong… we’ll talk about that in a bit.
Here’s what all of that looks like in the MT interface:
Towards the bottom of that screen is a very interesting field… additional qualifications. You’ll see that I selected US High School Graduate… however there are tons of other options in there like Pinterest Account Holder, Vacation Frequency – Every Quarter, Current Residence – Rented, Born 1992 – 1999, Exercise – Not at all… and a lot more. This gives you the ability to really focus on the type of Worker you need. If you want to see the complete list of qualifications, go HERE.
After you enter in that type of information, next up is the Design Layout. This is what the MT Worker will see in their control panel and it contains the important details about your project. Here is what ours looked like:
NOTE: We blacked out the URL for this post
This completely describes the project to the MT Worker, provides a link to see the list of products that need description (this was Screen 1) and has a box for them to enter in the secret code (found on Screen 3).
With that completed, now it’s time to PUBLISH the project, find your account and manage the results. Here we go!
Managing your Mechanical Turk Project
When you publish your project MT Workers will begin clicking to your website and completing the task. During this process there is a status bar of completed tasks… but…. we were too excited and forgot to take a screenshot of that!
We sat back and watched as our first screen changes from HOLD for 10 Min. to – Currently Held – to the list getting shorter and shorter as more descriptions were written and submitted.
We actually did this twice… the first time only one description was written… we specified a high school graduate requirement, the second time we did not have any requirements.
It was an awesome to watch and looked kinda like this:
While all of our products did not get descriptions written for them, many did. Here is a sample of some of the good and the terrible product descriptions.
Here are a few screenshots of good descriptions:
The above description was the only one written with the qualifications of a US high school degree… the rest (good and terrible) had no qualifications associated with them.
This is a pretty good description. I can tell this person put some thought into this.
I can tell the Worker took the time to read about the company. Those facts about moving the bakery are accurate.
Here are a few screenshots of descriptions from lazy people trying to scam the system:
This worker simply copied a (ALL CAPS) review from the product page
This worked did not write their own unique description, they simply copied the product description from the manufacturer.
This one is AMAZING! This Worker copied the description of the Mechanical Turk Project! WOW! Either he/she is really dumb or knows that some companies will not even check the work and just auto approve the work. #notthistimebuddy
Here’s the good news about this last bunch… because the secret code has the product ID within it, we were able to tie together the MT Worker with the product description they wrote. This allowed us to REJECT (not pay) for some of the descriptions.
Once the project is complete (in our case the time ran out), we were presented with this screen:
NOTE 1: We blacked out some of the sensitive information
NOTE 2: The last column should have been named “Secret Code” instead of “Survey Code”… this was our mistake.
This is a recap of the workers that submitted work and see that last column? That is the ‘secret code’ that the worker saw when they submitted their product description. Using that we were able to know which worker wrote what description and REJECT the terrible ones.
Mechanical Turk Lessons Learned
After going through this process we learned a few lessons, got burned by a few dishonest people, but ended up with a business machine that would (hopefully) make Ray Dalio proud. Next time we run a MT Project we’ll be doing it slightly differently… here are a few lessons we learned along the way:
Pay for requirements: The quality of the one product description we received from the worker with the requirement of a US High School Degree (which added .50 to each description) was really good. The quality of the product descriptions we received when there was no requirements were not very good. I recommend paying a little bit more for quality, this will make your life a lot easier.
Always review for cheating: With each description (no matter if it was good or bad) we searched on Google and through the Amazon product comments to see if the Worker simply copied and pasted from somewhere. We found that a few of them did.
Be careful with the “Auto-approve and pay Workers” option: When setting up your MT Project one of the options allows you to specify a timeframe where the system will just automatically approve the work and pay the worker. We did this with a 1 hour timeframe and unfortunately a few of the “cheaters” were automatically paid before we realized what they did. Next time, we’ll probably put at least one day which will give us plenty of time to review everything.
Mechanical Turk is powerful: While this entire post is about just one aspect of adding low carb products to OutsmartCarbs (the product descriptions) we will soon be able to integrate MT into the other pieces and automate most of the process.
We know this is a long tutorial post BUT this is a very powerful approach to running your own website. Let us know how/if you use Mechanical Turk for your website!