diff --git a/src/applications/conduit/query/PhabricatorConduitLogQuery.php b/src/applications/conduit/query/PhabricatorConduitLogQuery.php
index 0e457dc74c..0dacd9406d 100644
--- a/src/applications/conduit/query/PhabricatorConduitLogQuery.php
+++ b/src/applications/conduit/query/PhabricatorConduitLogQuery.php
@@ -1,69 +1,82 @@
 <?php
 
 final class PhabricatorConduitLogQuery
   extends PhabricatorCursorPagedPolicyAwareQuery {
 
+  private $callerPHIDs;
   private $methods;
   private $methodStatuses;
 
+  public function withCallerPHIDs(array $phids) {
+    $this->callerPHIDs = $phids;
+    return $this;
+  }
+
   public function withMethods(array $methods) {
     $this->methods = $methods;
     return $this;
   }
 
   public function withMethodStatuses(array $statuses) {
     $this->methodStatuses = $statuses;
     return $this;
   }
 
   public function newResultObject() {
     return new PhabricatorConduitMethodCallLog();
   }
 
   protected function loadPage() {
     return $this->loadStandardPage($this->newResultObject());
   }
 
   protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {
     $where = parent::buildWhereClauseParts($conn);
 
+    if ($this->callerPHIDs !== null) {
+      $where[] = qsprintf(
+        $conn,
+        'callerPHID IN (%Ls)',
+        $this->callerPHIDs);
+    }
+
     if ($this->methods !== null) {
       $where[] = qsprintf(
         $conn,
         'method IN (%Ls)',
         $this->methods);
     }
 
     if ($this->methodStatuses !== null) {
       $statuses = array_fuse($this->methodStatuses);
 
       $methods = id(new PhabricatorConduitMethodQuery())
         ->setViewer($this->getViewer())
         ->execute();
 
       $method_names = array();
       foreach ($methods as $method) {
         $status = $method->getMethodStatus();
         if (isset($statuses[$status])) {
           $method_names[] = $method->getAPIMethodName();
         }
       }
 
       if (!$method_names) {
         throw new PhabricatorEmptyQueryException();
       }
 
       $where[] = qsprintf(
         $conn,
         'method IN (%Ls)',
         $method_names);
     }
 
     return $where;
   }
 
   public function getQueryApplicationClass() {
     return 'PhabricatorConduitApplication';
   }
 
 }
