Skip to main content

Intelligence

Due diligence reports, sponsorship matching scores, web traffic analytics, and workspace memory — the research toolkit.


get_due_diligence​

Fetch a cached due diligence report for an entity. Does not trigger generation if no report exists yet.

Parameters​

NameTypeRequiredDescription
entity_typestringYes"brand", "rightholder", "athlete", "event", or "organization"
entity_namestringYesEntity's canonical name

Returns​

Cached report with cards (leadership, financials, brand image, recent deals, sponsoring history, etc.) and citations, or null if not cached.

Example prompt​

"Show me the cached due diligence on Red Bull"


generate_dd​

Generate (or retrieve cached) a due diligence report using Claude Opus + web search.

Timing

Takes 15–30 seconds when generating. Returns the cached version immediately if already computed (unless force_refresh: true).

Parameters​

NameTypeRequiredDescription
entity_typestringYes"brand", "rightholder", "athlete", "event", or "organization"
entity_namestringYesEntity's canonical name
languagestringNoReport language: "en", "fr", "es", "it", "pt", "de" (default: "en")
force_refreshbooleanNoBypass cache and regenerate (default: false)

Returns​

Full report: { report: { entity_name, entity_type, language, generated_at, cards: [...], from_cache } }.

Each card has key, title, data, citations, confidence, and optional score.

Example prompt​

"Generate a due diligence on Adidas in French"


generate_matching​

Generate sponsorship matching scores and sales attack angles between an entity and your workspace.

Timing

Takes 5–35 seconds total: fetches or generates the DD report first, then runs the matching LLM call.

Parameters​

NameTypeRequiredDescription
entity_typestringYes"brand", "rightholder", "athlete", etc.
entity_namestringYesEntity's canonical name
languagestringNoOutput language (default: "fr")

Returns​

{
"report": {
"scores": [
{"key": "brand_alignment", "label": "Brand alignment", "score": 82, "justification": "...", "color": "green"},
{"key": "audience_match", "label": "Audience match", "score": 74, "justification": "...", "color": "green"},
{"key": "media_value", "label": "Media value", "score": 61, "justification": "...", "color": "orange"},
{"key": "deal_viability", "label": "Deal viability", "score": 55, "justification": "...", "color": "orange"}
],
"summary": "Strong brand alignment...",
"angles": [
{
"dimension": "brand_alignment",
"title": "Premium positioning synergy",
"hook": "Both Adidas and [your entity] occupy the performance-premium tier...",
"arguments": ["Shared target demographic 18–35...", "Co-visibility on European stadiums..."]
}
]
}
}

Example prompt​

"Generate the matching between Adidas and my workspace, in English"


get_matching_cached​

Read pre-computed matching scores for a brand that appears in your hot brands list.

Parameters​

NameTypeRequiredDescription
entity_typestringYesEntity type
entity_namestringYesEntity name

Returns​

Same structure as generate_matching, or null if not yet computed.


generate_memory​

Generate workspace memory fields by researching your entity on LinkedIn and the web. These fields improve generate_matching accuracy.

Timing

Takes 8–15 seconds (Claude Opus + web search).

Parameters​

NameTypeRequiredDescription
workspace_namestringYesYour workspace / organization name
linkedin_urlstringYesLinkedIn URL of your organization
languagestringNoOutput language (default: "en")

Returns​

{
"institutionInfo": "Founded in 1998, [org] is a...",
"fanbaseInfo": "Core fanbase: 18–35, predominantly male...",
"sponsoringStrategy": "Current sponsors include...",
"digitalEngagement": "2.1M followers on Instagram...",
"socialLinkedin": "https://linkedin.com/company/...",
"socialInstagram": "https://instagram.com/..."
}

get_brand_traffic​

Web traffic analytics for a brand: monthly visit trend, source breakdown, geographic distribution, ad spend estimate.

Parameters​

NameTypeRequiredDescription
brand_namestringYesBrand name
domainstringNoBrand's primary domain (improves accuracy)

