Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Hunter

Scalekit connector
Open markdown

The Hunter connector lets your AI agent act in each user's Hunter account. Each user connects their own Hunter API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 21 tools.

Tools
21
What they doRead · write · destructive
14 · 5 · 214 read5 write2 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Hunter connection

    In AgentKit > Connections, create a Hunter connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'hunter'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Hunter:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'hunter_get_account',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Hunter credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • hunter_count_emailsCount how many email addresses Hunter holds for a domain or company, without returning the addresses.Read-only

    Count Emails

    Count how many email addresses Hunter holds for a domain or company, without returning the addresses. Free: uses no credits. Returns the total, the personal and generic split, and counts by department and seniority, optionally also by job title. Department and seniority counts only include addresses where that value is known, so they can sum to less than the total. Use hunter_count_emails to size a company before spending credits. Use hunter_domain_search to get the addresses themselves.

    Inputs

    companystring
    Company name, used when the domain is unknown, for example Stripe. Supplying the domain gives better results; when both are sent, the domain is used. Provide domain or company. At least 3 characters.
    domainstring
    Company domain name, for example stripe.com. A URL or a leading @ is also accepted and reduced to the domain. Provide domain or company.
    include_job_titlesstring
    Set to 1 to add counts by job title (data.job_titles). Omit to leave them out.one of 1
    typestring
    Count only personal addresses (named people) or only generic, role-based addresses. Omit for both.one of personalgeneric
  • hunter_enrich_companyLook up a company's profile from its domain name.Read-only

    Enrich Company

    Look up a company's profile from its domain name. Returns name and legal name, description, industry and sector codes, founding year, headquarters address, headcount range, company type, technologies, funding rounds, parent company, social handles and Hunter's email counts. Returns 404 when Hunter has no data for the domain. Use hunter_enrich_company when you have a domain. Use hunter_enrich_person_and_company when you start from a person's email. Use hunter_discover_companies to find companies by criteria.

    Inputs

    domainstringrequired
    The company's domain name. Example: hunter.io.
  • hunter_enrich_personLook up a person's profile from their email address or LinkedIn handle.Read-only

    Enrich Person

    Look up a person's profile from their email address or LinkedIn handle. Returns full name, location and time zone, current employment (company domain and name, title, role, seniority) and social handles such as LinkedIn, X/Twitter, GitHub and Facebook. Returns 404 when Hunter has no data for the person and 451 when the person asked Hunter to stop processing their data. Use hunter_enrich_person for the person only. Use hunter_enrich_person_and_company to also get their employer's company profile in one call. Use hunter_find_email when you have a name but no email.

    Inputs

    emailstring
    The person's email address. Provide email or linkedin_handle; when both are given, linkedin_handle is used. Example: matt@hunter.io.
    linkedin_handlestring
    Handle of the person's LinkedIn profile, the part after linkedin.com/in/. Provide email or linkedin_handle. Example: matttharp.
  • hunter_enrich_person_and_companyLook up a person and their employer in one call, from the person's email address.Read-only

    Enrich Person and Company

    Look up a person and their employer in one call, from the person's email address. Returns a person object (name, location, employment, social handles) and a company object (description, industry, location, headcount, technologies, funding and social handles), the same shapes as hunter_enrich_person and hunter_enrich_company. Returns 404 when Hunter has no data for the email. Use hunter_enrich_person_and_company when you need both. Use hunter_enrich_person or hunter_enrich_company for only one of them.

    Inputs

    emailstring
    The person's email address. Example: matt@hunter.io.
    linkedin_handlestring
    Handle of the person's LinkedIn profile, the part after linkedin.com/in/, used instead of email. Example: matttharp.
  • hunter_find_emailFind the most likely professional email address of one person, from their name plus the company domain or name, or from their LinkedIn handle.Read-only

    Find Email

    Find the most likely professional email address of one person, from their name plus the company domain or name, or from their LinkedIn handle. Returns the email with a confidence score, its verification status (valid, accept_all or unknown), position, LinkedIn URL, phone number and the public web pages where it was found; email is null and no credit is used when nothing is found. A found email is also saved to your Hunter leads unless that is turned off for the account. Use hunter_find_email for one known person. Use hunter_domain_search to list everyone at a company. Use hunter_verify_email to check an address you already have.

    Inputs

    companystring
    Company name, used when the domain is unknown, for example Stripe. Supplying the domain gives better results; when both are sent, the domain is used. Provide domain, company or linkedin_handle.
    domainstring
    Company domain name, for example stripe.com. A URL or a leading @ is also accepted and reduced to the domain. Provide domain, company or linkedin_handle.
    first_namestring
    The person's first name. Required with last_name unless full_name or linkedin_handle is given. Example: Alexis.
    full_namestring
    The person's full name, used instead of first_name and last_name. Separate first and last names give better results. Example: Alexis Ohanian.
    last_namestring
    The person's last name. Required with first_name unless full_name or linkedin_handle is given. Example: Ohanian.
    linkedin_handlestring
    Handle of the person's LinkedIn profile, the part after linkedin.com/in/. On its own it is enough to search; no name or company needed. Example: alexisohanian.
    max_durationinteger
    Maximum time Hunter may spend on the search, in seconds, from 3 to 20. Longer allows more refined results. Default 10.
  • hunter_get_accountGet the Hunter account behind the API key: owner, plan and remaining credits.Read-only

    Get Account

    Get the Hunter account behind the API key: owner, plan and remaining credits. Returns first and last name, email, plan name and level, team ID, the quota reset date, and usage per request type. When requests.credits is present the team has one credit pool (a search costs 1 credit, a verification 0.5, an enrichment 0.2) and searches and verifications are approximate views of it; otherwise they are separate quotas. Free. Use hunter_get_account to check how many credits are left before a large search.

    Inputs

    This tool takes no inputs.

  • hunter_get_leadGet one saved lead by its ID.Read-only

    Get Lead

    Get one saved lead by its ID. Returns every field of the lead: email, name, position, company, industry, size, website, country, phone, LinkedIn, Twitter, notes, source, confidence score, verification and sending status, last activity, leads list and custom attributes. Use hunter_get_lead when you have the lead ID. Use hunter_list_leads to search for a lead by email or name.

    Inputs

    lead_idintegerrequired
    ID of the lead, as returned by hunter_list_leads or hunter_create_lead. Example: 12345.