{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"tool_sayhi","slug":"sayhi","name":"SayHI","type":"extension","url":"https://sayhi.pro","page_url":"https://unfragile.ai/sayhi","categories":["browser-extensions"],"tags":[],"pricing":{"model":"paid","free":false,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"tool_sayhi__cap_0","uri":"capability://text.generation.language.recipient.profile.aware.message.personalization","name":"recipient-profile-aware message personalization","description":"Analyzes LinkedIn recipient profile data (headline, experience, recent activity, mutual connections) through Chrome extension DOM parsing to inject contextual details into generated messages. The system extracts structured profile information from the LinkedIn page context and passes it to an LLM backend that conditions message generation on these signals, ensuring references to specific roles, companies, or achievements rather than generic templates.","intents":["Generate LinkedIn messages that reference the recipient's specific job title and company to increase response rates","Automatically extract and leverage mutual connection names to build credibility in cold outreach","Create role-specific message variants (e.g., different tone for C-suite vs individual contributors) based on profile seniority signals"],"best_for":["Sales development reps conducting high-volume B2B outreach","Executive recruiters personalizing candidate outreach at scale","Business development professionals targeting specific company decision-makers"],"limitations":["Personalization quality depends on LinkedIn profile completeness — sparse profiles yield generic messages","Cannot access private profile information or activity beyond what LinkedIn's public UI exposes","No ability to cross-reference external data sources (company funding, recent news) to deepen personalization context","Message tone and voice cannot be customized per user — all personalization is content-level only"],"requires":["Chrome browser with extension installed","Active LinkedIn account with profile viewing permissions","SayHi subscription or API key for backend LLM access","JavaScript enabled for DOM parsing and extension injection"],"input_types":["LinkedIn profile HTML/DOM (recipient profile page)","User-provided context or intent (e.g., 'recruiting for senior engineer role')"],"output_types":["Plain text message","Formatted LinkedIn message draft"],"categories":["text-generation-language","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_sayhi__cap_1","uri":"capability://text.generation.language.in.context.message.drafting.and.editing","name":"in-context message drafting and editing","description":"Provides a Chrome extension UI overlay or sidebar that allows users to draft, review, and edit AI-generated LinkedIn messages without leaving the LinkedIn compose interface. The extension intercepts the message composition flow, generates initial drafts via backend LLM, and surfaces them in an editable text area with accept/reject/regenerate controls, then syncs approved messages back to LinkedIn's native compose box.","intents":["Draft a LinkedIn message without switching tabs or losing context of the recipient's profile","Quickly iterate on message tone or content by regenerating variants within the same interface","Review AI-generated messages for brand voice alignment before sending"],"best_for":["Users who want minimal friction in their LinkedIn workflow","Teams with strict brand voice guidelines who need to review messages before sending","High-volume outreach users who benefit from staying in one interface"],"limitations":["Limited editing capabilities — users can manually edit text but cannot easily re-run personalization on edited content","No version history or A/B testing framework to compare message variants","Editing latency may occur if regeneration requires backend round-trips","UI/UX constrained by Chrome extension sandbox — cannot deeply integrate with LinkedIn's native compose experience"],"requires":["Chrome browser with SayHi extension installed","Active LinkedIn session","JavaScript enabled for DOM manipulation and event listeners"],"input_types":["User edits to generated message text","Regeneration requests (implicit intent to create new variant)"],"output_types":["Edited message text","Message variant options"],"categories":["text-generation-language","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_sayhi__cap_2","uri":"capability://text.generation.language.multi.message.batch.generation.for.outreach.campaigns","name":"multi-message batch generation for outreach campaigns","description":"Enables users to generate multiple personalized LinkedIn messages in sequence by iterating over a list of recipient profiles (either manually provided or extracted from LinkedIn search results). The system batches profile data, passes it to the LLM backend with a shared campaign context (e.g., 'recruiting for senior engineer'), and returns a set of personalized messages that can be reviewed and sent in bulk or individually.","intents":["Generate 50+ personalized messages for a recruiting campaign without manually crafting each one","Create message variants for different recipient segments (e.g., different messaging for startup founders vs corporate employees)","Export a batch of messages for review before sending across multiple profiles"],"best_for":["Sales teams running large-scale outreach campaigns","Recruiters filling multiple open roles simultaneously","Business development professionals targeting cohorts of similar prospects"],"limitations":["Batch generation may hit rate limits on backend LLM API if processing large volumes (100+ messages)","No built-in scheduling or send-time optimization — messages are generated but must be sent manually or via separate LinkedIn automation","Limited ability to track which messages were actually sent or their response rates within the extension","Batch context is static — cannot dynamically adjust messaging based on real-time profile updates or recipient activity"],"requires":["Chrome browser with SayHi extension","List of LinkedIn profile URLs or LinkedIn search results page","SayHi subscription with sufficient API quota for batch operations","Active LinkedIn session"],"input_types":["CSV or list of LinkedIn profile URLs","Campaign context or intent (shared across all messages)","Optional: recipient segment tags or filters"],"output_types":["Batch of plain text messages (one per recipient)","CSV or JSON export of messages with recipient metadata"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_sayhi__cap_3","uri":"capability://text.generation.language.tone.and.style.customization.for.message.generation","name":"tone and style customization for message generation","description":"Allows users to specify preferred tone (professional, casual, urgent, friendly) and writing style (concise, detailed, storytelling) that conditions the LLM's message generation. These preferences are stored in the extension's local settings or user account and applied as system-level instructions to the backend LLM, ensuring generated messages align with the user's brand voice and communication style.","intents":["Generate messages that match my company's brand voice (e.g., startup casual vs enterprise formal)","Adjust message tone based on the type of outreach (recruiting vs sales vs partnership)","Ensure all generated messages sound like they came from me, not a generic template"],"best_for":["Teams with strict brand guidelines","Individual contributors who want consistent personal branding","Organizations managing multiple LinkedIn accounts with different voice requirements"],"limitations":["Tone customization is applied at generation time only — cannot retroactively adjust tone of already-generated messages","Limited granularity: preset tone options may not capture nuanced brand voice requirements","No A/B testing framework to measure which tone variants perform better","Tone preferences are not shared across team members — each user must configure independently"],"requires":["Chrome browser with SayHi extension","Access to extension settings/preferences UI","SayHi account or subscription"],"input_types":["Tone selection (dropdown or preset options)","Style preference (dropdown or preset options)","Optional: custom tone description or example messages"],"output_types":["Generated message with applied tone/style","Tone preference configuration (stored locally or in user account)"],"categories":["text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_sayhi__cap_4","uri":"capability://data.processing.analysis.recipient.activity.and.engagement.signal.extraction","name":"recipient activity and engagement signal extraction","description":"Analyzes visible LinkedIn profile signals (recent job changes, endorsements, post engagement, mutual connection activity) through DOM parsing to identify engagement hooks that can be referenced in personalized messages. The extension extracts these signals and passes them to the LLM as context, enabling message generation that references recent profile updates or activity to increase relevance and response likelihood.","intents":["Reference a recipient's recent job change or promotion in the opening line to show I've done research","Mention a recent post or article they engaged with to demonstrate genuine interest","Leverage mutual connections who recently interacted with them to build credibility"],"best_for":["Sales professionals who want to demonstrate research and genuine interest","Recruiters targeting recently promoted or job-changed professionals","Business development professionals building relationship-based outreach"],"limitations":["Activity signals are limited to what LinkedIn's public UI exposes — no access to private activity or engagement metrics","Recent activity extraction depends on profile page load time and LinkedIn's rendering — may miss activity if page hasn't fully loaded","No historical activity tracking — can only see current/recent signals, not trends over time","Activity-based personalization may feel intrusive or overly researched if not handled carefully in message tone"],"requires":["Chrome browser with SayHi extension","LinkedIn profile page fully loaded with visible activity signals","Active LinkedIn session"],"input_types":["LinkedIn profile DOM (activity section, recent posts, endorsements)","Extracted activity metadata (job title change, post engagement, mutual connections)"],"output_types":["Activity signals as structured data (e.g., 'recently promoted to VP Sales at Acme Corp')","Message text with activity-based personalization"],"categories":["data-processing-analysis","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_sayhi__cap_5","uri":"capability://memory.knowledge.message.template.library.and.reuse","name":"message template library and reuse","description":"Maintains a library of previously generated or user-created message templates that can be reused, modified, or used as starting points for new messages. Templates are stored in the extension's local storage or cloud backend and can be filtered by campaign type, recipient role, or tone. Users can save successful messages as templates and apply them to similar recipients with automatic personalization.","intents":["Save a message that got a good response and reuse it as a template for similar recipients","Create a library of message templates for different outreach scenarios (recruiting, sales, partnership)","Quickly generate messages by selecting a relevant template and letting AI personalize it"],"best_for":["Teams running recurring outreach campaigns with similar messaging needs","Individual contributors who want to build a personal message template library","Organizations standardizing outreach messaging across multiple team members"],"limitations":["Template storage is limited to extension local storage (typically 5-10MB) unless backed by cloud storage","No built-in template sharing across team members — templates are user-specific unless exported/imported manually","Template personalization is automatic but may not capture all context-specific variations needed","No analytics on template performance (e.g., which templates get highest response rates)"],"requires":["Chrome browser with SayHi extension","SayHi account for cloud template storage (optional, local storage available)","Previously generated messages or manual template creation"],"input_types":["Existing message text (to save as template)","Template metadata (name, category, tags)","Recipient profile data (for personalization)"],"output_types":["Saved template (stored locally or in cloud)","Personalized message based on template + recipient context"],"categories":["memory-knowledge","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_sayhi__cap_6","uri":"capability://text.generation.language.linkedin.connection.request.message.generation","name":"linkedin connection request message generation","description":"Generates personalized messages specifically for LinkedIn connection requests, which have stricter character limits (300 characters) and different tone requirements than InMail or direct messages. The system detects when a user is composing a connection request (via Chrome extension DOM monitoring) and applies character-limit-aware generation that prioritizes brevity and clarity while maintaining personalization based on recipient profile.","intents":["Write a compelling 300-character connection request message that stands out from generic 'I'd like to add you to my network' requests","Personalize connection requests with a specific reason for connecting based on the recipient's profile","Generate connection request variants that fit within LinkedIn's character limit"],"best_for":["Sales professionals using connection requests as initial outreach","Recruiters building talent pipelines through targeted connection requests","Professionals building genuine networks with personalized connection reasons"],"limitations":["Character limit (300 chars) severely constrains personalization depth — only high-level signals can be referenced","Connection requests have lower response rates than InMail or direct messages, limiting effectiveness for high-volume outreach","No ability to track connection request acceptance rates or responses within the extension","Personalization must be extremely concise, potentially losing nuance compared to longer message formats"],"requires":["Chrome browser with SayHi extension","LinkedIn connection request compose interface visible","Active LinkedIn session"],"input_types":["Recipient profile data (extracted from LinkedIn profile page)","Connection request compose context (detected via DOM)"],"output_types":["Plain text message (max 300 characters)","Multiple message variants within character limit"],"categories":["text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":44,"verified":false,"data_access_risk":"moderate","permissions":["Chrome browser with extension installed","Active LinkedIn account with profile viewing permissions","SayHi subscription or API key for backend LLM access","JavaScript enabled for DOM parsing and extension injection","Chrome browser with SayHi extension installed","Active LinkedIn session","JavaScript enabled for DOM manipulation and event listeners","Chrome browser with SayHi extension","List of LinkedIn profile URLs or LinkedIn search results page","SayHi subscription with sufficient API quota for batch operations"],"failure_modes":["Personalization quality depends on LinkedIn profile completeness — sparse profiles yield generic messages","Cannot access private profile information or activity beyond what LinkedIn's public UI exposes","No ability to cross-reference external data sources (company funding, recent news) to deepen personalization context","Message tone and voice cannot be customized per user — all personalization is content-level only","Limited editing capabilities — users can manually edit text but cannot easily re-run personalization on edited content","No version history or A/B testing framework to compare message variants","Editing latency may occur if regeneration requires backend round-trips","UI/UX constrained by Chrome extension sandbox — cannot deeply integrate with LinkedIn's native compose experience","Batch generation may hit rate limits on backend LLM API if processing large volumes (100+ messages)","No built-in scheduling or send-time optimization — messages are generated but must be sent manually or via separate LinkedIn automation","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.36666666666666664,"quality":0.7300000000000001,"ecosystem":0.15000000000000002,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:33.095Z","last_scraped_at":"2026-04-05T13:23:42.551Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=sayhi","compare_url":"https://unfragile.ai/compare?artifact=sayhi"}},"signature":"ctCMAUxGbmBlyWgH8omT02YkKnIgKUFFVW6U80LBQd2J3ml9vLFxfkpThjs9fxTaUDZdDfkX2A8g++XlNnvJDA==","signedAt":"2026-06-22T17:27:42.315Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/sayhi","artifact":"https://unfragile.ai/sayhi","verify":"https://unfragile.ai/api/v1/verify?slug=sayhi","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}