Skip to content

Tools ​

The server has nine tools. All are read-only except enrich_lead, which spends a credit. Each tool returns a JSON object as structured content, with the same JSON as text for clients that only read text.

Conventions ​

  • IDs are short opaque strings such as lead_id and company_id. Use them as returned. Don't build them yourself.
  • Pagination. Search tools return up to page_size results (1–25, default 10) and a next_cursor. To get the next page, pass it back as cursor with exactly the same filters. A cursor from a different search is rejected. Only the first 1,000 results of a search can be paged. Narrow the filters to see more.
  • Filter values are fixed lists, given below and returned by get_filter_options.
  • quota in metered results shows today's quota after the call: used, limit, remaining and resets_at. A null limit means unlimited. See Usage and limits.
  • notes explain anything the assistant should know about a result, for example that a page was shortened or a role has closed.

Shared values ​

FilterValues
experience_levelEntry, Mid, Senior, Lead, Executive
work_typeRemote, Hybrid, On-site
employment_typeFull-time, Part-time, Contract, Internship, Temporary, Freelance
company_sizestartup, scale_up, small, medium, enterprise
salary_currency, currencyGBP, EUR, USD

Leads ​

search_leads ​

Search open tech roles, newest first. Each lead returned counts as one lead explore.

ParameterTypeDescription
titlestringJob title keywords, for example data engineer
locationstringCity, region or country, for example London
radius_kmnumber, 1–200Radius around a city
skillsstring[], up to 10Roles needing any of these skills, for example ["Python", "AWS"]
experience_levelenumSee shared values
work_typeenumSee shared values
employment_typeenumSee shared values
industrystringIndustry keyword, for example fintech
company_ididOnly roles at this company
company_sizeenumSee shared values
posted_within_daysinteger, 1–365Only roles posted in this window
min_annual_salary, max_annual_salaryintegerAnnual salary bounds, in salary_currency
salary_currencyenumCurrency of the salary filters. Default GBP
include_recruitment_agenciesbooleanInclude roles posted by staffing agencies. Default false
page_sizeinteger, 1–25Default 10
cursorstringnext_cursor from the previous page

Returns total (open roles matching the filters), returned, leads, next_cursor, quota and notes. Each lead has the fields of a lead card in the Estel app:

FieldDescription
idPass to get_lead or enrich_lead
title, location, posted_date
companyid (pass to get_company, or null if the company has no Estel profile yet), name, logo_url
work_type, employment_type, experience_level
salarymin, max, currency, period (year, month, week, day or hour) and a readable display
estimated_feeEstimated placement fee: min, max, currency, rate_percent of annual salary
skillsHard skills
enrichedtrue if your account has already unlocked this lead

get_lead ​

The lead preview: the card fields plus is_open, summary of the role, soft_skills, about_company and other_locations (the same role in other cities, with their lead ids). Counts as one lead explore.

ParameterTypeDescription
lead_ididRequired

Returns lead and notes. lead.enrichment_cost_credits is what enrich_lead would charge now: 1, or 0 if already unlocked. If you've already enriched the lead, lead.details holds the unlocked details. Otherwise it's null.

enrich_lead ​

Unlock a lead's full details. Costs 1 credit from your account's monthly credits, the same pool the Estel app uses. It's free if the lead is already unlocked, whether through MCP or by engaging with it in the app. Needs the leads:enrich scope.

ParameterTypeDescription
lead_ididRequired. The role must still be open

Returns lead with details filled in, already_enriched, charged_credits (0 or 1) and credits (your remaining credits). The details are:

FieldDescription
job_linksLinks to the original job postings
experience_yearsYears of experience required
industry, applicants
job_tags, company_tags
companywebsite_url, size, size_band, is_blue_chip and social_links (network, url)

Fails with insufficient_credits when you have no credits left, insufficient_scope without leads:enrich, invalid_argument if the role has closed, and quota_exceeded after 300 enrichments in a day.

Companies ​

search_companies ​

Find companies by what they are hiring for, ordered by the number of matching open roles. Each company returned counts as one company explore.

ParameterTypeDescription
namestringPart of the company name
industrystringIndustry keyword
locationstringCount only roles in this place
skillsstring[], up to 10Count only roles needing any of these skills
hiring_for_titlestringCount only roles with this title
company_sizeenumSee shared values
min_open_rolesinteger, 1–1000Default 1
posted_within_daysinteger, 1–365Count only roles posted in this window
include_recruitment_agenciesbooleanDefault false
page_size, cursorSee conventions

Returns total, returned, companies, next_cursor, quota and notes. Each company has id, name, logo_url, website_url, industry, sector, size, size_band, location and open_roles (roles matching your filters).

get_company ​

A company profile with its hiring summary. Counts as one company explore.

ParameterTypeDescription
company_ididRequired

Returns company and quota. The company has:

  • Profile: id, name, logo_url, website_url, industry, sector, size, size_band, headquarters, founded, about, specialties, is_blue_chip, office_locations.
  • Hiring: open_roles, plus counts in open_roles_by_experience_level, open_roles_by_work_type, top_titles, top_skills and top_locations. Each count is a { "label": ..., "count": ... } object.
  • Latest activity: recent_leads, as lead cards, and recent_signals.

Signals ​

search_signals ​

Recent company news that predicts hiring, newest first. Not metered.

ParameterTypeDescription
countriesstring[]GB, IE, DE, AT, CH, PL, RO, BG
categoriesstring[]funding, grant, investor_fund, new_location, acquisition, c_level_change, layoff, technology_change, outsourcing
polarityenumpositive, negative, neutral
company_ididSignals for one company
company_namestringPart of the company name
company_sizeenumSee shared values
announced_within_daysinteger, 1–365Only signals announced in this window
page_size, cursorSee conventions

Returns returned, signals and next_cursor. Each signal has id, company (id, name, logo_url), category, polarity, title, summary, url (the news source), country (ISO 3166-1 alpha-2) and announced_on.

Market insights ​

get_market_insights ​

Aggregate statistics over open roles: counts, shares, trends and salary benchmarks. Group by one dimension, optionally broken down by a second. Takes the same filters as search_leads. Counts as one market insight query, however many rows it returns.

ParameterTypeDescription
group_byenum, requiredexperience_level, work_type, employment_type, company, skill, city, country, industry, title, posted_week, posted_month
metricenumcount (default) or salary
breakdown_byenumexperience_level, work_type, employment_type, country
currencyenumCurrency for salary figures. Default GBP
limitinteger, 1–50Maximum groups. Default 10
Filterstitle, location, radius_km, skills, experience_level, work_type, employment_type, industry, company_id, company_size, posted_within_days, include_recruitment_agencies

See the market insights guide for outputs, methodology and examples.

Account ​

get_account_usage ​

Your remaining enrichment credits, today's quotas, your plan, and the scopes of the credential in use. No parameters. Not metered.

Returns plan, subscription_status, credential (type, which is api_key or oauth, and scopes), enrichment_credits, daily_quotas (lead_explores, company_explores, insight_queries, enrichments), calls_per_minute and notes.

get_filter_options ​

Valid values for every filter, plus the most common industries. No parameters. Not metered.

Returns:

  • Lead filters: experience_levels, work_types, employment_types, company_size_bands (value to label), salary_currencies.
  • Signal filters: signal_categories, signal_polarities, signal_countries (code to name).
  • Insight options: insight_group_by, insight_breakdown_by.
  • Industries: top_industries.