## Inspiration

We met at the event - on the spot. We are a diverse team, from different parts of the world and different ages, with up to 7 years of difference! We believe that there is an important evolution towards using data technology to make investment decisions & data applications to move to designing new financial products and services we have not even considered yet.

## What it does

Trendy analyzes over 300,000+ projects from Indiegogo, a crowd-funding website, for the last year. Trendy monitors and evaluates on average 20+ data points per company. Hence, we focus on 6 main variables and illustrate the use case based on statistical models. In order to keep the most user-friendly interface where we could still get as many info as possible, we have decided to create a chatbot on which the investor interacts with our platform.
The user may see graphs, trends analysis, and adjust his preferabilities accordingly.

## Challenges we ran into

We have had a lot of trouble setting up the cloud to host everything. We also have had a lot of struggles in order to build a bot, due to many restrictions Facebook has set. The challenges kept us apart from innovating more on our product.

## Accomplishments that we're proud of

We are very proud to have a very acute data analysis and a great interface. Our results are logical and we seem to have one of the best interfaces.

## What we learned

We learned a lot about cloud hosting, data management, and chatbot setup. More concretely, we have built ourselves a great platform to facilitate our financial wealth plan!

## What's next for Trendy

We foresee adding a couple of predictive analytics concepts to our trend hacking platform, like random forests, Kelly criterion, and a couple of others. Moreover, we envisage empowering our database and analysis' accuracy by implementing some Machine Learning models.
# stockbro.ai

🏆 Winner of the Best Newbie Hack at McHacks 10. 🎉

Project built for McHacks 10
by Thabnir, clarariachi, and Rain1618

## Inspiration

Money. Stonks. We like them.

Originally inspired by [a research paper](https://doi.org/10.1038/srep01684) which found that the search volume of certain words associated with the economy (e.g. debt) could be indicative of the general direction of the stock market and predict future stock movements.
We wanted to extend this idea and see if we could find other keywords that may be indicative of the future of the stock market.
As data can be sometimes tedious to understand, we also built a bot that tells the user in no uncertain terms whether of not there is a correlation between the keyword and the stock (and occasionally *questions* the thought process behind the user's selection).

## What it does

stockbro.ai attempts to predict the stock market by finding obscure correlations between a stock's prices and Google Trends over time by calculating the Pearson correlation coefficient. Spoiler: it doesn't work. It knows it doesn't work. Whether stockbro.ai cares enough to tell you that it doesn't know what's going on or simply dons a cool professional guise as it shepherds you to financial ruin is up to chance.

## How we built it

We made a Flask app and used html + Bokeh to plot graphs showing correlations between a Google search's popularity over time and the associated stock's price. A variety of data science libraries like pandas along with yfinance and pytrends were used to retrieve and process the necessary data from Yahoo Finance and Google Trends respectively.

## Challenges we ran into

We first made our chatbot using Cohere but had to redo it by training it with OpenAI to be able to implement it into the project with a more expansive training set. The dataset used to train the robot had to be manually created on the spot as there are no preexisting dataset that quite fit our criteria of condescending, sarcastic and cynically humorous. Lastly, for our time-series prediction model, we were unable to obtain enough data to extract the features necessary to implement a proper Multi layer perceptron (MLP) algorithm and thus didn't feel comfortable using a model that would potentially generate innacurate information. Instead, we used an Exponential Moving Average (EMA) to help filter out the noise and daily fluctuations to obtain the long term trends. Moving averages have been traditionally used to analyze stock prices over en extended period of time and the EMA provides the added advantage of placing more weight on recent values. For any graph with a Pearson correlation above 0.5, we found that the EMA was reasonably reliable in predicting the general direction using our test data.

## Accomplishments that we're proud of

We're proud of being able to make a working project in under 24 hours by learning as we go, especially as none of us had extensive previous experience with any of the tools we used. We also found the robot very funny (unsurprising, given it was trained on insults *we* wrote).

## What we learned

We had to read up on and implement a variety of data science concepts in order to process large amounts of data and create interactive visualizations of said data. Additionally, we learned how to use Flask, pandas, pytrends, yfinance, bokeh, NLP, basic HTML... and trained a little bot to say bad things! Most importantly, we learned that Stackoverflow takes you far in life.

## What's next for Stock Bro AI

I'll let *it* tell you what's next: it won't stop making its "predictions"! More seriously, we will work on implementing a proper machine learning model (perhaps an MLP Classifier) as inspired by the literature and see if it is able to predict the up and downturns of the stock market more closely. If the urge strikes, we could also improve upon the aesthetics of the website.

## References

Preis, T., Moat, H. & Stanley, H. Quantifying Trading Behavior in Financial Markets Using Google Trends. Sci Rep 3, 1684 (2013). [DOI Link](https://doi.org/10.1038/srep01684)
## Inspiration

Companies lack insight into their users, audiences, and marketing funnel.

This is an issue I've run into on many separate occasions. Specifically,

* while doing cold marketing outbound, need better insight onto key variables of successful outreach
* while writing a blog, I have no idea who reads it
* while triaging inbound, which users do I prioritize

Given a list of user emails, Cognito scrapes the internet finding public information about users and the companies they work at. With this corpus of unstructured data, Cognito allows you to extract any relevant piece of information across users. An unordered collection of text and images becomes structured data relevant to you.

## A Few Example Use Cases

* Startups going to market need to identify where their power users are and their defining attributes. We allow them to ask questions about their users, helping them define their niche and better focus outbound marketing.
* SaaS platforms such as Modal have trouble with abuse. They want to ensure people joining are not going to abuse it. We provide more data points to make better judgments such as taking into account how senior of a developer a user is and the types of companies they used to work at.
* VCs such as YC have emails from a bunch of prospective founders and highly talented individuals. Cognito would allow them to ask key questions such as what companies are people flocking to work at and who are the highest potential people in my network.
* Content creators such as authors on Substack looking to monetize their work have a much more compelling case when coming to advertisers with a good grasp on who their audience is.

## What it does

Given a list of user emails, we crawl the web, gather a corpus of relevant text data, and allow companies/creators/influencers/marketers to ask any question about their users/audience.

We store these data points and allow for advanced querying in natural language.

[video demo](https://www.loom.com/share/1c13be37e0f8419c81aa731c7b3085f0)

## How we built it

we orchestrated 3 ML models across 7 different tasks in 30 hours

* search results person info extraction
* custom field generation from scraped data
* company website details extraction
* facial recognition for age and gender
* NoSQL query generation from natural language
* crunchbase company summary extraction
* email extraction

This culminated in a full-stack web app with batch processing via async pubsub messaging. Deployed on GCP using Cloud Run, Cloud Functions, Cloud Storage, PubSub, Programmable Search, and Cloud Build.

## What we learned

* how to be really creative about scraping
* batch processing paradigms
* prompt engineering techniques

## What's next for Cognito

1. predictive modeling and classification using scraped data points
2. scrape more data
3. more advanced queries
4. proactive alerts

[video demo](https://www.loom.com/share/1c13be37e0f8419c81aa731c7b3085f0)