clearbit-leadscore 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,81 @@
1
+ module Clearbit
2
+ module LeadScore
3
+ module Score extend self
4
+ attr_accessor :defaults
5
+
6
+ self.defaults = Mash.new({
7
+ twitter_followers_weight: 0.05,
8
+ angellist_followers_weight: 0.05,
9
+ klout_score_weight: 0.05,
10
+ company_twitter_followers_weight: 0.05,
11
+ company_alexa_rank_weight: 0.000005,
12
+ company_google_rank_weight: 0.05,
13
+ company_employees_weight: 0.5,
14
+ company_raised_weight: 0.0000005,
15
+ company_score: 10,
16
+ total_score: 1415
17
+ })
18
+
19
+ def calculate(result, options = {})
20
+ options = defaults.merge(options)
21
+
22
+ score = 0.0
23
+
24
+ return score unless result
25
+
26
+ if person = result.person
27
+ if person.avatar
28
+ score += 5
29
+ end
30
+
31
+ if person.twitter.followers
32
+ score += person.twitter.followers * options.twitter_followers_weight
33
+ end
34
+
35
+ if person.angellist.followers
36
+ score += person.angellist.followers * options.angellist_followers_weight
37
+ end
38
+
39
+ if person.klout.score
40
+ score += person.klout.score * options.klout_score_weight
41
+ end
42
+ end
43
+
44
+ if company = result.company
45
+ unless company.personal
46
+ score += options.company_score
47
+ end
48
+
49
+ if company.raised
50
+ score += company.raised *
51
+ options.company_raised_weight
52
+ end
53
+
54
+ if company.employees
55
+ score += company.employees *
56
+ options.company_employees_weight
57
+ end
58
+
59
+ if company.alexa.globalRank
60
+ score += 1 / (company.alexa.globalRank *
61
+ options.company_alexa_rank_weight)
62
+ end
63
+
64
+ if company.google.rank && company.google.rank > 0
65
+ score += 1 / (company.google.rank *
66
+ options.company_google_rank_weight)
67
+ end
68
+
69
+ if company.twitter.followers
70
+ score += company.twitter.followers *
71
+ options.company_twitter_followers_weight
72
+ end
73
+ end
74
+
75
+ score /= options.total_score
76
+
77
+ [score.round(1), 1.0].min
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,5 @@
1
+ module Clearbit
2
+ module LeadScore
3
+ VERSION = "0.0.3"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: clearbit-leadscore
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Alex MacCaw
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: clearbit
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.0.5
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.0.5
55
+ - !ruby/object:Gem::Dependency
56
+ name: awesome_print
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: thread
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description:
84
+ email:
85
+ - alex@clearbit.co
86
+ executables:
87
+ - clearbit-leadscore
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".gitignore"
92
+ - Gemfile
93
+ - LICENSE.txt
94
+ - README.md
95
+ - Rakefile
96
+ - bin/clearbit-leadscore
97
+ - leadscore.gemspec
98
+ - lib/clearbit-leadscore.rb
99
+ - lib/clearbit/lead_score.rb
100
+ - lib/clearbit/lead_score/async.rb
101
+ - lib/clearbit/lead_score/email_providers.rb
102
+ - lib/clearbit/lead_score/score.rb
103
+ - lib/clearbit/lead_score/version.rb
104
+ homepage: https://clearbit.co
105
+ licenses:
106
+ - MIT
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.2.2
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: Score email addresses
128
+ test_files: []