Project

snov

0.0
No release in over 3 years
Low commit activity in last 3 years
Snov client to interact with snov api
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

>= 4.1.0, < 7.0
>= 4.1.0, < 7.0
>= 0.1.0, < 2.0
>= 0.10.0, < 2.0
>= 1.4.0, < 2.0
 Project Readme

CircleCI

Installation

Add this line to your application's Gemfile:

gem 'snov'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install snov

Usage

set SNOV_USER_ID and SNOV_SECRET environment variables

DomainSearch

see https://snov.io/api#DomainSearch2

results = Snov::DomainSearch.new(domain: "octagon.com", type: "personal", limit: 10)
results.last_id
results.each do |result|
  puts result.email
  puts result.first_name
  puts result.last_name
  puts result.position
  puts result.source_page
  puts result.company_name
  puts result.type
  puts result.status
end

GetProfileByEmail

see https://snov.io/api#GetProfileByEmail

  prospect = Snov::GetProfileByEmail.new(email: "gavin.vanrooyen@octagon.com")

  puts prospect.success
  puts prospect.id
  puts prospect.name
  puts prospect.first_name
  puts prospect.last_name
  puts prospect.industry
  puts prospect.country
  puts prospect.locality
  prospect.social.each do |social_info|
    puts social.link
    puts social.type
  end
  prospect.current_jobs.each do |social_info|
    puts social.company_name
    puts social.position
    # etc
  end
  # etc

GetProspectList

see https://snov.io/api#FindProspectbyEmail

  prospects = Snov::GetProspectsByEmail.new(email: "gavin.vanrooyen@octagon.com")
  prospects.each do |prospect|
    puts prospect.id
    puts prospect.name
    puts prospect.first_name
    puts prospect.last_name
    puts prospect.industry
    puts prospect.country
    puts prospect.locality
    prospect.social.each do |social_info|
      puts social.link
      puts social.type
    end
    # etc
  end

GetUserLists

see https://snov.io/api#UserLists

  lists = Snov::GetUserLists.new
  lists.each do |list|
    puts list.id
    puts list.name
    puts list.is_deleted
    puts list.contacts
    puts list.creation_date.date
    puts list.deletion_date.date
  end

GetProspectList

see https://snov.io/api#ViewProspectsInList

  prospects = Snov::GetProspectList.new(list_id: 1, page: 1, per_page: 100)
  prospects.each do |prospect|
    puts prospect.id
    puts prospect.name
    puts prospect.first_name
    puts prospect.last_name
    puts prospect.source
    prospect.emails.each do |email_info|
      puts email_info.email
      puts email_info.is_verified
      puts email_info.job_status
      # etc
    end
  end

GetAllProspectsFromList

convenience wrapper for GetProspectList to get all the prospects on all the pages

see https://snov.io/api#ViewProspectsInList

  prospects = Snov::GetAllProspectsFromList.new(list_id: 1)
  prospects.each do |prospect|
    puts prospect.id
    puts prospect.name
    puts prospect.first_name
    puts prospect.last_name
    puts prospect.source
    prospect.emails.each do |email_info|
      puts email_info.email
      puts email_info.is_verified
      puts email_info.job_status
      # etc
    end
  end

GetEmailsBySocialUrl

convenience wrapper for GetEmailsFromUrl to get a prospect with social url e.g. linkedin profile url

see https://snov.io/api#GetEmailsFromUrl

  prospect = Snov::GetEmailsBySocialUrl.new(url: "https://www.linkedin.com/in/john-doe-123456/").prospect
  
  prospect.data.emails.each do |value|
    puts value.email
    puts value.status
  end

  prospect.data.previous_jobs.each do |value|
    puts value.company_name
    puts value.company_type
    puts value.position
    puts value.country
    puts value.start_date
    puts value.industry
    puts value.size
  end

  prospect.data.current_jobs.each do |value|
    puts value.company_name
    puts value.company_type
    puts value.position
    puts value.country
    puts value.start_date
    puts value.industry
    puts value.size
  end

GetEmailsFromName

convenience wrapper for GetEmailsFromName to get a prospect with name

see https://snov.io/api#EmailFinder

  prospect = Snov::GetEmailsFromName.new(first_name: "gavin", last_name: "vanrooyen", domain: "octagon.com").prospect
  
  prospect.data.emails.each do |value|
    puts value.email
    puts value.email_status
  end

AddNamesToFindEmails

convenience wrapper for AddNamesToFindEmails to add a prospect with name

see https://snov.io/api#AddNamestoFindEmails

  added_name = Snov::AddNamesToFindEmails.new(first_name: "gavin", last_name: "vanrooyen", domain: "octagon.com").add

  puts added_name.sent # true added to snov queue for searching
  puts added_name.success

can setup snov to be able to reuse access tokens

Snov.token_storage = Snov::InMemoryTokenStorage.new
# or
Snov.token_storage = Snov::RedisTokenStorage.new(Redis.new)

Simple example implementation of your own token storage.

class TokenStorage
  def initialize
    @stored_token = nil
  end

  def get
    @stored_token
  end

  def set(token_hash)
    @stored_token = token_hash
  end
end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bin/rspec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/snov.