diff --git a/src/assets/Interactive.css b/src/assets/Interactive.css
index ecb5a25954c340a193ed0a79387a81852d91d7c8..3925cf425c36dc6b120f994df9047c576421b640 100644
--- a/src/assets/Interactive.css
+++ b/src/assets/Interactive.css
@@ -29,7 +29,7 @@
     position: relative;
 }
 
-.ida input[type=text] {
+.workflow-search {
     height: 5rem;
     width: 60%;
     border: 2px solid black;
@@ -37,17 +37,17 @@
     margin-bottom:30px;
 }
 
-.ida input[type=text]:focus{
+.ida .workflow-search:focus{
     outline: none;
     border-color: blue;
 }
-.ida input[type=text]:focus + .placeholder-text .text, :not(input[value=""]) + .placeholder-text .text{
+.ida .workflow-search:focus + .placeholder-text .text, :not(input[value=""]) + .placeholder-text .text{
     background-color: white;
     font-size: 1.1rem;
     color: black;
     transform: translate(0, -170%);
 }
-.ida input[type=text]:focus + .placeholder-text .text{
+.ida .workflow-search:focus + .placeholder-text .text{
     border-color: blueviolet;
     color: blue;
 }
@@ -72,7 +72,7 @@
     transition: transform 0.15s ease-out, font-size 0.15s ease-out, background-color 0.2s ease-out, color 0.15s ease-out;
 }
 
-.ida input[type=text], .placeholder-text{
+.ida .workflow-search, .placeholder-text{
     font-size: 1.4rem;
     padding: 0 1.2rem;
 
@@ -201,3 +201,43 @@
   width: 60%;
   margin-bottom:80px;	
 }
+
+.advanced-search {
+  border: 1px solid black;
+  padding-bottom: 20px;
+  border-radius: 5px;
+  padding-right:30px;
+  padding-left:30px; 
+
+}
+
+.search-button {
+  float:right;
+  margin-right:20px;
+}
+
+.form {
+    display: table;
+    border-collapse: collapse;
+    padding: 0;
+    margin: 0;
+}
+.advanced-form > li {
+    display: table-row;
+}
+.advanced-form > li > div {
+    display: table-cell;
+    padding-bottom: 5px;
+}
+.advanced-form > li > div:first-child {
+    padding-right: 10px;
+}
+
+.advanced-float-right {
+    float:right;
+}
+
+.advanced-form-div {
+    width:50%;
+    margin-left:200px;
+}
diff --git a/src/components/services/Interactive.js b/src/components/services/Interactive.js
index c391fb9035e8057864b58e16e5d0ef4e1ed7a975..fb2e7f6481aafb03d9e844daffb4222645c494c0 100644
--- a/src/components/services/Interactive.js
+++ b/src/components/services/Interactive.js
@@ -11,10 +11,18 @@ export default  function Interactive() {
   const {idaSystemURL, setIdaSystemURL, workflowURL, setWorkflowURL, batchsystemsURL, setBatchsystemsURL, list_of_workflows, setList_of_workflows, list_of_idaSystems, setList_of_idaSystems} = useContext(IDAContext);
   const {api_host } = useContext(GlobalContext);
   const [searchTerm, setSearchTerm] = React.useState("");
+  const [searchType, setSearchType] = React.useState("");
+  const [searchTypeFilter, setSearchTypeFilter] = React.useState("");
+  const [searchAuthor, setSearchAuthor] = React.useState("");
+  const [searchAuthorFilter, setSearchAuthorFilter] = React.useState("");
+  const [searchPlatform, setSearchPlatform] = React.useState("");
+  const [searchPlatformFilter, setSearchPlatformFilter] = React.useState("");
   const [showFacilities, setShowFacilities] = React.useState(false);
   const [showNext, setShowNext] = React.useState(false);
   const [showSkip, setShowSkip] = React.useState(true);
   const [showBack, setShowBack] = React.useState(false);
+  const [showAdvanced, setShowAdvanced] = React.useState(false);
+  const [advancedClicked, setAdvancedClicked] = React.useState(false);
   const [showMoreButton, setShowMoreButton] = React.useState(true);
   const [showDeploy, setShowDeploy] = React.useState(false);
   const [numberOfitemsShown, setNumberOfitemsShown] = React.useState(3)
@@ -83,15 +91,22 @@ export default  function Interactive() {
 
   };
 
-  const workflow_results = !searchTerm
-        ? list_of_workflows
+  let workflow_results = !searchTerm
+        ?
+          !advancedClicked
+            ? list_of_workflows
+	            : list_of_workflows.filter(workflow =>
+                          ((typeof workflow.keywords === 'string') && workflow.keywords.toLowerCase().includes(searchTypeFilter.toLocaleLowerCase())) &&
+                          ((typeof workflow.runtimePlatform === 'string') && workflow.runtimePlatform.toLowerCase().includes(searchPlatformFilter.toLocaleLowerCase())) &&
+                          ((typeof workflow.author === 'string') && workflow.author.toLowerCase().includes(searchAuthorFilter.toLocaleLowerCase())))
         : list_of_workflows.filter(workflow =>
-            (typeof workflow.name === 'string') && workflow.name.toLowerCase().includes(searchTerm.toLocaleLowerCase()) || 
+            (typeof workflow.name === 'string') && workflow.name.toLowerCase().includes(searchTerm.toLocaleLowerCase()) ||
             (typeof workflow.keywords === 'string') && workflow.keywords.toLowerCase().includes(searchTerm.toLocaleLowerCase()) ||
-            (typeof workflow.author === 'string') && workflow.author.toLowerCase().includes(searchTerm.toLocaleLowerCase()) || 
-            (typeof workflow.runtimePlatform === 'string') && workflow.runtimePlatform.toLowerCase().includes(searchTerm.toLocaleLowerCase()) || 
+            (typeof workflow.author === 'string') && workflow.author.toLowerCase().includes(searchTerm.toLocaleLowerCase()) ||
+            (typeof workflow.runtimePlatform === 'string') && workflow.runtimePlatform.toLowerCase().includes(searchTerm.toLocaleLowerCase()) ||
             (typeof workflow.description === 'string') && workflow.description.toLowerCase().includes(searchTerm.toLocaleLowerCase())
-  );
+         );
+
 
   const facility_results = !searchTerm
         ? list_of_idaSystems
@@ -116,8 +131,66 @@ export default  function Interactive() {
     setSearchTerm("");
     setShowFacilities(true);
     setShowBack(true);
+    setAdvancedClicked(false);
+    setSearchAuthor("");
+    setSearchAuthorFilter("");
+    setSearchPlatform("");
+    setSearchPlatformFilter("");
+    setSearchType("");
+    setSearchTypeFilter("");
   };
 
+  const onClickAdvanced = e => {
+    e.preventDefault();
+    if (showAdvanced) {
+        setShowAdvanced(false);
+    } else {
+        setShowAdvanced(true);
+    }
+    setAdvancedClicked(false);
+    setSearchAuthor("");
+    setSearchAuthorFilter("");
+    setSearchType("");
+    setSearchTypeFilter("");
+    setSearchPlatform("");
+    setSearchPlatformFilter("");
+
+  }
+
+  const onClickAdvancedSearch = e => {
+    e.preventDefault();
+    if (searchType.toLowerCase()!="all") {
+        setSearchTypeFilter(searchType.toLowerCase());
+    }
+
+    if (searchAuthor.toLowerCase()!="") {
+        setSearchAuthorFilter(searchAuthor.toLowerCase());
+    }
+
+    if (searchAuthor.toLowerCase()!="all") {
+        setSearchPlatformFilter(searchPlatform.toLowerCase());
+    }
+
+    setAdvancedClicked(true);
+    setShowAdvanced(false);
+
+  }
+
+  const handleRecordTypeChange = e => {
+    e.preventDefault();
+    setSearchType(e.target.value);
+  }
+
+  const handleRecordAuthorChange = e => {
+    e.preventDefault();
+    setSearchAuthor(e.target.value);
+  }
+
+  const handlePlatformChange = e => {
+    e.preventDefault();
+    setSearchPlatform(e.target.value);
+  }
+
   const onClickBack = e => {
     e.preventDefault();
     setSearchTerm("")
@@ -128,6 +201,13 @@ export default  function Interactive() {
     setShowMoreButton(true);
     setShowSkip(true);
     setWorkflowURL(defaultWorkflow);
+    setAdvancedClicked(false);
+    setSearchAuthor("");
+    setSearchAuthorFilter("");
+    setSearchType("");
+    setSearchTypeFilter("");
+    setSearchPlatform("");
+    setSearchPlatformFilter("");
 
   };
 
@@ -160,12 +240,14 @@ export default  function Interactive() {
       <div class="search-buttons">
 
       <input
+        className="workflow-search"
         type="text"
         placeholder="Search for Workflows"
         value={searchTerm}
         onChange={handleChange}
       />
 
+
       { showSkip ?
       <Button className="skip-button"  onClick={onClickNext}>Skip</Button>
          : null }
@@ -173,10 +255,71 @@ export default  function Interactive() {
       { showNext ?
         <Button className="next-button"  onClick={onClickNext}>Next</Button>
          : null }
+      <br/>
+      <a href="" onClick={onClickAdvanced}>Advanced Search</a>
+      <br/>
+
+      { showAdvanced ?
+
+
+      <div className="advanced-search">
+
+      <Form className="advanced-form">
+
+      <br/>
+
+      <h3>Search By:</h3>
+          <hr/>
+
+          <ul className="advanced-form-ul">
+              <li>
+                  <div className="advanced-form-div"><label>User Interface type:</label>
+                      <select class="form-select advanced-float-right" aria-label="record-type" id="record-type" name="record-type" onChange={handleRecordTypeChange}>
+                          <option value="all">All</option>
+                          <option value="desktop">Desktop Software</option>
+                          <option value="cli">Command Line</option>
+                          <option value="jupyter-notebook">Notebook</option>
+                      </select>
+                  </div>
+              </li>
+              <li>
+                  <div className="advanced-form-div"><label>Author:</label>
+                      <input
+                        type="text"
+                        className="advanced-float-right"
+                        placeholder="Author name"
+                        value={searchAuthor}
+                        onChange={handleRecordAuthorChange}
+                      />
+
+                  </div>
+              </li>
+              <li>
+                  <div className="advanced-form-div"><label>Runtime Platform:</label>
+                      <select class="form-select advanced-float-right" aria-label="record-type" id="record-type" name="record-type" onChange={handlePlatformChange}>
+                          <option value="all">All</option>
+                          <option value="Python">Python</option>
+                          <option value="R">R</option>
+                          <option value="Java">Java</option>
+                      </select>
+                  </div>
+              </li>
+
+          </ul>
+
+      <br/><br/>
+
+      <Button onClick={onClickAdvancedSearch} className="search-button">Search</Button>
+      <br/><br/>
+      </Form>
+      </div>
+
+       : null }
 
       </div>
 
 
+
       <ul class="workflow-ul">
          {workflow_results_sliced.map(item => (
           <li class="workflow-li">