gooseworks 0.3.14 → 0.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,12 +2,10 @@
2
2
  name: gooseworks
3
3
  slug: gooseworks
4
4
  description: >
5
- GooseWorks data toolkit. Search and scrape Twitter/X, Reddit, LinkedIn, websites, and the web.
6
- Find people, emails, and company info. Enrich contacts and companies.
7
- GTM tasks: lead generation, prospect research, ICP identification, competitor analysis, outbound list building.
8
- LinkedIn scraping: extract post engagers, commenters, profile data, and job postings.
9
- Reach for it when you need data at scale, sources behind auth, or a specific provider — not as
10
- a replacement for your built-in web search/fetch on quick, one-off lookups.
5
+ GooseWorks growth coworker and specialist-skill router. Research brands, customers, competitors,
6
+ creators, markets, and prospects; analyze ads and performance; create ads, product photos,
7
+ graphics, and video; search and scrape public web and social data; find and enrich leads.
8
+ Use it as the single GooseWorks entry point for brand growth, B2B, sales, research, and GTM work.
11
9
  category: general
12
10
  version: 1.0.0
13
11
  author: GooseWorks
@@ -16,7 +14,7 @@ tags: [gooseworks, data, scraping, search, reddit, twitter, linkedin, email, peo
16
14
 
17
15
  # GooseWorks
18
16
 
19
- You have access to GooseWorks — a toolkit with 100+ data skills for scraping, research, lead generation, enrichment, and more. Reach for a GooseWorks skill when it's the right tool: data at scale, sources behind auth, or specific providers (Twitter/X, Reddit, LinkedIn, people/company enrichment).
17
+ You have access to GooseWorks — an AI coworker with specialist skills for research, analysis, creative work, lead generation, enrichment, and public web/social data. Use the right specialist when the request needs brand context, a managed creative workflow, data at scale, a source behind authentication, or a specific provider.
20
18
 
21
19
  This skill is also the **parent router** for the GooseWorks family. Data/GTM work you handle here (see "How to Use"); specialized work you hand off to a dedicated `goose-*` skill.
22
20
 
@@ -29,6 +27,8 @@ Before anything else, check whether the request belongs to a specialized domain.
29
27
  | Remix/make an ad, research a brand for ads, OR analyze ad performance — Meta/Google ad campaigns, creative fatigue, CAC/lead quality, competitor ad intel, ad angles & hooks | **`goose-ads`** | Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`. |
30
28
  | Charts, infographics, slides, social graphics, branded visual designs from a style/format | **`goose-graphics`** | If installed locally, use it. Otherwise `gooseworks fetch goose-graphics` (or `gooseworks install --claude --with goose-graphics`). |
31
29
  | Make a **video** ad — remix a video ad template (e.g. iMessage chat-reveal), or "make the video for project <id>" | **`goose-video`** | Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`. |
30
+ | Make **product photos** — studio, lifestyle, marketplace, social, or on-model product photography | **`goose-product-photos`** | Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`. |
31
+ | Animate an approved static ad or product image | **`animate-image`** | Fetch with `gooseworks fetch animate-image` and follow its GooseWorks MCP workflow. |
32
32
  | Anything else — scraping, research, lead gen, enrichment, any data lookup | (stay here) | Follow "How to Use" below. |
33
33
 
34
34
  Examples — all of these route to `goose-ads`, not the data flow: "remix this ad with project id 123", "make an ad for my product", "research my brand", "why is my Meta campaign underperforming", "which creatives should I cut".
@@ -37,58 +37,114 @@ Examples — all of these route to `goose-ads`, not the data flow: "remix this a
37
37
 
38
38
  All commands below auto-load credentials from `~/.gooseworks/credentials.json`. If a command exits with "Not logged in", tell the user to run: `npx gooseworks login`. To log out: `npx gooseworks logout`.
39
39
 
40
- ### CLI-free environments (cowork / headless)
40
+ ### Choose the available runtime — MCP first, then CLI
41
41
 
42
- If the `gooseworks` CLI binary isn't available (e.g. Anthropic cowork) but the
43
- `mcp__gooseworks__*` tools are connected, use the MCP equivalents instead of shelling out:
42
+ Skills may describe a managed provider request as an environment-neutral operation with
43
+ `provider`, `method`, `path`, and optional `query` or `body`. Execute the operation through
44
+ the first available runtime:
45
+
46
+ 1. If the matching GooseWorks MCP tool is registered, use it. For ScrapeCreators, pass the
47
+ operation directly to `call_data_provider`. This is the preferred path in ChatGPT, Cowork,
48
+ and other terminal-free clients. Do not shell out and do not ask for a separate provider key.
49
+ 2. Otherwise, if a local terminal and the `gooseworks` CLI are available, translate the same
50
+ operation into `gooseworks call <provider> <path>` with its method, query, and body options.
51
+ 3. Otherwise, follow the provider dependency's direct-key path only when the user has supplied
52
+ their own key. If no runtime is available, explain what connection is missing; never pretend
53
+ the provider call ran.
54
+
55
+ The same selection applies to catalog and account operations. When the CLI is unavailable but the
56
+ `mcp__gooseworks__*` tools are connected, use these equivalents:
44
57
  - `gooseworks search <q>` → the **`search_skills`** MCP tool.
45
58
  - `gooseworks fetch <slug>` → the **`fetch_skill`** MCP tool (same content/scripts/files/deps).
46
59
  - `gooseworks credits` → the **`get_ad_credits`** MCP tool.
47
60
 
48
- Discovery and fetching a skill's instructions work fully CLI-free this way. Note: the paid data
49
- proxy (`gooseworks call <provider> <path>`) still requires the CLI for now — if a task needs it
50
- and no CLI is present, tell the user that step must run where the `gooseworks` CLI is installed.
61
+ Discovery, skill fetching, and ScrapeCreators-backed Brand Growth workflows work fully CLI-free
62
+ this way. Task skills own the endpoint and analysis workflow; this runtime rule owns how the same
63
+ provider operation is executed.
51
64
 
52
65
  To check credit balance:
53
66
  ```bash
54
67
  gooseworks credits
55
68
  ```
56
69
 
57
- ## User Context (onboarding)
70
+ ## Common company onboarding
71
+
72
+ Onboarding is voluntary and happens inside the current coding agent. Run it when the user explicitly says **`/gooseworks onboard me`**, or ask for one missing answer when it is necessary for the task in front of you. **Never force an existing user through onboarding after an update.**
73
+
74
+ The CLI and GooseWorks Ads share one brand-scoped questionnaire through these MCP tools:
75
+
76
+ - `list_ad_brands` and `create_ad_brand` — select or create the company/brand.
77
+ - `get_brand_onboarding { brand_id }` — load completed answers and `missing_fields` before asking anything.
78
+ - `update_brand_onboarding { brand_id, ...answers }` — save each group of answers and the final first-task choice.
79
+
80
+ If these tools are unavailable, tell the user that onboarding needs the GooseWorks MCP connection. Do not send them to another UI and do not fall back to a separate context record.
81
+
82
+ ### Resume rules
83
+
84
+ 1. Run `list_ad_brands`. If there are multiple brands, ask which one to use.
85
+ 2. If there is no brand, ask for the company or brand website, research it, and use `create_ad_brand { name, website_url }`. If the domain matches an existing brand, reuse it.
86
+ 3. Call `get_brand_onboarding` and ask only the returned missing questions.
87
+ 4. Save after each small group so an interrupted interview can resume.
88
+ 5. If the record is complete, confirm the brand and continue; do not repeat the interview.
89
+
90
+ ### Shared questions and answer values
91
+
92
+ Use the host's native question controls. Keep the labels below; the values in backticks are the stable values accepted by `update_brand_onboarding`.
93
+
94
+ 1. **What is your role?** Founder / Business Owner · C-Suite · VP / Director · Performance / Growth Marketing · Brand / Content Marketing · Creative / Design · Agency · Consultant / Freelancer · Other.
95
+ 2. **How much do you spend on paid ads right now?** `zero` · `under_10k` · `10k_30k` · `30k_100k` · `100k_plus`.
96
+ 3. **What are your goals?** Multi-select: create ads `make_creatives` · analyze ads `analyze_ads` · manage/optimize ads `ai_manage` · competitor or customer research `research_competitors` · creators and social trends `creators_trends` · content `content_growth` · lead generation `lead_generation` · data work `data_work` · work with an expert team `expert_team`.
97
+ 4. **Who makes your ad creatives right now?** and **Who manages your ads right now?** Use the shared values returned in the tool schema. Skip both when ad spend is `zero` and no advertising goal was selected.
98
+ 5. **Which platforms or channels do you use or want help with?** Multi-select: `meta` · `tiktok` · `google` · `chatgpt` · `x` · `linkedin` · `reddit` · `other`.
99
+ 6. **Where did you find GooseWorks?** Use the shared discovery-source values returned in the tool schema.
100
+
101
+ Do not add CLI-only questions about business type, products, or audience. Infer them from the website and ask one clarification only when the research is materially uncertain.
102
+
103
+ ### Research while onboarding
104
+
105
+ Do useful setup work, not only form collection:
58
106
 
59
- You have two MCP tools for the user's onboarding CONTEXT — who they are and what they want GooseWorks for. It's stored server-side (org-scoped), separate from the ads brand kit.
107
+ 1. Fetch `brand-research` and research the website, products/services, audiences, competitors, offers, and messaging evidence.
108
+ 2. Reuse existing Brand Kit/Core data. For an ecommerce store, import the relevant catalog with `import_product` and poll `get_product_import` rather than submitting duplicates.
109
+ 3. When ads are relevant, offer to import existing creative. This is optional.
110
+ 4. Suggest evidence-backed messaging angles. Approval is optional and never blocks completion.
111
+ 5. Show the researched profile for confirmation: products/services, audience, competitors, imported ads, and suggested angles. Clearly label uncertainty.
60
112
 
61
- - `get_user_context` — read it. **At the START of a session, call this once** and use what you learn (company, role, the use-cases they picked, their goals, freeform notes) to tailor which skills/APIs you reach for. Best-effort: if the `mcp__gooseworks__*` tools aren't connected, skip silently and carry on.
62
- - `update_user_context` — save it (partial update; only the fields you pass are touched).
113
+ ### First task
63
114
 
64
- ### Running "onboard me" (or a first run with empty context)
115
+ Finish with **What do you want to do first?**
65
116
 
66
- If the user says "onboard me" — or `get_user_context` returns `onboarded: false` and they're starting fresh — run a short, friendly interview, then save the answers. Open with this framing:
117
+ - Connect my tools and data — `connect_tools`
118
+ - Research customers, competitors, creators, or trends — `research`
119
+ - Analyze ads, content, landing pages, or performance — `analyze`
120
+ - Create ads, product images, or social content — `create`
67
121
 
68
- > Gooseworks gives your AI agent access to skills and APIs for growth and marketing work. For example: making ad creatives, finding influencers, scraping social profiles and posts from X/LinkedIn, scraping ads from Meta/LinkedIn, scraping reddit, and finding leads to target and their emails — and much more. Visit skills.gooseworks.ai to see the full library of skills.
122
+ Save the choice as `first_task`, then start that job. If the user already stated a concrete job, save the matching value and start without showing the menu.
69
123
 
70
- Then ask (a few at a time is fine — don't interrogate):
71
- 1. **What's your company's website?** → `company_website`
72
- 2. **What's your role?** → `role`
73
- 3. **What are you hoping to use Goose skills for?** (multi-select — pick any): generate ad creatives · research and run ads end-to-end · finding influencers · data scraping (social / ads / reddit) · finding leads & emails · something else → `use_cases` (array)
74
- 4. **What high-priority growth / marketing tasks would you like help with right now?** The more context they share, the better you can help. → `goals`
124
+ ## Brand Growth discovery
75
125
 
76
- **Save** with `update_user_context { company_website, role, use_cases, goals, context_md }` — put any extra detail you learned into `context_md` as a short summary.
126
+ Brand Growth is a collection inside the normal skill catalog, not a command or installable pack. Use these known routes when relevant, while preserving all existing B2B, sales, research, lead-generation, and data behavior:
77
127
 
78
- **Then recommend REAL next steps — grounded, not from memory. This is the WHOLE POINT of onboarding; do not skip it or wing a generic playbook:**
79
- 1. **Route each answer to the RIGHT tool first — don't blindly search one catalog. Match their use-cases to domains (same routing as "Route to the right skill FIRST" above):**
80
- - **Make / edit / analyze ADS** (generate ad creatives, research & run ads) → the **`goose-ads`** skill (brand research + template remix). Do NOT `gooseworks search` for these — ad creation is NOT in the data catalog.
81
- - **VIDEO ads** → **`goose-video`**. **Charts / slides / graphics** → **`goose-graphics`**.
82
- - **GTM / DATA** (finding leads & emails, influencers, scraping social / ads / reddit, enrichment, competitor intel) → run `gooseworks search "<that task>"` (free) and recommend the REAL skill slugs it returns.
83
- Recommend specific, real things BY NAME — never a from-memory playbook, never a skill you assume exists; if a GTM search returns nothing relevant, say so.
84
- 2. **Ground it in THEIR business.** If they gave a company website, read it with your web tools to infer their actual product + ICP, so suggestions are about their company — not a template. (For ad work, prefer `goose-ads`'s own brand research over a raw read.)
85
- 3. **Be honest about cost.** Data / lead / enrichment / ad-generation skills bill GooseWorks credits — say so, and estimate before running anything (`gooseworks credits` to check balance).
86
- 4. **Offer to start ONE concrete play** built from the ROUTED skill (`goose-ads` for ads, a real searched skill for GTM) and ask for the one or two inputs it needs.
128
+ | Job | Skill |
129
+ | --- | --- |
130
+ | Brand foundation | `brand-research` |
131
+ | Competitor ads | `competitor-ad-intelligence` |
132
+ | Customer language and angles | `comment-mining` → `ad-angle-miner` |
133
+ | Competitor social content | `competitor-social-research` |
134
+ | Creator discovery and evaluation | `influencer-prospecting` |
135
+ | Trends and outlier posts | `trend-discovery`, `outlier-post-finder` |
136
+ | Social listening and product demand | `social-listening-brief`, `product-demand-research` |
137
+ | Meta performance, policy, and landing-page match | `meta-ads-analyzer`, `meta-ad-policy-checker`, `ad-to-landing-page-auditor` |
138
+ | Static ads | `goose-ads` / `remix-graphic-ad-from-reference` |
139
+ | Product photos | `goose-product-photos` |
140
+ | Graphics and animation | `goose-graphics`, `animate-image` |
87
141
 
88
- A suggestion is only "grounded" if it came from routing to the right domain skill (`goose-ads` / `goose-video` / `goose-graphics`) or from `gooseworks search` (a real GTM skill) — plus, ideally, reading their site. Do that BEFORE you suggest; never present a from-memory capability list as if you'd checked.
142
+ Fetch the named public skill before following it. Provider helpers such as `scrapecreators-api` and `transcript-intelligence` are dependencies, not user-facing results.
89
143
 
90
- ### Update as needed
91
- Whenever the user reveals durable context mid-session (their company, role, what they're trying to accomplish), persist it with `update_user_context` so future sessions start smarter.
144
+ For a multi-part request, repeat this routing check before each new job. Fetch and follow the
145
+ closest outcome skill first (for example, `comment-mining`, `creator-profile-teardown`, or
146
+ `content-repurposing`) before calling provider APIs or improvising a workflow. Provider calls
147
+ collect inputs for the outcome skill; they do not replace it.
92
148
 
93
149
  ## How to Use
94
150
 
@@ -128,6 +184,7 @@ Follow the instructions in the skill's `content` field. **Save ALL files from bo
128
184
  > - **Credentials (only needed before running Python scripts, NOT before gooseworks commands):** replace the python one-liner exports with `eval $(gooseworks env)`. Skip entirely if you are only using `gooseworks call` — it loads credentials automatically.
129
185
  > - **Orthogonal run:** replace `curl ... /v1/proxy/orthogonal/run ... -d '{"api":"X","path":"/Y","body":{...}}'` with `gooseworks call X /Y --body='{...}'`
130
186
  > - **Direct proxy:** replace `curl ... /v1/proxy/<provider>/<path> ... -d '{...}'` with `gooseworks call <provider> <path> --body='{...}'`
187
+ > - **ScrapeCreators:** call its first-party GooseWorks proxy directly with `gooseworks call scrapecreators <path> --query='{...}'`. Use ScrapeCreators' official OpenAPI for endpoint parameters; do not use Orthogonal as its endpoint catalog. GET is the default; add `--method POST --body='{...}'` only for an official POST operation.
131
188
  > - **Orthogonal search:** replace `curl ... /v1/proxy/orthogonal/search ... -d '{"prompt":"..."}'` with `gooseworks orthogonal find "..."`
132
189
 
133
190
  1. Save each script from `scripts` to `/tmp/gooseworks-scripts/<slug>/scripts/` — **NEVER save scripts into the user's project directory**
@@ -166,9 +223,10 @@ gooseworks call hunter /v2/email-finder --query='{"domain":"stripe.com","first_n
166
223
  - Output: JSON response data, followed by a `Cost: <N> credits` line when applicable
167
224
  - **Always tell the user the cost** after each call
168
225
 
169
- The same `gooseworks call` command also handles direct-proxy providers (apify, apollo, crustdata):
226
+ The same `gooseworks call` command also handles direct-proxy providers (apify, apollo, crustdata, scrapecreators):
170
227
  ```bash
171
228
  gooseworks call apify acts/parseforge~reddit-posts-scraper/runs --body='{"subreddit":"ClaudeAI"}'
229
+ gooseworks call scrapecreators /v2/instagram/post/comments --query='{"url":"https://www.instagram.com/p/POST_ID/"}'
172
230
  ```
173
231
 
174
232
  ### Workflow
@@ -199,7 +257,7 @@ The `gooseworks` CLI sends authenticated requests (Bearer `GOOSEWORKS_API_KEY`)
199
257
  | `$GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search` | POST | `gooseworks orthogonal find` |
200
258
  | `$GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details` | POST | `gooseworks orthogonal describe` |
201
259
  | `$GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run` | POST | `gooseworks call` (orthogonal-routed providers) |
202
- | `$GOOSEWORKS_API_BASE/v1/proxy/{apify,apollo,crustdata}/*` | Various | `gooseworks call` (direct-proxy providers) |
260
+ | `$GOOSEWORKS_API_BASE/v1/proxy/{apify,apollo,crustdata,scrapecreators}/*` | Various | `gooseworks call` (direct-proxy providers; ScrapeCreators uses its managed first-party key) |
203
261
 
204
262
  ## Security & Privacy
205
263