Returns​

Traffic payload with visits (monthly series), sources (organic/paid/social/direct percentages), countries (top 5), ad_spend_estimate. Cached for 7 days.

Example prompt​

"What is the web traffic of Nike.com?"


save_entity_url​

Save a website URL to an entity's node in the graph database. Useful for entities missing a website — improves DD quality and traffic analytics.

Parameters​

NameTypeRequiredDescription
entity_namestringYesEntity name
entity_typestringYesEntity type
urlstringYesWebsite URL (e.g. "https://www.entity.com")
entity_idstringNoEntity ID (improves accuracy)

Returns​

{ "success": true } or an error.


generate_attack_angles​

Generate sales angles and a draft outreach email for a target, from its due diligence and your workspace memory. Runs a paid LLM pass, so it previews and asks for confirmation first.

Parameters​

NameTypeRequiredDescription
entity_namestringYesTarget entity
entity_typestringYesEntity type
dd_reportobjectYesThe due-diligence report (from get_due_diligence)
workspace_memoryobjectYesYour workspace memory profile
workspace_namestringYesYour workspace name
languagestringNoOutput language (default "fr")

Example prompt​

"Give me angles and a draft email to approach Adidas"


generate_pitch​

Generate a commercial pitch for a target from its due diligence and matching report. Runs a paid LLM pass, so it previews and asks for confirmation first.

Parameters​

NameTypeRequiredDescription
entity_namestringYesTarget entity
entity_typestringYesEntity type
dd_reportobjectYesThe due-diligence report
matching_reportobjectYesThe matching report (from generate_matching)
workspace_memoryobjectYesYour workspace memory profile
workspace_namestringYesYour workspace name
languagestringNoOutput language (default "fr")

Example prompt​

"Write a pitch for Red Bull based on my matching"


Inline generation (context → save)​

For due diligence, matching, and workspace memory, you can generate the report yourself inline (with your own web search) instead of paying for the backend LLM pass. The pattern is always: call the get_*_context tool to receive the research prompt + field schema, write the content, then call the matching save_* tool to persist it to the same store the app reads. These context tools are fast and do not call the backend LLM.

get_memory_context​

Get the workspace-memory research prompt + field schema so you generate the memory inline, then call save_workspace_memory.

NameTypeRequiredDescription
workspace_namestringYesWorkspace name
linkedin_urlstringNoWorkspace LinkedIn URL
languagestringNoDefault en

Returns { system_prompt, user_prompt, fields }.

save_workspace_memory​

Persist a workspace-memory profile you generated. Fields include socialLinkedin, socialTwitter, socialInstagram, socialFacebook, socialTiktok, socialYoutube, socialWebsite, institutionInfo, fanbaseInfo, sponsoringStrategy, digitalEngagement (all optional strings).

get_dd_context​

Get the entity context + due-diligence card structure + writing instructions so you generate each card (paragraph ≤ ~40 words + score) inline, then call save_due_diligence. Faster than generate_dd.

NameTypeRequiredDescription
entity_typestringYese.g. "brand"
entity_namestringYesEntity name
languagestringNoDefault en

save_due_diligence​

Persist a DD report you generated inline. cards = [{ key, content, score, citations }].

NameTypeRequiredDescription
entity_typestringYesEntity type
entity_namestringYesEntity name
cardsobject[]NoThe generated DD cards
entity_idstringNoEntity id
languagestringNoDefault en

get_matching_context​

Get the DD report + workspace memory + matching instructions (6 dimensions, color thresholds, angles schema) so you compute fit scores + attack angles inline, then call save_matching.

NameTypeRequiredDescription
entity_typestringYesEntity type
entity_namestringYesEntity name
languagestringNoDefault fr

save_matching​

Persist a matching report you generated inline (scores + summary + angles) so it surfaces in the app's matching UI.

NameTypeRequiredDescription
entity_typestringYesEntity type
entity_namestringYesEntity name
reportobjectNoThe generated matching report
languagestringNoDefault fr