Shift Ctrl F

🔎 Search the information available on a webpage using natural language instead of an exact string match.
Alternatives To Shift Ctrl F
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Shift Ctrl F887
3 years ago3apache-2.0JavaScript
🔎 Search the information available on a webpage using natural language instead of an exact string match.
2 years ago29gpl-3.0JavaScript
A Chrome Extension that contains useful tools
Python Email Crawler213
5 years ago19Python
Search on Google, and crawls for emails related to the result
Cosr Back119
7 years ago42apache-2.0HTML
Backend of Common Search. Analyses webpages and sends them to the index.
Website Launch Checklist55
4 years ago
Things to double-check before launching a website
Place Search Service45
4 years agomitJava
:mag: Developed a webpage that allows users to search for places using the Google Places API and display the results on the same page below the form. Once the user clicks on a button to search for place details, the webpage will display several tabs which contain an info table, photos of the place, map and route search form and reviews respectively. The webpage also supports adding places to and removing places from favorites list and posting place info to Twitter.
Alfredworkflow Calibre Search38
5 months ago2mitPython
Search books in Calibre
Easy History22
7 years agomitJavaScript
Easy History v1.9.1
2 years ago13Python
3 years ago18iscJavaScript
Small webpage for finding the odd unicode char code.
Alternatives To Shift Ctrl F
Select To Compare

Alternative Project Comparisons

Shift-Ctrl-F: Semantic Search for the Browser



Chrome Web Store Link

Search the information available on a webpage using natural language instead of an exact string match. Uses MobileBERT fine-tuned on SQuAD via TensorFlowJS to search for answers and mark relevant elements on the web page.

Shift-Ctrl-F Demo

This extension is an experiment. Deep learning models like BERT are powerful but may return unpredictable and/or biased results that are tough to interpret. Please apply best judgement when analyzing search results.


Ctrl-F uses exact string-matching to find information within a webpage. String match is inherently a proxy heuristic for the true content -- in most cases it works very well, but in some cases it can be a bad proxy.

In our example above we search, aiming to understand the difference between test mode and live mode. With string matching, you might search through some relevant phrases "live mode", "test mode", and/or "difference" and scan through results. With semantic search, you can directly phrase your question "What is the difference between live mode and test mode?". We see that the model returns a relevant result, even though the page does not contain the term "difference".

How It Works

Every time a user executes a search:

  1. The content script collects all <p>, <ul>, and <ol> elements on the page and extracts text from each.
  2. The background script executes the question-answering model on every element, using the query as the question and the element's text as the context.
  3. If a match is returned by the model, it is highlighted within the page along with the confidence score returned by the model.


There are three main components that interact via Message Passing to orchestrate the extension:

  1. Popup (popup.js): React application that renders the search bar, controls searching and iterating through the results.
  2. Content Script (content.js): Runs in the context of the current tab, responsible for reading from and manipulating the DOM.
  3. Background (background.js): Background script that loads and executes the TensorFlowJS model on question-context pairs.

src/js/message_types.js contains the messages used to interact between these three components.


Make sure you have these dependencies installed.

  1. Node
  2. Yarn
  3. Prettier

Then run:

make develop

The unpacked extension will be placed inside of build/. See Google Chrome Extension developer documentation to load the unpacked extension into your Chrome browser in development mode.


make build

A zipped extension file ready for upload will be placed inside of dist/.

Popular Webpage Projects
Popular Search Projects
Popular Text Processing Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Chrome Extension
Questions And Answers
Natural Language