create-image-fal
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent. image_urls…
Fills in missing data for inbound leads — researches the company, identifies the person's role and seniority, finds other stakeholders at the company, checks for existing CRM relationships, and updates the lead record. Produces enriched lead data ready for qualification or
$ npx -y skills add gooseworks-ai/goose-skills --skill inbound-lead-enrichment --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/inbound-lead-enrichmentContext preview
The summary Claude sees to decide when to auto-load this skill.
Fills in missing data for inbound leads — researches the company, identifies the person's role and seniority, finds other stakeholders at the company, checks for existing CRM relationships, and updates the lead record. Produces enriched lead data ready for qualification or
name: inbound-lead-enrichment version: 1.0.0 description: > Fills in missing data for inbound leads — researches the company, identifies the person's role and seniority, finds other stakeholders at the company, checks for existing CRM relationships, and updates the lead record. Produces enriched lead data ready for qualification or outreach. Tool-agnostic. tags: [lead-generation]
Takes inbound leads with incomplete data and fills in the gaps. Researches the company, identifies the person's role, finds other stakeholders at the company, and checks for existing relationships in CRM. Turns a bare email address into a full lead profile.
Load this composite when:
[Raw Leads] → Step 1: Assess Gaps → Step 2: Company Research → Step 3: Person Research → Step 4: Stakeholder Discovery → Step 5: Relationship Check → Step 6: Compile & Output
↓ ↓ ↓ ↓ ↓ ↓
Gap inventory Company profiles Person profiles Buying committee CRM/pipeline matches Enriched lead records---
On first run, establish enrichment tool preferences.
{
"enrichment_tools": {
"company_research": {
"primary": "SixtyFour | Orthogonal | web-search",
"secondary": "web-search"
},
"person_research": {
"primary": "SixtyFour | Orthogonal | web-search",
"secondary": "web-search"
},
"stakeholder_finding": {
"primary": "SixtyFour | Orthogonal | web-search",
"secondary": "web-search"
}
},
"crm_source": {
"tool": "HubSpot | Salesforce | CSV | none",
"access_method": ""
},
"buyer_personas": [],
"enrichment_depth": {
"tier_1_leads": "deep",
"tier_2_leads": "deep",
"tier_3_leads": "standard",
"tier_4_leads": "minimal",
"untiered_leads": "standard"
}
}**On subsequent runs:** Load config silently.
---
For each lead, inventory what's known vs. unknown:
**Required fields (must fill):**
**Valuable fields (fill if possible):**
**Bonus fields (nice to have):**
For each lead, classify the enrichment effort needed:
| Gap Level | Missing | Enrichment Needed | Cost | |-----------|---------|-------------------|------| | **Minimal** | 1-2 valuable fields | Quick web search | Free | | **Standard** | Company or title missing | Web search + possible API lookup | Low | | **Deep** | Multiple required fields missing | Multi-source research | Medium | | **Email-only** | Only have an email address | Full research from scratch | High |
"Here's what's missing across your leads. [X] need deep enrichment, [Y] need standard, [Z] just need a quick lookup. Estimated cost: [amount]. Proceed?"
---
For each unique company in the lead list (deduplicate — don't research the same company twice for multiple leads):
**From email domain (if company name is missing):** 1. Extract domain from email (e.g., `jane@acme.com` → `acme.com`) 2. Skip personal email domains (gmail, yahoo, hotmail, outlook, etc.) 3. Look up the domain → company name, description
**Company profile research:**
| Field | Primary Source | Fallback Source | |-------|---------------|-----------------| | Company name | Domain lookup | Web search | | Description | Company website (homepage, about page) | LinkedIn company page, web search | | Employee count | SixtyFour or Orthogonal, LinkedIn company page | Web search | | Industry | LinkedIn company page, SixtyFour or Orthogonal | Infer from website content | | Stage/Funding | SixtyFour or Orthogonal, news articles | Web search | | HQ Location | LinkedIn company page, website | Web search | | Tech stack | Job postings, BuiltWith | Web search | | Recent news | Web search (last 90 days) | Twitter/social mentions |
**Research depth by config:**
Each company gets a `company_profile` block:
{
"company_name": "",
"company_domain": "",
"company_description": "",
"employee_count": "",
"employee_range": "",
"industry": "",
"sub_industry": "",
"stage": "",
"last_funding": "",
"hq_locatiPut your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.
Repo: gooseworks-ai/goose-skills
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent. image_urls…
Generate a single photoreal or designed image with OpenAI gpt-image via fal.ai. Supports gpt-image-1 (default, fixed sizes — the FAL fallback for Higgsfield's…
Generate an instrumental music bed via ElevenLabs Music, ROUTED THROUGH THE elevenlabs-proxy so it bills the Ads agent. Trims any sparse intro, loudnorm, fades…
Image-to-video (or text-to-video) via any FAL video model (Kling, Seedance, Veo), ROUTED THROUGH THE GooseWorks fal-proxy so the call bills the Ads agent. The…
Generate a voiceover (VO) clip via ElevenLabs text-to-speech, ROUTED THROUGH THE elevenlabs-proxy so it bills the Ads agent. Voice id + script text come from…
Scrape competitor ads from Google Ads by domain. Returns ad creatives, formats, and campaign details. Use for competitive ad research and messaging analysis.