Hook writing

Writes high-converting, psychologically-driven hooks for paid ads, TikTok, Instagram Reels, and organic content.

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/hook-writing.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit motion-team/creative-strategy-skills/hook-writing#main ~/.claude/skills/hook-writing

For one project only, change the path to .claude/skills/hook-writing.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Hook writing

Show the full text261 lines
namedescription
hook-writingWrites high-converting, psychologically-driven hooks for paid ads, TikTok, Instagram Reels, and organic content. Use this whenever a user wants to write hooks, opening lines, scroll-stoppers, or attention-grabbing openers for ads or social content. Trigger for any request involving "write me hooks," "give me hooks for," "I need hooks for my ad," "TikTok hooks," "hook ideas," or any variation of wanting compelling opening lines for advertising or social content. Also use when a user provides a product, persona, messaging angle, or awareness stage and wants tactical hook execution — especially when used downstream from the Creative Strategy Engine.

Hook Writing

This resource writes psychologically-driven hooks that stop the scroll, trigger an emotional response, and pull people into the creative.

A hook's only job is to make someone stop and watch (or read). It does this by triggering a psychological or emotional response in the first 1–3 seconds. Boring hooks lose the viewer instantly. Great hooks feel like the content was made specifically for them.


Before You Write: Required Inputs

To write great hooks, you need:

  1. Product — What is it? What does it actually do?
  2. Pain or Desire — What specific pain does it solve, or desire does it fulfill? (If using Creative Strategy Engine, this is already mapped)
  3. Persona — Who are you talking to? Their specific life context matters.
  4. Awareness Stage — Where is this audience in their journey? (See below)
  5. Format — Is this a video hook (spoken/visual) or text hook (static/caption)?
  6. Quantity — How many hooks do you need?

If any inputs are missing, ask before writing. Bad inputs = wasted hooks.


The 5 Awareness Stages (Eugene Schwartz)

The awareness stage determines your hook's strategy. Get this wrong and the hook will miss completely.

Stage Who They Are Hook Strategy
Unaware Doesn't know they have a problem Introduce the pain/desire through a relatable situation or unexpected observation. No product mention.
Problem-Aware Knows the problem, hasn't found a solution Agitate the pain hard. Make them feel deeply understood. Build urgency.
Solution-Aware Knows solutions exist, comparing options Differentiate. Position against alternatives. Call out what's failed them before.
Product-Aware Knows your product, hasn't bought Remove objections. Trigger FOMO. Social proof. Counter the reason they haven't bought.
Most-Aware Ready to buy, needs a nudge Direct offer, urgency, guarantee, price anchoring. CTA-forward.

The 8 Psychological Trigger Categories

Every killer hook leverages at least one of these. The best ones combine two.

1. Pattern Interrupt

Break their mental autopilot. Say something unexpected, counterintuitive, or visually jarring.

  • "Stop moisturizing your face."
  • "I spent $0 on ads last month and got our best sales ever."
  • "Your dermatologist is making your acne worse."
2. Identity Call-Out

Make the right people immediately self-select. Hyper-specific identity triggers higher engagement from the right audience.

  • "If you're a bride with cystic acne, watch this."
  • "This is for the girl who cancels plans because of her skin."
  • "POV: you're a performance marketer who's addicted to creative testing."
3. Pain Agitation

Make the viewer feel their pain so acutely they can't scroll past. Mirror their internal monologue back at them.

  • "You've tried everything and your skin is still breaking out."
  • "You're spending $5K/month on ads and you have no idea what's actually working."
  • "The worst part about cystic acne isn't how it looks. It's canceling plans because of it."
4. Curiosity Gap

Create an open loop they need to close. Ask a question they can't stop thinking about, or start a story mid-way through.

  • "Wait until you see what happened when I switched creative strategies..."
  • "Nobody's talking about this Meta update."
  • "The thing about clear skin that every skincare brand gets wrong."
5. Social Proof / Credibility

Real people, real results, real specificity. Numbers, before/afters, testimonials that feel true — not polished.

  • "I've been breaking out since I was 12. Here's what finally worked at 29."
  • "Our creative team runs 200+ ads a month. Here's what we actually see in the data."
  • "She cleared her skin in 6 weeks before her wedding. Here's exactly what she did."
