Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ hunter Public

🐺 Command-line application and golang client library for hunter.io

License

Notifications You must be signed in to change notification settings

picatz/hunter

Repository files navigation

hunter

Command-line application and golang client library for hunter.io.

Download

$ go get github.com/picatz/hunter/...

Update

$ go get -u github.com/picatz/hunter/...

CLI Usage

The command-line application has three major commands search, find, and verify. All three of these commands output JSON. This makes parsing the infromation easy, especially using command-line tools like jq.

$ hunter
Usage:
 hunter [command]
Available Commands:
 account Get information regarding your hunter.io account
 find Generates or retrieves the most likely email address from a domain name, a first name and a last name
 help Help about any command
 search Search all the email addresses corresponding to one website or company
 verify Allows you to verify the deliverability of an email address
Flags:
 -h, --help help for hunter
Use "hunter [command] --help" for more information about a command.
$ hunter verify --email stevejobs@apple.com | jq -r .data.score
30
$ hunter find --company google --full-name "Kelsey Hightower" | jq -r .data.email
khightower@google.com
$ hunter search --domain github.com --department it | jq -r '.data.emails[] | "\(.value) \(.position)"'
jbarnette@github.com Developer
bkeepers@github.com Developer
ben.balter@github.com Developer Product Manager
kyle.daigle@github.com Developer
vicent@github.com Principal Engineer Systems Engineering Manager
matthew@github.com Software Developer
kevin@github.com Developer
don@github.com Developer
john@github.com Developer
scott@github.com Developer
$ hunter search --domain github.com --department it --offset 10 | jq -r '.data.emails[] | "\(.value) \(.position)"'
patchwork@github.com Developer
chris@github.com Developer
tom@github.com Developer
octocat@github.com Developer
dahlbyk@github.com 
isaacs@github.com Developer
alis@github.com Developer
michaeldrogalis@github.com Developer
x-oauth-basic@github.com Developer
jonjagger@github.com 

search

$ hunter search --help
...
$ hunter search --domain stripe.com
...
$ hunter search --company stripe
...

Output using search

{
 "data": {
 "domain": "stripe.com",
 "disposable": false,
 "webmail": false,
 "pattern": "{first}",
 "organization": "Stripe",
 "emails": [
 ...
 ]
 },
 "meta": {
 ...
 }
}

find

$ hunter find --help
...
$ hunter find --domain asana.com --full-name "Dustin Moskovitz"
...
$ hunter find --company Asana --full-name "Dustin Moskovitz"
...
$ hunter find --company Asana --first-name Dustin --last-name Moskovitz
...

Output using find

{
 "data": {
 "first_name": "Dustin",
 "last_name": "Moskovitz",
 "email": "dustin@asana.com",
 "score": 96,
 "domain": "asana.com",
 "position": "Cofounder",
 "twitter": "",
 "linkedin_url": "",
 "phone_number": "",
 "company": "Asana",
 "sources": [
 ...
 ]
 },
 "meta": {
 ...
 }
}

verify

$ hunter verify --help
...
$ hunter verify --email stevejobs@apple.com
...

Output using verify

{
 "data": {
 "result": "undeliverable",
 "score": 30,
 "email": "stevejobs@apple.com",
 "regexp": true,
 "gibberish": false,
 "disposable": false,
 "webmail": false,
 "mx_records": true,
 "smtp_server": true,
 "smtp_check": false,
 "accept_all": false,
 "block": false,
 "sources": [
 ...
 ]
 },
 "meta": {
 ...
 }
}

Golang Client Usage

We can use the VerifyEmail method on a *hunter.Client to verify a given email.

package main
import (
 "fmt"
 "github.com/picatz/hunter"
)
func main() {
 // create a new client using the HUNTER_API_KEY environment variable
 // and the default net/http client
 client := hunter.New(hunter.UseDefaultEnvVariable, hunter.UseDefaultHTTPClient)
 // verify email
 result, err := client.VerifyEmail(hunter.Params{
 "email": "stevejobs@apple.com",
 })
 // handle error
 if err != nil {
 panic(err)
 }
 // do something with the result data
 fmt.Println(result.Data.Score)
}

We can use the FindEmail method on a *hunter.Client to generate or retrieve the most likely email address from a domain name, a first name and a last name (or a full name).

package main
import (
 "fmt"
 "github.com/picatz/hunter"
)
func main() {
 // create a new client using the HUNTER_API_KEY environment variable
 // and the default net/http client
 client := hunter.New(hunter.UseDefaultEnvVariable, hunter.UseDefaultHTTPClient)
 // find email
 results, err := client.FindEmail(hunter.Params{
 "domain": "asana.com",
 "first_name": "Dustin",
 "last_name": "Moskovitz",
 })
 // handle error
 if err != nil {
 panic(err)
 }
 // do something with the result data
 fmt.Println(result.Data.Score)
}

We can use the DomainSearch method on a *hunter.Client, where you give one domain name (or company name) and it returns all the email addresses found by hunter.io on the internet matching it.

package main
import (
 "fmt"
 "github.com/picatz/hunter"
)
func main() {
 // create a new client using the HUNTER_API_KEY environment variable
 // and the default net/http client
 client := hunter.New(hunter.UseDefaultEnvVariable, hunter.UseDefaultHTTPClient)
 // domain search
 results, err := client.DomainSearch(hunter.Params{"domain": "stripe.com"})
 // handle error
 if err != nil {
 panic(err)
 }
 // do something with the result data
 fmt.Println(result.Data)
}

About

🐺 Command-line application and golang client library for hunter.io

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /