Using Apps to control store's search behavior

Hi all!

I’m trying to build an app that improves user’s search.

I understand there are two ways:

  1. If the store does not have a search function, I can ask them to add a custom theme block. This is easy as I have full control
  2. The second scenario is more complicated: if the store has a search bar installed, the best behavior is to directly manipulate the search bar behavior. I saw there are couple apps that can do this (it changes the drop down menu of the search directly). But I cannot find a straightforward way to do it from the documentation. Some promising leads I can find:
    1. manipulating the behavior of predictive search. But this seems to be limited to themes and i couldnt find a way for an app to directly change this file
    2. Add a block and add it to the template/search.json file and basically override the search extension. Similarly, I couldnt find a way to inject it to the search bar.

Am I missing anything? Thanks for the help!