6. Contrarian / Myth-Busting

Challenge a belief they hold. Make them feel like they've been lied to or there's something they don't know.

  • "Retinol is the reason your skin keeps purging."
  • "Broad creative testing is a waste of your budget."
  • "The problem isn't your skin. It's what your doctor told you to do."
7. Aspiration / Desire

Show them what's possible. Make them feel the version of themselves on the other side of the product.

  • "Imagine checking out in the morning and your skin is already handled."
  • "What if your ads worked so well you could actually scale?"
  • "You're 6 weeks away from not thinking about your skin anymore."
8. Urgency / Stakes

Make inaction feel costly. Heighten the stakes of not changing.

  • "You're losing conversions to your competitors right now because of this."
  • "Your wedding is in 8 weeks. What are you doing about your skin?"
  • "Every day you don't fix this, you're leaving money on the table."

Hook Formats

Video Hooks (TikTok, Reels, YouTube)
  • Spoken hook — First words out of their mouth. Should work even without visuals.
  • Visual hook — The first frame or action that stops the scroll (described for the creator)
  • Text overlay hook — On-screen text that appears over the visual
  • Combined — All three working together

When writing video hooks, write all three unless specified otherwise. Label them clearly.

Text Hooks (Static Ads, Captions, Headlines)
  • Primary text hook — First line of ad copy
  • Headline — Overlay text on static image
  • Caption hook — First line of caption (before "more")

Hook Writing Standards

DO:

  • Write in the reader's voice, not a brand voice
  • Use specific numbers, timeframes, and details — vagueness kills hooks
  • Mirror the exact language your persona actually uses
  • Lead with the pain/desire, not the product
  • Make it feel like it was written for ONE specific person
  • Read it out loud — if it sounds like an ad, rewrite it
  • Vary the psychological trigger across your hook set

DON'T:

  • Start with "Introducing…" or "Discover…" or "Are you looking for…"
  • Open with the brand name or product name
  • Write generic hooks that could apply to any product
  • Use corporate or clinical language
  • Make it sound like an ad in the first sentence
  • Repeat the same trigger type across every hook in the set

Output Format

Follow the user's requested format first. If they ask for a numbered list, a table, hooks by awareness stage, hooks for a specific video format — match that. Don't impose structure on top of a request that already has one.

Tactics and voice patterns are used silently during execution. Do not label hooks with tactic names, trigger types, or pattern references in the output unless the user explicitly asks for that breakdown.

Default: Hook Set (when no format is specified)

When writing multiple hooks with no format instruction, output as a clean numbered list:

