diff --git a/opentech/static_src/src/app/src/components/Listing/index.js b/opentech/static_src/src/app/src/components/Listing/index.js
index 6da541874683c12f5ae4e034e7e74fe34cf64b3e..02e7453ef3d269a0087437c19b334a1b7a3d1da9 100644
--- a/opentech/static_src/src/app/src/components/Listing/index.js
+++ b/opentech/static_src/src/app/src/components/Listing/index.js
@@ -1,6 +1,7 @@
 import React from 'react';
 import PropTypes from 'prop-types';
 
+import ListingDropdown from '@components/ListingDropdown';
 import LoadingPanel from '@components/LoadingPanel';
 
 import './style.scss';
@@ -43,7 +44,7 @@ export default class Listing extends React.Component {
         }
 
         return (
-            <ul className="listing__list">
+            <ul className="listing__list" ref={this.myRef}>
                 {items.map(v => renderItem(v))}
             </ul>
         );
@@ -64,7 +65,14 @@ export default class Listing extends React.Component {
     render() {
         return (
             <div className="listing">
-                <div className="listing__header"></div>
+                <div className="listing__header">
+                    <ListingDropdown
+                        list={this.myRef.current}
+                        error={this.props.isLoading}
+                        items={this.state.orderedItems}
+                        isLoading={this.props.isLoading}
+                    />
+                </div>
                 {this.renderListItems()}
             </div>
         );
diff --git a/opentech/static_src/src/app/src/components/ListingDropdown/index.js b/opentech/static_src/src/app/src/components/ListingDropdown/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..464c65f574d5169b3a73a87724b3ca2dd23bc904
--- /dev/null
+++ b/opentech/static_src/src/app/src/components/ListingDropdown/index.js
@@ -0,0 +1,47 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+export default class ListingDropdown extends React.Component {
+    static propTypes = {
+        list: PropTypes.object,
+        items: PropTypes.array,
+        error: PropTypes.string,
+        isLoading: PropTypes.bool,
+    }
+
+    handleChange(e) {
+        const groupHeaderPosition = document.getElementById(e.target.value).offsetTop - 75;
+
+        this.props.list.scrollTo({
+            top: groupHeaderPosition
+        })
+    }
+
+    renderListDropdown() {
+        const { isLoading, error, items } = this.props;
+
+        if (isLoading || error) {
+            return;
+        }
+
+        return (
+            <form className="form form__select">
+                <select onChange={(e) => this.handleChange(e)}>
+                    {items.map(group => {
+                        return (
+                            <option key={`listing-heading-${group.name}`} value={group.name}>{group.name}</option>
+                        )
+                    })}
+                </select>
+            </form>
+        )
+    }
+
+    render() {
+        return (
+            <>
+                {this.renderListDropdown()}
+            </>
+        )
+    }
+}