diff --git a/src/applications/conduit/query/PhabricatorConduitLogSearchEngine.php b/src/applications/conduit/query/PhabricatorConduitLogSearchEngine.php
index cb261e323e..7f1adf1c1a 100644
--- a/src/applications/conduit/query/PhabricatorConduitLogSearchEngine.php
+++ b/src/applications/conduit/query/PhabricatorConduitLogSearchEngine.php
@@ -1,176 +1,204 @@
 <?php
 
 final class PhabricatorConduitLogSearchEngine
   extends PhabricatorApplicationSearchEngine {
 
   public function getResultTypeDescription() {
     return pht('Conduit Logs');
   }
 
   public function getApplicationClassName() {
     return 'PhabricatorConduitApplication';
   }
 
   public function newQuery() {
     return new PhabricatorConduitLogQuery();
   }
 
   protected function buildQueryFromParameters(array $map) {
     $query = $this->newQuery();
 
+    if ($map['callerPHIDs']) {
+      $query->withCallerPHIDs($map['callerPHIDs']);
+    }
+
     if ($map['methods']) {
       $query->withMethods($map['methods']);
     }
 
     if ($map['statuses']) {
       $query->withMethodStatuses($map['statuses']);
     }
 
     return $query;
   }
 
   protected function buildCustomSearchFields() {
     return array(
+      id(new PhabricatorUsersSearchField())
+        ->setKey('callerPHIDs')
+        ->setLabel(pht('Methods'))
+        ->setAliases(array('caller', 'callers'))
+        ->setDescription(pht('Find calls by specific users.')),
       id(new PhabricatorSearchStringListField())
         ->setKey('methods')
         ->setLabel(pht('Methods'))
         ->setDescription(pht('Find calls to specific methods.')),
       id(new PhabricatorSearchCheckboxesField())
         ->setKey('statuses')
         ->setLabel(pht('Method Status'))
         ->setAliases(array('status'))
+        ->setDescription(
+          pht('Find calls to stable, unstable, or deprecated methods.'))
         ->setOptions(ConduitAPIMethod::getMethodStatusMap()),
     );
   }
 
   protected function getURI($path) {
     return '/conduit/log/'.$path;
   }
 
   protected function getBuiltinQueryNames() {
-    $names = array(
-      'all' => pht('All Logs'),
-      'deprecated' => pht('Deprecated Calls'),
-    );
+    $names = array();
+
+    $viewer = $this->requireViewer();
+    if ($viewer->isLoggedIn()) {
+      $names['viewer'] = pht('My Calls');
+      $names['viewerdeprecated'] = pht('My Deprecated Calls');
+    }
+
+    $names['all'] = pht('All Call Logs');
+    $names['deprecated'] = pht('Deprecated Call Logs');
 
     return $names;
   }
 
   public function buildSavedQueryFromBuiltin($query_key) {
     $query = $this->newSavedQuery();
     $query->setQueryKey($query_key);
 
+    $viewer = $this->requireViewer();
+    $viewer_phid = $viewer->getPHID();
+
+    $deprecated = array(
+      ConduitAPIMethod::METHOD_STATUS_DEPRECATED,
+    );
+
     switch ($query_key) {
+      case 'viewer':
+        return $query
+          ->setParameter('callerPHIDs', array($viewer_phid));
+      case 'viewerdeprecated':
+        return $query
+          ->setParameter('callerPHIDs', array($viewer_phid))
+          ->setParameter('statuses', $deprecated);
       case 'deprecated':
-        return $query->setParameter(
-          'statuses',
-          array(
-            ConduitAPIMethod::METHOD_STATUS_DEPRECATED,
-          ));
+        return $query
+          ->setParameter('statuses', $deprecated);
       case 'all':
         return $query;
     }
 
     return parent::buildSavedQueryFromBuiltin($query_key);
   }
 
   protected function renderResultList(
     array $logs,
     PhabricatorSavedQuery $query,
     array $handles) {
     assert_instances_of($logs, 'PhabricatorConduitMethodCallLog');
     $viewer = $this->requireViewer();
 
     $methods = id(new PhabricatorConduitMethodQuery())
       ->setViewer($viewer)
       ->execute();
     $methods = mpull($methods, null, 'getAPIMethodName');
 
     Javelin::initBehavior('phabricator-tooltips');
 
     $viewer = $this->requireViewer();
     $rows = array();
     foreach ($logs as $log) {
       $caller_phid = $log->getCallerPHID();
 
       if ($caller_phid) {
         $caller = $viewer->renderHandle($caller_phid);
       } else {
         $caller = null;
       }
 
       $method = idx($methods, $log->getMethod());
       if ($method) {
         $method_status = $method->getMethodStatus();
       } else {
         $method_status = null;
       }
 
       switch ($method_status) {
         case ConduitAPIMethod::METHOD_STATUS_STABLE:
           $status = null;
           break;
         case ConduitAPIMethod::METHOD_STATUS_UNSTABLE:
           $status = id(new PHUIIconView())
             ->setIconFont('fa-exclamation-triangle yellow')
             ->addSigil('has-tooltip')
             ->setMetadata(
               array(
                 'tip' => pht('Unstable'),
               ));
           break;
         case ConduitAPIMethod::METHOD_STATUS_DEPRECATED:
           $status = id(new PHUIIconView())
             ->setIconFont('fa-exclamation-triangle red')
             ->addSigil('has-tooltip')
             ->setMetadata(
               array(
                 'tip' => pht('Deprecated'),
               ));
           break;
         default:
           $status = id(new PHUIIconView())
             ->setIconFont('fa-question-circle')
             ->addSigil('has-tooltip')
             ->setMetadata(
               array(
                 'tip' => pht('Unknown ("%s")', $status),
               ));
           break;
       }
 
       $rows[] = array(
         $status,
         $log->getMethod(),
         $caller,
         $log->getError(),
         pht('%s us', new PhutilNumber($log->getDuration())),
         phabricator_datetime($log->getDateCreated(), $viewer),
       );
     }
 
     $table = id(new AphrontTableView($rows))
       ->setHeaders(
         array(
           null,
           pht('Method'),
           pht('Caller'),
           pht('Error'),
           pht('Duration'),
           pht('Date'),
         ))
       ->setColumnClasses(
         array(
           null,
           'pri',
           null,
           'wide right',
           null,
           null,
         ));
 
     return id(new PhabricatorApplicationSearchResultView())
       ->setTable($table)
       ->setNoDataString(pht('No matching calls in log.'));
   }
 }