Tweets matter. Especially when the subject is stocks or companies, tweets can move market prices by huge percentages. Whether it be the angry complaint by Kylie Jenner about Snapchat's interface, or Elon's unassuming tweet about his admiration for Etsy, stock tweets have the potential to make and break opportunities for companies and investors.
Small time investors (aka me) with limited capital would love to evaluate and discover these opportunities at the right time; to either jump into a rally, or pull out of one. Personally, I am not an active Twitter user. According to a business insider survey, only 23% of surveyed GenZ teens check Twitter notifications source. Moreover, we are always flooded with notifications from other social media and not all tweets talk stocks/products/companies. And so I decided to develop Celebritrade, a phone+sms subscription service that tracks tweets of your celebrities which have a potential to move stocks of a certain company.
What it does
Celebritrade lets you:
Subscribe to your favorite celebrities, market predictors, or stock gurus on Twitter.
Opt-in for call+text or just text notifications when your celebrity's tweets has a potential to affect the market price for a company.
Get latest information on stock prices for the respective companies, trending news articles, and tweet sentiment score, all in one place, guiding you to make a reasonable and rational decision.
Unsubscribe from the service.
How we built it
Celebritrade leverages a number of API's and Services which are - Google's BigQuery and Natural Language APIs, Twitter API, FinancialModellingPrep API, Twilio Programmable Voice API, and MongoDB.
The frontend is a bootstrap site that lets you subscribe your number to celebrities by specifying their twitter @handles. Any changes to an ongoing subscription can be made through the same site.
A POST request is made to the Flask backend hosted on Heroku where the subscription details make an update to our Twitter Streams Listener to include your celebrities. This is done with thread safety in mind as Twitter only allows one active Stream Listener for a developer account.
When a tweet is caught, I run entity analysis on the Tweet to extract words that may refer to a company or stock. These candidate words are now searched against a massive NASDAQ listing through an SQL query on BigQuery. If there are hits, the corresponding ticker strings are returned. Contextual information about the price, and news articles are retrieved from calls to the FinancialModellingPrep API. This data is combined with a sentiment score of the Tweet, again retrieved from Google's Natural Language API, and delivered to the customer using Twilio via the desired notification method.
All data surrounding client information and twitter subscriptions are stored using MongoDB which is the database I am most familiar with.
Challenges we ran into
Frontend was challenging since it is not my forte. Figuring out the text tokenization for the tweet handles was quite time consuming. Another challenge was figuring out the Tweet StreamListener API since I could not instantiate more than one listener. This meant that I needed to have only one listener that would update its params when new subscriptions came in.
Accomplishments that we're proud of
Building a finished and polished full-stack application within 36 hours leveraging a plethora of modern APIs and technologies.
What we learned
This is my first time building a full-stack application. So I learned a lot about client servers, front-end, RESTful APIs, and deployment specifics. Also learned testing on Postman.
What's next for Celebritrade
- Extend to cryptos.
- Expand to listening from other Social Media platforms and become the to-go service for receiving filtered information on stock conversations on the internet.