AutoMan: A Domain-Specific Language for Crowdsourcing Tasks

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:

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, check out our Getting Started guide. See the navbar to the left, or click on the link below.


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.

Last updated