diff --git a/app/index.jade b/app/index.jade
index 643079b39..6d23fbbce 100644
--- a/app/index.jade
+++ b/app/index.jade
@@ -7,6 +7,15 @@ html
     meta(http-equiv="X-UA-Compatible", content="IE=edge, chrome=1")
     meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no")
     meta(name="fragment", content="!")
+    script.
+      (function(d) {
+        var config = {
+          kitId: 'gig7sjk',
+          scriptTimeout: 3000,
+          async: true
+        },
+        h=d.documentElement,t=setTimeout(function(){h.className=h.className.replace(/\bwf-loading\b/g,"")+" wf-inactive";},config.scriptTimeout),tk=d.createElement("script"),f=false,s=d.getElementsByTagName("script")[0],a;h.className+=" wf-loading";tk.src='https://use.typekit.net/'+config.kitId+'.js';tk.async=true;tk.onload=tk.onreadystatechange=function(){a=this.readyState;if(f||a&&a!="complete"&&a!="loaded")return;f=true;clearTimeout(t);try{Typekit.load(config)}catch(e){}};s.parentNode.insertBefore(tk,s)
+      })(document);
 
     include ../assets/scripts/google.analytics.jade
 
diff --git a/app/index.js b/app/index.js
index 5db926381..88d8a918b 100644
--- a/app/index.js
+++ b/app/index.js
@@ -1,3 +1,5 @@
+import 'babel-polyfill'
+
 require('angular')
 require('auth0-js')
 require('auth0-angular')
diff --git a/app/member-search/member-search.directive.js b/app/member-search/member-search.directive.js
new file mode 100644
index 000000000..87bd97539
--- /dev/null
+++ b/app/member-search/member-search.directive.js
@@ -0,0 +1,15 @@
+import angular from 'angular'
+
+(function() {
+  'use strict'
+
+  angular.module('tc.search').directive('memberSearch', memberSearch)
+
+  var memberSearchPage = require('topcoder-app-r/src/indexTest').default
+
+  memberSearch.$inject = ['reactDirective']
+
+  function memberSearch(reactDirective) {
+    return reactDirective(memberSearchPage)
+  }
+})()
diff --git a/app/member-search/member-search.jade b/app/member-search/member-search.jade
new file mode 100644
index 000000000..93e38cd63
--- /dev/null
+++ b/app/member-search/member-search.jade
@@ -0,0 +1,2 @@
+div#member-search-wrapper
+  member-search
diff --git a/app/member-search/member-search.module.js b/app/member-search/member-search.module.js
new file mode 100644
index 000000000..691c6d553
--- /dev/null
+++ b/app/member-search/member-search.module.js
@@ -0,0 +1,7 @@
+import angular from 'angular'
+
+(function() {
+  'use strict'
+
+  angular.module('tc.search', [])
+})()
diff --git a/app/member-search/member-search.routes.js b/app/member-search/member-search.routes.js
new file mode 100644
index 000000000..575129836
--- /dev/null
+++ b/app/member-search/member-search.routes.js
@@ -0,0 +1,27 @@
+import angular from 'angular'
+
+(function() {
+  'use strict'
+
+  angular.module('tc.search').config([
+    '$stateProvider',
+    routes
+  ])
+
+  function routes($stateProvider) {
+    var states = {
+      'memberSearch': {
+        url: '/search/members/',
+        parent: 'root',
+        template: require('./member-search')(),
+        data: {
+          title: 'Member Search'
+        }
+      }
+    }
+    for (var name in states) {
+      var state = states[name]
+      $stateProvider.state(name, state)
+    }
+  }
+})()
diff --git a/app/topcoder.module.js b/app/topcoder.module.js
index 60679de07..d3a6f5c8b 100644
--- a/app/topcoder.module.js
+++ b/app/topcoder.module.js
@@ -17,6 +17,7 @@ import angular from 'angular'
     'tc.skill-picker',
     'tc.sitemap',
     'tc.community',
+    'tc.search',
     'ui.router',
     'blocks.logger',
     'blocks.exception',
diff --git a/assets/css/topcoder.scss b/assets/css/topcoder.scss
index e9888cd7d..03adb7bd5 100644
--- a/assets/css/topcoder.scss
+++ b/assets/css/topcoder.scss
@@ -541,3 +541,15 @@ $switch-inactive-color: $gray;
   right: $switch-handle-offset + $switch-handle-size -1;
   top: 0;
 }
+
+// DELETE when moving member search back
+// Also delete TypeKit fonts from index.html
+// Also delete redux-logger and babel-polyfill from npm modules
+// also delete babel-polyfill from index.js
+#member-search-wrapper {
+  font-family: Roboto !important;
+
+  .member-search-view {
+    background-color: transparent;
+  }
+}
diff --git a/package.json b/package.json
index c849e1fb6..fec09d3bb 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
   "devDependencies": {
     "angular-mocks": "^1.4.9",
     "appirio-tech-webpack-config": "^0.2.0",
-    "babel-loader": "^6.2.1",
+    "babel-polyfill": "^6.7.2",
     "bardjs": "^0.1.8",
     "bower": "^1.6.8",
     "chai": "^3.5.0",
@@ -32,6 +32,7 @@
     "mocha": "^2.4.5",
     "phantomjs-polyfill": "0.0.1",
     "phantomjs-prebuilt": "^2.1.3",
+    "redux-logger": "^2.6.1",
     "sinon": "^1.17.3",
     "sinon-chai": "^2.8.0",
     "webpack": "1.x"
@@ -67,6 +68,7 @@
     "react-select": "1.0.0-beta8",
     "restangular": "^1.5.2",
     "tc-angular-ellipsis": "^0.1.6",
+    "topcoder-app-r": "0.0.2",
     "xml2js": "^0.4.16",
     "zepto": "^1.0.1"
   }
diff --git a/webpack.tests.js b/webpack.tests.js
index cf3e8f6c2..0b888203c 100644
--- a/webpack.tests.js
+++ b/webpack.tests.js
@@ -30,6 +30,7 @@ require('xml2js')
 
 require('appirio-tech-ng-ui-components')
 require('appirio-tech-ng-iso-constants')
+require('topcoder-app-r/src/indexTest')
 
 // Require Angular modules first
 requireContextFiles(require.context('./app/', true, /^.*\.module\.js$/igm))