HOOKS FOR: [Product] | [Persona] | [Awareness Stage]
MESSAGING ANGLE: [The core truth you're expressing]

1. [Hook]
2. [Hook]
3. [Hook]
[etc.]
Video Format Output (when video hooks are requested)
HOOK #1

SPOKEN: "[First words said on camera]"
VISUAL: [What happens in the first frame — action, scene, visual element]
TEXT OVERLAY: "[On-screen text]"
Breakdown (only when explicitly requested)

If the user asks to understand why a hook works, add a 1-sentence explanation of the psychological trigger and why it lands for this specific audience. Never add this unprompted.


Adapting for Awareness Stage

Unaware Hooks

Don't mention the product. Don't even hint at a solution. Just make them feel the pain or see the desire as if you're reading their mind.

For cystic acne, unaware hook:

  • "The real reason you keep getting those deep, painful breakouts that no cleanser ever touches."
Problem-Aware Hooks

They know the problem. Go hard on the pain. Don't soften it.

For cystic acne, problem-aware hook:

  • "You've tried every cleanser, every serum, every prescription — and you're still breaking out."
Solution-Aware Hooks

They're shopping. Differentiate against what they've already tried.

For cystic acne, solution-aware hook:

  • "Not another retinol. Not another acid. Something your dermatologist probably hasn't told you about."
Product-Aware Hooks

They know you exist. Counter the reason they haven't bought.

For cystic acne, product-aware hook:

  • "Still on the fence? Here's what happened after 30 days for women who had the same doubts you do."
Most-Aware Hooks

They're ready. Be direct. Create urgency. Make the offer feel obvious.

For cystic acne, most-aware hook:

  • "Your wedding is in 6 weeks. Start now and we guarantee visible results or your money back."

Optional Reference: Hook Tactics

A hook-tactics module exists as a non-exhaustive reference library of named tactic types (e.g. Aspirational, Contrarian, Urgency, Listicle), which is useful but not required.

Tactics are the frame. Psychological triggers are the mechanism inside the frame.

Pull hook-tactics when:

  • The user asks for hooks organized by tactic type (e.g. "give me 3 Contrarian hooks") — use it to confirm the tactic's definition and strategic intent before writing.
  • You want to expand range across a large hook set and need a named taxonomy to work from.
  • You're unsure which frame fits the persona/awareness stage and want a structured way to evaluate options.

Don't feel obligated to cover the full tactic list. Default to organizing output by psychological trigger (this module) unless a tactic is explicitly requested or would meaningfully improve the output.

A single hook can express one tactic through multiple psychological triggers — e.g. a Contrarian hook can run on Pattern Interrupt or Pain Agitation depending on execution.

Optional Reference: Hook Voice Patterns

A hook-voice-patterns module exists as a living swipe file of native sentence structures collected from real content on social feeds. It is even lighter-touch than hook-tactics — inspiration, not instruction.

Pull hook-voice-patterns when:

  • A hook feels constructed rather than native — the structure is right but it sounds like an ad.
  • You want a specific sentence-level register (confession energy, cultural commentary, casual drop) and none of the examples here are hitting that tone.
  • The user asks for hooks that feel organic or platform-native specifically.

Don't default to it. Most hooks can be written well from this module alone. Voice patterns are a mid-execution tool — reach for one if a hook needs a more natural container, not as a required starting point.


Integration with Creative Strategy Engine

If the user is working from a Creative Strategy Engine output, you already have:

  • Pain/Desire anchor
  • Persona with life context and deepest desire
  • Messaging angle (core truth)
  • Awareness stage

Use the messaging angle as the emotional core of every hook. All hooks should be different tactical expressions of the same core truth. The persona's specific life context should bleed into the language.


Quick Reference: Trigger Cheat Sheet

If you want to... Use this trigger
Stop autopilot scrolling Pattern Interrupt
Make them self-select immediately Identity Call-Out
Make them feel deeply understood Pain Agitation
Build intrigue and curiosity Curiosity Gap
Build credibility fast Social Proof
Challenge a belief they hold Contrarian
Show what's possible Aspiration
Make inaction feel costly Urgency/Stakes

Motion tags hook tactics across your entire Meta ad account — so you can see which hooks are working, spot opportunities, and rank creatives by thumb stop rate inside custom reports. motionapp.com

1---
2name: hook-writing
3description: Writes high-converting, psychologically-driven hooks for paid ads, TikTok, Instagram Reels, and organic content. Use this whenever a user wants to write hooks, opening lines, scroll-stoppers, or attention-grabbing openers for ads or social content. Trigger for any request involving "write me hooks," "give me hooks for," "I need hooks for my ad," "TikTok hooks," "hook ideas," or any variation of wanting compelling opening lines for advertising or social content. Also use when a user provides a product, persona, messaging angle, or awareness stage and wants tactical hook execution — especially when used downstream from the Creative Strategy Engine.
4---
5 
6# Hook Writing
7 
8This resource writes **psychologically-driven hooks** that stop the scroll, trigger an emotional response, and pull people into the creative.
9 
10A hook's only job is to make someone stop and watch (or read). It does this by triggering a psychological or emotional response in the first 1–3 seconds. Boring hooks lose the viewer instantly. Great hooks feel like the content was made specifically for them.
11 
12---
13 
14## Before You Write: Required Inputs
15 
16To write great hooks, you need:
17 
181. **Product** — What is it? What does it actually do?
192. **Pain or Desire** — What specific pain does it solve, or desire does it fulfill? (If using Creative Strategy Engine, this is already mapped)
203. **Persona** — Who are you talking to? Their specific life context matters.
214. **Awareness Stage** — Where is this audience in their journey? (See below)
225. **Format** — Is this a video hook (spoken/visual) or text hook (static/caption)?
236. **Quantity** — How many hooks do you need?
24 
25If any inputs are missing, ask before writing. Bad inputs = wasted hooks.
26 
27---
28 
29## The 5 Awareness Stages (Eugene Schwartz)
30 
31The awareness stage determines your hook's strategy. Get this wrong and the hook will miss completely.
32 
33| Stage | Who They Are | Hook Strategy |
34|-------|-------------|---------------|
35| **Unaware** | Doesn't know they have a problem | Introduce the pain/desire through a relatable situation or unexpected observation. No product mention. |
36| **Problem-Aware** | Knows the problem, hasn't found a solution | Agitate the pain hard. Make them feel deeply understood. Build urgency. |
37| **Solution-Aware** | Knows solutions exist, comparing options | Differentiate. Position against alternatives. Call out what's failed them before. |
38| **Product-Aware** | Knows your product, hasn't bought | Remove objections. Trigger FOMO. Social proof. Counter the reason they haven't bought. |
39| **Most-Aware** | Ready to buy, needs a nudge | Direct offer, urgency, guarantee, price anchoring. CTA-forward. |
40 
41---
42 
43## The 8 Psychological Trigger Categories
44 
45Every killer hook leverages at least one of these. The best ones combine two.
46 
47### 1. Pattern Interrupt
48Break their mental autopilot. Say something unexpected, counterintuitive, or visually jarring.
49- *"Stop moisturizing your face."*
50- *"I spent $0 on ads last month and got our best sales ever."*
51- *"Your dermatologist is making your acne worse."*
52 
53### 2. Identity Call-Out
54Make the right people immediately self-select. Hyper-specific identity triggers higher engagement from the right audience.
55- *"If you're a bride with cystic acne, watch this."*
56- *"This is for the girl who cancels plans because of her skin."*
57- *"POV: you're a performance marketer who's addicted to creative testing."*
58 
59### 3. Pain Agitation
60Make the viewer feel their pain so acutely they can't scroll past. Mirror their internal monologue back at them.
61- *"You've tried everything and your skin is still breaking out."*
62- *"You're spending $5K/month on ads and you have no idea what's actually working."*
63- *"The worst part about cystic acne isn't how it looks. It's canceling plans because of it."*
64 
65### 4. Curiosity Gap
66Create an open loop they need to close. Ask a question they can't stop thinking about, or start a story mid-way through.
67- *"Wait until you see what happened when I switched creative strategies..."*
68- *"Nobody's talking about this Meta update."*
69- *"The thing about clear skin that every skincare brand gets wrong."*
70 
71### 5. Social Proof / Credibility
72Real people, real results, real specificity. Numbers, before/afters, testimonials that feel true — not polished.
73- *"I've been breaking out since I was 12. Here's what finally worked at 29."*
74- *"Our creative team runs 200+ ads a month. Here's what we actually see in the data."*
75- *"She cleared her skin in 6 weeks before her wedding. Here's exactly what she did."*
76 
77### 6. Contrarian / Myth-Busting
78Challenge a belief they hold. Make them feel like they've been lied to or there's something they don't know.
79- *"Retinol is the reason your skin keeps purging."*
80- *"Broad creative testing is a waste of your budget."*
81- *"The problem isn't your skin. It's what your doctor told you to do."*
82 
83### 7. Aspiration / Desire
84Show them what's possible. Make them feel the version of themselves on the other side of the product.
85- *"Imagine checking out in the morning and your skin is already handled."*
86- *"What if your ads worked so well you could actually scale?"*
87- *"You're 6 weeks away from not thinking about your skin anymore."*
88 
89### 8. Urgency / Stakes
90Make inaction feel costly. Heighten the stakes of not changing.
91- *"You're losing conversions to your competitors right now because of this."*
92- *"Your wedding is in 8 weeks. What are you doing about your skin?"*
93- *"Every day you don't fix this, you're leaving money on the table."*
94 
95---
96 
97## Hook Formats
98 
99### Video Hooks (TikTok, Reels, YouTube)
100- **Spoken hook** — First words out of their mouth. Should work even without visuals.
101- **Visual hook** — The first frame or action that stops the scroll (described for the creator)
102- **Text overlay hook** — On-screen text that appears over the visual
103- **Combined** — All three working together
104 
105When writing video hooks, write **all three** unless specified otherwise. Label them clearly.
106 
107### Text Hooks (Static Ads, Captions, Headlines)
108- **Primary text hook** — First line of ad copy
109- **Headline** — Overlay text on static image
110- **Caption hook** — First line of caption (before "more")
111 
112---
113 
114## Hook Writing Standards
115 
116**DO:**
117- Write in the reader's voice, not a brand voice
118- Use specific numbers, timeframes, and details — vagueness kills hooks
119- Mirror the exact language your persona actually uses
120- Lead with the pain/desire, not the product
121- Make it feel like it was written for ONE specific person
122- Read it out loud — if it sounds like an ad, rewrite it
123- Vary the psychological trigger across your hook set
124 
125**DON'T:**
126- Start with "Introducing…" or "Discover…" or "Are you looking for…"
127- Open with the brand name or product name
128- Write generic hooks that could apply to any product
129- Use corporate or clinical language
130- Make it sound like an ad in the first sentence
131- Repeat the same trigger type across every hook in the set
132 
133---
134 
135## Output Format
136 
137**Follow the user's requested format first.** If they ask for a numbered list, a table, hooks by awareness stage, hooks for a specific video format — match that. Don't impose structure on top of a request that already has one.
138 
139Tactics and voice patterns are used silently during execution. Do not label hooks with tactic names, trigger types, or pattern references in the output unless the user explicitly asks for that breakdown.
140 
141### Default: Hook Set (when no format is specified)
142 
143When writing multiple hooks with no format instruction, output as a clean numbered list:
144 
145```
146HOOKS FOR: [Product] | [Persona] | [Awareness Stage]
147MESSAGING ANGLE: [The core truth you're expressing]
148 
1491. [Hook]
1502. [Hook]
1513. [Hook]
152[etc.]
153```
154 
155### Video Format Output (when video hooks are requested)
156 
157```
158HOOK #1
159 
160SPOKEN: "[First words said on camera]"
161VISUAL: [What happens in the first frame — action, scene, visual element]
162TEXT OVERLAY: "[On-screen text]"
163```
164 
165### Breakdown (only when explicitly requested)
166If the user asks to understand why a hook works, add a 1-sentence explanation of the psychological trigger and why it lands for this specific audience. Never add this unprompted.
167 
168---
169 
170## Adapting for Awareness Stage
171 
172### Unaware Hooks
173Don't mention the product. Don't even hint at a solution. Just make them feel the pain or see the desire as if you're reading their mind.
174 
175*For cystic acne, unaware hook:*
176- "The real reason you keep getting those deep, painful breakouts that no cleanser ever touches."
177 
178### Problem-Aware Hooks
179They know the problem. Go hard on the pain. Don't soften it.
180 
181*For cystic acne, problem-aware hook:*
182- "You've tried every cleanser, every serum, every prescription — and you're still breaking out."
183 
184### Solution-Aware Hooks
185They're shopping. Differentiate against what they've already tried.
186 
187*For cystic acne, solution-aware hook:*
188- "Not another retinol. Not another acid. Something your dermatologist probably hasn't told you about."
189 
190### Product-Aware Hooks
191They know you exist. Counter the reason they haven't bought.
192 
193*For cystic acne, product-aware hook:*
194- "Still on the fence? Here's what happened after 30 days for women who had the same doubts you do."
195 
196### Most-Aware Hooks
197They're ready. Be direct. Create urgency. Make the offer feel obvious.
198 
199*For cystic acne, most-aware hook:*
200- "Your wedding is in 6 weeks. Start now and we guarantee visible results or your money back."
201 
202---
203 
204## Optional Reference: Hook Tactics
205 
206A **hook-tactics** module exists as a non-exhaustive reference library of named tactic types (e.g. Aspirational, Contrarian, Urgency, Listicle), which is useful but not required.
207 
208**Tactics are the frame. Psychological triggers are the mechanism inside the frame.**
209 
210Pull hook-tactics when:
211- The user asks for hooks organized by tactic type (e.g. "give me 3 Contrarian hooks") — use it to confirm the tactic's definition and strategic intent before writing.
212- You want to expand range across a large hook set and need a named taxonomy to work from.
213- You're unsure which frame fits the persona/awareness stage and want a structured way to evaluate options.
214 
215Don't feel obligated to cover the full tactic list. Default to organizing output by psychological trigger (this module) unless a tactic is explicitly requested or would meaningfully improve the output.
216 
217A single hook can express one tactic through multiple psychological triggers — e.g. a Contrarian hook can run on Pattern Interrupt or Pain Agitation depending on execution.
218 
219## Optional Reference: Hook Voice Patterns
220 
221A **hook-voice-patterns** module exists as a living swipe file of native sentence structures collected from real content on social feeds. It is even lighter-touch than hook-tactics — inspiration, not instruction.
222 
223Pull hook-voice-patterns when:
224- A hook feels constructed rather than native — the structure is right but it sounds like an ad.
225- You want a specific sentence-level register (confession energy, cultural commentary, casual drop) and none of the examples here are hitting that tone.
226- The user asks for hooks that feel organic or platform-native specifically.
227 
228Don't default to it. Most hooks can be written well from this module alone. Voice patterns are a mid-execution tool — reach for one if a hook needs a more natural container, not as a required starting point.
229 
230---
231 
232## Integration with Creative Strategy Engine
233 
234If the user is working from a Creative Strategy Engine output, you already have:
235- Pain/Desire anchor
236- Persona with life context and deepest desire
237- Messaging angle (core truth)
238- Awareness stage
239 
240Use the messaging angle as the **emotional core** of every hook. All hooks should be different tactical expressions of the same core truth. The persona's specific life context should bleed into the language.
241 
242---
243 
244## Quick Reference: Trigger Cheat Sheet
245 
246| If you want to... | Use this trigger |
247|---|---|
248| Stop autopilot scrolling | Pattern Interrupt |
249| Make them self-select immediately | Identity Call-Out |
250| Make them feel deeply understood | Pain Agitation |
251| Build intrigue and curiosity | Curiosity Gap |
252| Build credibility fast | Social Proof |
253| Challenge a belief they hold | Contrarian |
254| Show what's possible | Aspiration |
255| Make inaction feel costly | Urgency/Stakes |
256 
257---
258 
259> Motion tags hook tactics across your entire Meta ad account — so you can see which hooks are working, spot opportunities, and rank creatives by thumb stop rate inside custom reports. [motionapp.com](https://motionapp.com/)
260 
261 

Discussion

Alternatives

Also in Short scripts & hooksSee all 320 in Content creator →
Ugc style tiktok script generator for gen z skincareGenerate user-generated content style TikTok scripts for a new Gen Z skincare product as a Marketing Strategist.Marketing · CC0-1.0资深卖货短视频脚本创作者担任资深卖货短视频脚本创作者,帮助用户撰写吸引人的短视频脚本以促进产品销售。Creator · CC0-1.0Hook generatorGenerate 6 clickbait-style LinkedIn hook variations for any topic. Two-line hooks built on the formula: a 40-char opening line, a 40-char bold contrast line. Uses supplied numbers and genuine first-person experience when available. Use this skill whenever the user says "write me hooks", "hook ideas", "generate hooks", "I need a hook for a post about...", or pastes a topic and asks for openers. Fast output, no preamble.Creator · MITReels scriptingTurn a reference Instagram Reel into a script for your own Reel, tuned to your voice and repurposed from your newsletter content. Takes a Reel URL or Notion reference link, uses Apify to scrape the video, sends it to Gemini 2.5 Flash for full transcript + hook + structure analysis, then writes a new script applying the same patterns to your newsletter topic. Use this skill whenever the user says "script a reel", "reels scripting", "turn this into a reel", pastes an Instagram Reel URL, or references their Notion outlier reels database. The URL-to-video-analysis route needs APIFY_API_TOKEN and GOOGLE_AI_API_KEY; supplied input can skip the corresponding stages.Creator · MIT