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…
End-to-end hiring signal composite. Takes any set of companies, detects job postings that your product augments or replaces, finds relevant people (the hiring manager, buyers, champions, users), and drafts personalized outreach using the job role as the hook. Tool-agnostic —
$ npx -y skills add gooseworks-ai/goose-skills --skill hiring-signal-outreach --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/hiring-signal-outreachContext preview
The summary Claude sees to decide when to auto-load this skill.
End-to-end hiring signal composite. Takes any set of companies, detects job postings that your product augments or replaces, finds relevant people (the hiring manager, buyers, champions, users), and drafts personalized outreach using the job role as the hook. Tool-agnostic —
name: hiring-signal-outreach
version: 1.0.0
description: >
End-to-end hiring signal composite. Takes any set of companies, detects job
postings that your product augments or replaces, finds relevant people
(the hiring manager, buyers, champions, users), and drafts personalized
outreach using the job role as the hook. Tool-agnostic — works with any
company source, job board, contact finder, and outreach platform.
tags: [outreach]
graph:
provides:
- companies-with-hiring-signals # Companies posting roles your product augments/replaces
- contact-list # People at those companies to reach out to
- personalized-email-sequences # Outreach drafts using job posting as the hook
requires:
- company-list # Any list of companies (CSV, CRM, manual, Supabase)
- your-company-context # What you sell, what roles your product augments/replaces
connects_to:
- skill: cold-email-outreach
when: "User wants to launch the campaign via their outreach tool"
passes: contact-list, personalized-email-sequences
- skill: linkedin-outreach
when: "User wants LinkedIn outreach instead of or alongside email"
passes: contact-list
capabilities: [web-search, job-search, contact-finding, email-drafting]Detects job postings at target companies where the role being hired for is one your product augments, replaces, or directly supports. Finds the right people to contact (not just the person being hired — the hiring manager, budget holder, and potential champions), then drafts personalized outreach using the job posting as the hook.
**Why hiring signals work:** When a company posts a job, they've already acknowledged the problem your product solves. They've budgeted for it (headcount is budget). They're actively evaluating how to solve it. Your email arrives at exactly the moment they're thinking about this problem — and you're offering a faster, cheaper, or complementary solution.
Load this composite when:
---
On first run for a client/user, collect and store these preferences. Skip on subsequent runs.
| Question | Purpose | Stored As | |----------|---------|-----------| | What does your product do? (1-2 sentences) | Match against job descriptions | `company_description` | | What job roles does your product **replace**? | Strongest signal — they're hiring for what you automate | `roles_replaced` | | What job roles does your product **augment**? | Good signal — your product makes this person more effective | `roles_augmented` | | What job roles **buy** your product? | Contact finding — who holds the budget | `buyer_titles` | | What job roles **champion** your product? | Contact finding — who feels the pain daily | `champion_titles` | | What job roles **use** your product? | Contact finding — who would operate it | `user_titles` | | What keywords in a job description indicate relevance? | Filters out false positives | `jd_keywords` |
**Example for an AI calling product:**
roles_replaced: ["BDC Representative", "Call Center Agent", "Appointment Setter"] roles_augmented: ["Sales Manager", "BDC Manager", "Service Advisor"] buyer_titles: ["VP Sales", "Director of Operations", "General Manager", "COO"] champion_titles: ["BDC Manager", "Sales Manager", "Fixed Ops Director"] user_titles: ["BDC Rep", "Service Advisor", "Sales Consultant"] jd_keywords: ["inbound calls", "outbound calls", "appointment setting", "customer follow-up"]
| Question | Options | Stored As | |----------|---------|-----------| | How should we find job postings? | LinkedIn Jobs / Indeed / Apollo / Google Jobs / Web search | `job_search_tool` | | How far back should we look? | 7 / 14 / 30 days | `lookback_days` |
| Question | Options | Stored As | |----------|---------|-----------| | How should we find contacts at these companies? | Apollo / LinkedIn / Clearbit / Web search | `contact_tool` |
| Question | Options | Stored As | |----------|---------|-----------| | Where do you want outreach sent? | Smartlead / Instantly / Outreach.io / Lemlist / CSV export | `outreach_tool` | | Email or multi-channel? | Email only / Email + LinkedIn | `outreach_channels` |
| Question | Purpose | Stored As | |----------|---------|-----------| | What problem do you solve? | Email hook | `pain_point` | | Name 2-3 proof points (customers, metrics, results) | Email credibility | `proof_points` | | What's the cost comparison vs. a full-time hire? | ROI angle for outreach | `cost_comparison` | | How fast can you deploy vs. a new hire? | Speed angle | `deployment_speed` |
**Store config in:** `clients/<client-name>/config/signal-outreach.json` or equivalent.
---
**Purpose:** For each company in the input list, find active job postings that match roles your product replaces or augments.
companies: [
{
name: string # Required
domain: string # Required
industry?: string # Optional
size?: string # Optional
}
]
roles_replaced: string[] # From config
roles_augmented: string[] # From config
jd_keywords: string[] # From config
lookback_days: integer # From config (default: 14)For each company (or in batches):
1. **Search for job postings** using the configured `job_search_tool`:
Put 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.