Kolvera
Australian sales intelligence & BD platform for recruiters.
От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение
Что умеет
- Search Contacts: Search your Kolvera contacts by name, title, email, or company. Filters: has_email (yes/no), has_phone (yes/no), is_prospect (true/false), is_candidate (true/false), state (AU state a
- Get Contact: Get full details for a single contact by ID.
- Create Contact: Create a new contact. Auto-links or creates company if company_name provided. Use this when enrichment providers return 0 contacts for a company. Manually create contacts from LinkedIn
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Australian sales intelligence & BD platform for recruiters. Search ASIC/ABR/SEEK companies, enrich contacts with verified email and direct-dial phone, run AI outreach campaigns, trigger deep research. 102 tools via Streamable HTTP + OAuth 2.0.
Список инструментов сервера (60)
Технические названия из tools/list. Нужны только разработчикам.
| search_contacts | Search your Kolvera contacts by name, title, email, or company. Filters: has_email (yes/no), has_phone (yes/no), is_prospect (true/false), is_candidate (true/false), state (AU state abbreviation: NSW, VIC, QLD, SA, WA, TAS, ACT, NT). sort: field to sort by (default: created_at). order: "asc" or "desc". Returns paginated results with company data. |
| get_contact | Get full details for a single contact by ID. |
| create_contact | Create a new contact. Auto-links or creates company if company_name provided. Use this when enrichment providers return 0 contacts for a company. Manually create contacts from LinkedIn profiles or team pages, then call find_contact_email to discover their email. This is the highest-hit-rate workflow for small companies (<25 staff) that enrichment providers miss. |
| update_contact | Update a contact's fields. Only pass fields you want to change. |
| delete_contact | Delete a contact and clean up all foreign key references. WARNING: This is destructive and cannot be undone. The contact is permanently removed along with their campaign enrollments, email logs, and other linked records. |
| find_contact_email | Find email for a contact via multi-provider waterfall enrichment. Works best when the contact has first_name + last_name + company (with domain). The enrichment waterfall uses name + domain to guess and verify email patterns (e.g. john.smith@agency.com.au). For companies where find_company_contacts returned 0, create the contact manually first with create_contact, then call this. Costs 2 credits when a NEW verified email is found (valid or catch_all). Free if email already exists (even if status upgraded), not found, or verification unavailable. Returns source (cached/enrichment/pattern) and status_upgraded flag when existing email status was improved for free. |
| find_contact_phone | Find phone number for a contact via waterfall enrichment. Cost varies: 6cr direct dial, 2cr company line, 0cr if cached/BYOK. |
| get_credit_balance | Check your current credit balance (plan + addon). |
| get_credit_history | Get credit transaction history. Shows every credit charge and grant. Filter by action type: email_enrichment, phone_direct_dial, phone_company_line, deep_research, icp_generation, mpc_generation, monthly_grant, top_up. |
| list_business_contexts | List all business contexts for the current user. Each has a name, context text, language, and is_primary flag. The primary context is used by default for ICP generation, campaigns, and AI messages unless overridden. |
| create_business_context | Create a new business context for a recruitment agency. IMPORTANT: populate ALL fields, not just 'what'. Each field drives AI email generation and ICP targeting. - name: business/agency name - what: what they sell (e.g. "Permanent IT recruitment across Sydney and Melbourne") - buyers: who buys it (e.g. "CTOs and Engineering Managers at mid-market tech companies") - workflow: manual process they replace (e.g. "Internal HR spending weeks sourcing candidates") - competitive_alternative: how buyers cope without them (e.g. "Job boards, LinkedIn Recruiter, multiple agencies") - pricing: fee structure (e.g. "15-20% of base salary, 3-month guarantee") - edge: differentiators (e.g. "Deep fintech network, 48hr shortlist, 92% interview-to-offer") - voice: tone for AI emails (e.g. "Warm and consultative, industry insider, no hard sell") If this is the user's first context, it becomes primary automatically. |
| create_business_context_from_website | Create a business context by importing from a website URL. Fetches the page, extracts content with AI, and populates all 7 structured fields automatically. - name: business/agency name - url: website URL (e.g. "apexrecruitment.com.au" — https:// added if missing) |
| update_business_context | Update a business context by name or ID. Pass the current name or ID in the business_context parameter to identify which context to update. Only provided non-empty fields are updated. Context text is auto-reassembled. Fields: what, buyers, workflow, competitive_alternative, pricing, edge, voice. See create_business_context for field descriptions and examples. |
| delete_business_context | Delete a business context by name or ID. Cannot delete the primary if it's the only one — set another as primary first. |
| set_primary_business_context | Set a business context as primary by name or ID. The primary context is used by default for all AI generation (ICP, campaigns, messages, briefs). |
| search_companies | Search your companies by name, domain, industry, or location. Multi-word queries match across fields (e.g. "Sydney manufacturing" finds manufacturing companies in Sydney). Filters: industry, location (city/suburb), state (e.g. NSW/VIC), bd_status (prospect/contacted/client). |
| get_company | Get full details for a single company by ID, including contact count. |
| get_company_contacts | List all contacts at a specific company. |
| update_company | Update a company's fields. Only pass fields you want to change. |
| research_company | Run AI research on a company (1 credit). Uses web search + AI to discover hiring signals, growth indicators, industry context, and company info. Fills in empty profile fields (industry, location, employee count, domain, phone, LinkedIn). |
| find_company_contacts | Find contacts (decision-makers) at a company — dispatches async, poll with get_enrichment_job. Searches LinkedIn + enrichment providers for people at the company. Creates contacts with verified emails. 2 credits per contact with verified email. Returns a job_key immediately. Poll get_enrichment_job(job_key) every 15-30s until status is "complete". Results appear in your contacts list. If icp_id is provided, links found contacts as prospects to that ICP. |
| find_company_candidates | Find candidates at a company by searching LinkedIn — dispatches async, poll with get_enrichment_job. Searches LinkedIn for people matching target roles at the company. Returns a job_key immediately. Poll get_enrichment_job(job_key) every 30s until status is "complete". LinkedIn scraping takes 30-60s per company. Specify target roles directly OR pass mpc_id to use roles from an MPC profile. Recruitment vertical only. 1 credit per candidate found. Email costs 2cr extra via find_contact_email. |
| batch_find_contacts | Find contacts at multiple companies — dispatches async, poll with get_enrichment_job. Pass up to 20 company IDs. Each company costs 2cr per contact found with a verified email. Returns a job_key immediately. Poll get_enrichment_job(job_key) every 15-30s until status is "complete". |
| batch_find_candidates | Find candidates at multiple companies — dispatches async, poll with get_enrichment_job. Pass up to 10 company IDs. LinkedIn scraping takes 30-60s per company. Returns a job_key immediately. Poll get_enrichment_job(job_key) every 30s. Specify target roles directly OR pass mpc_id to use roles from an MPC profile. Recruitment vertical only. 1 credit per candidate found. |
| delete_company | Permanently delete a company and all its contacts, jobs, and signals. WARNING: Destructive. Set confirm=True to execute. Without confirm, returns a preview with contact count. |
| list_campaigns | List your email campaigns with performance stats. Filter by status: draft, active, paused, completed. |
| get_campaign | Get campaign details including email steps and performance stats. |
| get_campaign_stats | Get campaign performance metrics: sent, opened, replied, bounced, rates. For A/B or A/B/C campaigns, returns a "variants" object with per-variant stats (enrolled, sent, opened, replied, open_rate, reply_rate) keyed by variant letter (A, B, C). Always compare variants individually, not just the aggregate. |
| pause_campaign | Pause an active campaign. Stops all scheduled sends. |
| resume_campaign | Resume a paused campaign. Resumes scheduled sends. |
| create_campaign | Create a new draft campaign. Optionally link an ICP for AI step generation. Verticals: recruitment, b2b_sales, it_msp, hr_consulting, commercial_cleaning, custom. variant_mode: "none" (single version), "ab" (A/B test), "abc" (A/B/C test). language: ISO 639-1 code to override account default (e.g. "ja" for Japanese, "ko" for Korean). business_context: name or ID of the business context to use (e.g. "Kolvera"). Defaults to your primary business context. After creation, call generate_campaign_steps to auto-generate the email sequence. |
| update_campaign | Update a draft or paused campaign's settings (name, daily limit, variant mode, ICP link, language). Only works on draft campaigns. Pass only the fields you want to change. variant_mode: "none", "ab", or "abc". language: ISO 639-1 code (e.g. "ja", "ko", "zh"). Pass "default" to clear override. |
| duplicate_campaign | Clone a campaign with all steps into a new draft. No enrollments copied. Use for A/B testing different ICPs or audiences with the same email sequence. |
| update_campaign_step | Edit a single campaign step's subject line, body text, or send delay. Works on draft or paused campaigns. Pass only the fields you want to change. Use get_campaign to find step IDs first. |
| create_campaign_step | Create a single campaign step. Campaign must be draft or paused. Use after deleting a step to re-add it, or to add extra steps manually. If step_number conflicts with an existing step, auto-appends to the end. |
| delete_campaign_step | Delete a single campaign step. Works on draft or paused campaigns. Remaining steps in the same variant are renumbered automatically. |
| generate_campaign_steps | Generate AI email steps for a draft or paused campaign (async). Dispatches step generation in the background. Returns immediately with status: "generating" and retry_after_seconds. Poll get_campaign_generation_status to check when steps are ready. Creates a multi-step cold email sequence using the campaign's linked ICP and the tenant's business context. Replaces any existing steps. If variant_mode is ab or abc, generates distinct variants with different angles. step_hints: optional per-step angle instructions. E.g.: ["Lead with hiring signal: noticed you're growing your team", "Social proof + compliance angle", "Graceful close with free IT health check offer"] These override the default step angles. Email content is generated from the stored ICP and business context data. Do NOT try to pass or override the ICP content — the tool reads it directly. |
| get_campaign_generation_status | Check if campaign step generation is complete. Returns status (generating/complete/failed/idle) and steps when complete. |
| enrol_contacts_in_campaign | Enrol contacts into a campaign. Skips duplicates, blocklisted, and DNC contacts. Returns count of enrolled vs skipped with skip reasons. Note: contacts without a first_name are fine to enrol. Kolvera automatically falls back to "Hi there," when first_name is empty — merge tags never break. Do NOT block enrolment or warn the user about missing names. |
| activate_campaign | Activate a draft campaign so it starts sending emails. SAFETY: Call without confirm first — returns a preview with enrolled count and step count. Call again with confirm=True to actually activate and send. Prerequisites (checked automatically): at least one email step, at least one enrolled contact, and an active inbox connected in Settings. Sends are staggered across your working hours with 2-8 min gaps. |
| delete_campaign | Delete a campaign and all its steps, enrollments, and email logs. Only works on draft or paused campaigns. Active campaigns must be paused first. This is destructive and cannot be undone. |
| unenrol_from_campaign | Remove contacts from a campaign. Sets their enrollment to 'removed'. Only affects active or paused enrollments. Completed or bounced enrollments are not changed. The enrollment record is preserved for audit trail — the contact is not deleted. |
| list_inboxes | List your connected email inboxes available for campaign assignment. Returns inbox IDs, labels, emails, and types (smtp/oauth_gmail/oauth_microsoft). Use these IDs with assign_inbox_to_campaign before activating a campaign. |
| assign_inbox_to_campaign | Assign email inboxes to a campaign for sending. At least one inbox must be assigned before a campaign can be activated. Replaces any existing inbox assignments. Use list_inboxes to find IDs. |
| search_pipeline_jobs | Search scraped job listings in your pipeline. Multi-word queries are tokenised — each word must match (AND) across title, company, or location. Filter by status (new/shortlisted/applied), state (NSW/VIC), sector, source (seek_scrape/indeed_scrape/linkedin_scrape/reed_scrape). created_after: ISO datetime string — only show jobs scraped after this time. icp_id: filter to jobs at companies mapped to this ICP profile. Note: company size filtering is applied at the ICP-link layer, not at scrape time. Scrapers pull raw listings — size data isn't available until enrichment. Oversize companies appear in pipeline but are filtered when linking to an ICP. |
| get_pipeline_job | Get full details for a pipeline job listing. |
| run_job_scrape | Scrape job boards for live listings. Creates a search config and starts the scrape. Sources: "seek", "indeed", "linkedin", "reed". Keywords: list of search terms, e.g. ["UX designer", "product designer"]. Locations: list like ["Sydney", "Melbourne"]. Defaults to all Australia. Name: optional label for the search config. icp_id: optional — uses AI to generate a full config (excludes, classification, sector) from ICP data, matching UI quality. Overrides manual fields. exclude_keywords: terms to filter out of job TITLES (e.g. ["apprentice", "trainee"]). exclude_companies: company names to filter out (e.g. ["Cisco", "EY"]). Matched against company name only. seek_classification: SEEK category code (e.g. "6317" for HR/Recruitment). sector: industry sector string. skip_agency_filter: set true when targeting recruitment agencies. NOTE: Agency-posted jobs show the agency name, not the underlying client. Use exclude_companies to filter known agencies from results. Check analyze_scrape_quality for repeat offender agencies to exclude. When icp_id is provided, keywords/locations/excludes are pulled from the stored ICP. Do NOT rewrite or reinterpret ICP criteria — the tool reads them directly. Only pass manual keywords/locations to override specific fields. For best results with existing configs, use run_saved_config instead. Scrapes run asynchronously. Single keyword + single city: 30-90 seconds. Full ICP scrape (3 keywords × 4 cities): 3-8 minutes per source. Response includes estimated_seconds and retry_after_seconds — wait that long before first poll with get_scrape_progress. Cost: uses scrape allowance (not credits). SEEK ~10 proxy credits/page, LinkedIn ~30/page, Indeed ~10/page, Reed free. |
| get_scrape_progress | Check progress of a running job scrape. Source: "seek", "indeed", "linkedin", or "reed". Leave empty to check all. Returns percent complete, jobs found so far, status, and retry_after_seconds. |
| list_scrape_configs | List saved search configurations (scrape presets). Returns configs with keywords, locations, last scrape time, and stats. Use include_archived=True to see archived configs too. |
| get_scrape_config | Get full details of a saved search configuration by ID. |
| update_scrape_config | Update an existing search configuration. Only provided fields are changed. String list fields (keywords, exclude_keywords, exclude_companies, target_titles, locations) accept comma-separated values and REPLACE the existing list. exclude_keywords: matched against job TITLE only. exclude_companies: matched against COMPANY NAME only. |
| archive_scrape_config | Archive (soft delete) a search configuration. Can be restored later. |
| delete_scrape_config | Permanently delete a search configuration. Irreversible. Set confirm=True to execute. Without confirm, returns a preview. |
| run_saved_config | Run a scrape using an existing saved search configuration. Use list_scrape_configs to find config IDs. This preserves all config fields (exclude_keywords, seek_classification, sector, etc.) that were set in the UI or by the ICP generator. Source: "seek", "indeed", "linkedin", or "reed". Runtime: single keyword + single city 30-90s. Full ICP config 3-8 min. Response includes estimated_seconds and retry_after_seconds. |
| trigger_deep_research | Run Deep Research to discover companies matching a profile (3 credits). Pass icp_id to find companies to SELL TO (client acquisition). Pass mpc_id to find companies that would HIRE a candidate (reverse marketing). When either ID is provided, the brief is auto-generated from stored criteria. Only pass a custom brief if the user explicitly asks for something different. precision controls breadth vs quality: - "strict": fewer queries (4-6), tight filtering, higher hit rate - "balanced": default (5-8 queries) - "broad": more queries (8-12), wider net, adjacent verticals IMPORTANT: Research runs asynchronously and takes 30-90 seconds. This tool returns a report_id immediately with status "pending". You MUST tell the user research is running, then wait ~60 seconds and call get_research_report with the report_id to retrieve results. Do NOT return just the pending status — always follow up with the report. |
| expand_deep_research | Expand an existing Deep Research report — find MORE companies (2 credits). Re-runs the same brief with different query angles, excluding companies already found. New results are appended to the same report. Uses the linked ICP if one was set on the original research run. IMPORTANT: Expansion runs asynchronously and takes 2-5 minutes. Tell the user expansion is running, wait ~90 seconds, then poll get_research_report to see the updated results with new companies. May take longer under heavy load. Before expanding again, poll get_research_report and check expansion_history.recommendation — if it is "stop" (the last two expansions averaged <2 net-new companies in the database), the ICP is saturating and further expansions (2cr each) are likely wasteful. Surface this to the user rather than looping. Note: new_per_expand counts companies new to the report; net_new_per_expand counts companies actually added to the database (the real growth metric). The recommendation keys off net_new_per_expand. |
| get_research_report | Get Deep Research results including discovered companies. When status is running/expanding, poll every 30 seconds (NOT faster). Broad ICPs may take 3-5 minutes. Check _polling_hint in response. Pass fields="status" for a lightweight poll that returns only {status, companies_found, summary, expansion_history, last_delta} — use this while polling a loop; switch to the default fields="full" once status is complete to read the company list. Response includes expansion_history {new_per_expand, net_new_per_expand, last_delta, last_net_new, cumulative_new, cumulative_net_new, total_expansions, recommendation} once at least one expansion has run. new_per_expand = companies new to the report. net_new_per_expand = companies actually created in the database (the metric that matters). |
| list_research_reports | List your Deep Research reports. |
| list_hot_lists | List your curated hot lists (contact/prospect/candidate collections). |
| get_hot_list | Get a hot list with its members (contacts, prospects, or candidates). |