Anyone familiar with google adwords is familiar with keyword research. Keyword research is the attempt to learn a potential user/customer's searching habits so that you can attract customers and drive traffic to your site. Through keyword research, you are aiming to learn the intent of a user's internet (okay, google, who are we kidding) search as well as learn more about their searching habits.
If you're a plumber for example, trying to market your business online, you might want to learn what people google when they have a plumbing need or emergency and market yourself according.
Google adwords users are helped in this via google's many powerful tools For example, you can give google adwords a list of companies you are competing with and learn what phrases they've purchased--what keywords will bring up their company in a google search.
Currently, however, you have to do a lot of legwork to utilize this adwords feature. You yourself have to google phrases that you are interested in buying and then collect the names of companies that come up in the results. Write them down, then feed them to google adwords to learn what keywords those companies have actually purchased.
Enter, Bei Machine. Bei Machine was first developed at the request of Beini Huang, a google adwords user and freelance animator. Bei Machine is a simple rails app that allows you to run a google search and return a list of companies. These results are saved in 'my results' and you can hold on to them for future integration with google adwords.
How does it work?
Bei Machine has two model classes, a scraper that works with Nokogiri and the CGI gem to run a google search and scrape the top results, and a class responsible for instantiating the results as objects and saving them into the database.
We also have a Welcome Controller, responsible for the root page which welcomes you to the site and connects you to the search form, and a Bee Controller, responsible for receiving the search request, creating results, saving results and rending them on the results page.
The router handles the routes for the welcome#index and the RESTful routes for the Bee class:
1.#index which lists the saved search results
2.#new which renders the search form
3.#create action which receives the search request
4.#update (not currently utilized)
5.#destroy (not currently utilized)
6.#show, which shows one result
What else can it do?
Currently, this app is limited to searching google and returning a simple list (with links!) of your results. However, there is broader functionality in development.
Soon, users will be render their search results in a table that displays the result, the keywords they used to run that search and any comments they might want to add to that result. A user can keep notes on different companies they are researching and delete a result at any time. This data will be exportable and easy to integrate with google adwords.
Check it out on github and stay tuned!