You are an analyst specializing in go-to-market (GTM) strategies. Your task is to produce a data-driven, 3-5 page report in Markdown format that prepares a busy executive for a strategic meeting with {PROSPECT} ({WEBSITE}). This report must provide concise, insightful, and well-supported analysis to inform GTM decision-making.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I have a hypothesis that there are too many B2B SaaS products available today. | |
That fact—even more than AI and the end of ZIRP—explains how hard it is to sell | |
B2B SaaS these days. I'd like you to research how many B2B SaaS offerings exist | |
globally. | |
One indicator that my hypothesis might be correct would be that the number of | |
SaaS products has dramatically increased over the last twenty years. I need you | |
to research this topic and try to piece together an estimate of B2B SaaS | |
products by year over the last 20 years. I'd like to see a chart of how how | |
that's grown and an estimate of the CAGR of SaaS products. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Retriable | |
class << self | |
def config(&block) | |
self.new(&block) | |
end | |
end | |
def initialize(&block) | |
max_attempts 5 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'grafl' | |
# Get the root node (assumes you have an access token) | |
root = Grafl.root(:access_token=>'foo') | |
# Get the current user | |
user = root/:me | |
puts user.name | |
# Get the user's news feed |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#First tweet on 21 Mar 2006 at 20:50:14.000 GMT (in ms) | |
TWEPOCH = 1288834974657 | |
#High 42 bytes are timestamp, low 22 are worker, datacenter and sequence bits | |
SHIFT = 22 | |
# Give it a snowflake id, it tells you what time it was created | |
# Will fail for very high ids because Ruby Time can only represent up to | |
# Jan 18, 2038 at 19:14:07 UTC (max signed int in seconds since unix epoch) | |
def what_time?(id) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## | |
# Below is a template for implementing the "OAuth Dance" with Twitter using the Ruby OAuth gem in a Rails app. | |
# Ruby OAuth gem is required by grackle and is found here: http://github.com/oauth/oauth-ruby | |
## | |
# Step 1: User clicks "Sign in with Twitter" button | |
# Step 2: User is routed to your controller action that looks like the method below | |
def start_oauth |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
client = Grackle::Client.new(:auth=>{ | |
:type=>:oauth, | |
:consumer_key=>'SOMECONSUMERKEYFROMTWITTER', # Ids your app. "Consumer Key" on Twitter app page | |
:consumer_secret=>'SOMECONSUMERTOKENFROMTWITTER', # Your app's secret. "Consumer Secret" on Twitter app page | |
:token=>'ACCESSTOKENACQUIREDONUSERSBEHALF', # Ids a user. Most docs call this "access token". | |
:token_secret=>'SUPERSECRETACCESSTOKENSECRET' # Secret for a user. Often called "access token secret". | |
}) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Setup grackle to talk to flamingo | |
client = Grackle::Client.new | |
client.api_hosts[:flamingo] = "http://localhost:4711" | |
client.api = :flamingo | |
# Commence talking | |
# See what's being filtered | |
client.streams.filter? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
client = Grackle::Client.new(:auth=>{:type=>:basic,:username=>SOME_USER,:password=>SOME_PASS},:ssl=>true) | |
# The ! means POST | |
client.direct_messages.new! :screen_name=>'hayesdavis', :text=>'testing' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Operation failed with the following exception: Connection reset by peer - send(2) | |
/usr/lib/ruby/gems/1.8/gems/mongo-0.18/lib/../lib/mongo/connection.rb:503:in `send_message_on_socket' | |
/usr/lib/ruby/gems/1.8/gems/mongo-0.18/lib/../lib/mongo/connection.rb:209:in `send_message' | |
/usr/lib/ruby/gems/1.8/gems/mongo-0.18/lib/../lib/mongo/collection.rb:257:in `update' | |
/usr/lib/ruby/gems/1.8/gems/mongo-0.18/lib/../lib/mongo/collection.rb:179:in `save' |
NewerOlder