Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
May 13, 2018 16:30
October 26, 2020 10:15
March 9, 2020 22:22
October 6, 2020 12:06
October 24, 2020 17:57
November 29, 2017 17:04
November 18, 2015 13:44


What is AutoMan?

AutoMan is the first fully automatic crowdprogramming system. With AutoMan, you declaratively define human functions and use them just as you would ordinary functions. Focus on your application logic instead of MTurk code.

AutoMan is currently available as a library for Scala.


  def which_one() = radio (
    budget = 5.00,
    text = "Which one of these does not belong?",
    options = (
      choice('oscar, "Oscar the Grouch", ""),
      choice('kermit, "Kermit the Frog", ""),
      choice('spongebob, "Spongebob Squarepants", ""),
      choice('cookiemonster, "Cookie Monster", ""),
      choice('thecount, "The Count", "")

This function produces an MTurk task that looks like this:

A "radio button" question with 5 options, including images.

The function can be called like any other function in Scala:


Notice in the above declaration and function call, there was no need to specify task wages, the number of workers, how to handle network errors or other system failures, or how to determine whether answers are good. AutoMan automatically handles pricing, quality control, and task management.

Learn More

To get started, see our documentation.


This material is based on work supported by National Science Foundation Grant Nos. CCF-1144520 and CCF-0953754 and DARPA Award N10AP2026. Microsoft Research also generously supported research and development by funding experiments on Mechanical Turk.