Ranql Onboarding (optional — it just saves the info)
This is not a gate. Never make a user onboard before doing what they asked. The teardown, brand kit, and creative skills all work off details collected in the conversation and passed straight to the endpoints. Onboarding's only job is to persist those details so the firm doesn't repeat them next session.
Two ways to save, in order of preference:
- The one-time web wizard (recommended, most reliable): point the user to
ranql.com/platform/onboarding. They fill it once, it saves everything (firm identity, competitors, socials), and from then on every session auto-resolves. Say: "Want me to remember your firm so you never re-enter this? Do the 2-minute setup at ranql.com/platform/onboarding once — after that I'll always have it."
- Save-as-you-go via
update_my_profile: if you're collecting details anyway (see below), persist them. On a brand-new account, the first update_my_profile call must include firm_name + domain + primary_city + state together to create the profile. If that errors or the tool doesn't accept those fields, don't fight it — just proceed with the info in the chat and suggest the web wizard for permanent save.
Either way: collect what the current task needs, do the task, and offer to save — don't block. Keep it warm and fast, like a sharp associate getting the lay of the land — not a form.
Step 1 — See what's already there
Call get_my_profile first. New accounts come back mostly empty; returning ones may already have data. Only ask for what's missing. If the firm's name/domain is already set, confirm it rather than re-asking.
Step 2 — Capture the essentials (ask, infer, confirm)
Collect these. Infer from their website where you can (fetch the homepage) and confirm rather than interrogate:
Identity
- Firm name, website domain, primary city + state, phone.
- Practice areas (e.g. personal injury, family, criminal, estate).
The links that make competitor research reliable — get these up front
- The firm's own Facebook page URL (e.g.
https://www.facebook.com/TheirFirm). Ask them to paste it — it's the single biggest reliability lever for their own ad analysis.
- Their top 3–6 competitors — name + website, and each competitor's Facebook page URL if they know it. Say: "Paste the Facebook page URLs for the competitors you want me to watch — open each one on Facebook and copy the address. If you don't have them, just give me names + cities and I'll find and confirm them."
- Other socials if handy: Instagram, LinkedIn, YouTube, TikTok.
Marketing context (drives the strategy)
- Roughly how many consultations/leads a month now (a range is fine).
- Monthly marketing budget (ballpark).
- Who runs marketing — in-house, an agency, or nobody.
- Which platforms they already advertise on (Google, Facebook, Instagram, etc.).
- Their #1 marketing frustration, in their words.
Don't demand everything at once. Get identity + their FB page + competitors first (that unblocks the most). Budget/pain can come in the same breath or right after.
Step 3 — Save it back to Ranql
Persist with update_my_profile.
On a fresh account, create the profile first. The account starts empty, so your first update_my_profile call MUST include the four identity fields together or it can't create the profile:
firm_name, domain, primary_city, state (+ google_place_id if you have it).
Call that once to establish the profile, then add the rest (or include everything in the one call). If you ever see "Cannot create profile — missing required fields: firm_name, domain, primary_city, state," it means those four weren't all supplied — collect them and call again. (If update_my_profile doesn't accept firm_name at all, the connection is running an older tool list — have the user reconnect the Ranql MCP / restart Claude, then retry.)
Then pass the remaining fields you collected (omitted fields stay unchanged):
practice_areas, phone, competitors (each {name, domain, city, notes}), facebook_page_url, instagram_username, linkedin_company_url, youtube_channel_url, tiktok_handle
monthly_consultations, monthly_marketing_budget_usd, in_house_or_agency, active_ad_platforms, marketing_pain_point
- Put anything that doesn't fit a field (like competitors' Facebook page URLs) into
notes so it's saved and reusable — e.g. notes: { competitor_fb_pages: { "smithlaw.com": "https://facebook.com/SmithLaw" } }.
Confirm what saved by reading back the key facts ("Got it — you're [firm], [practice] in [city], watching [competitors], $[budget]/mo, biggest pain is [x]").
Step 4 — Hand off
Tell them what's now possible and offer the obvious next move:
"You're set up. I can now pull what your competitors are running on Facebook, analyze what's working, and build you on-brand ads. Want me to run the full growth engine, or start with a competitor teardown?"
Route to growth-engine (full play) or competitor-ad-teardown (quick win). The competitor FB URLs you just captured make that first teardown reliable and fast.
Notes
- If
get_my_profile errors, the MCP isn't connected — walk them through connecting Ranql (paste their rq_live_ key) before onboarding.
- This is also the right skill to re-run when a firm's situation changes (new competitor, new budget, new practice area) — just update the changed fields.
- Everything here feeds the rest of the suite. Time spent on a good profile pays back on every later task.
1---2name: ranql-onboarding3description: Use when the user wants to SAVE their firm details to Ranql so they don't re-enter them — "set up my profile", "onboard me", "get me set up", "remember my firm/competitors". This is OPTIONAL and never a prerequisite — the other skills (teardown, creative, etc.) run fine on info collected in the chat. Onboarding just persists that info. Prefer pointing the user to the one-time web onboarding at ranql.com/platform/onboarding; you can also save fields via update_my_profile.4---56# Ranql Onboarding (optional — it just *saves* the info)78**This is not a gate. Never make a user onboard before doing what they asked.** The teardown, brand kit, and creative skills all work off details collected in the conversation and passed straight to the endpoints. Onboarding's only job is to *persist* those details so the firm doesn't repeat them next session.910Two ways to save, in order of preference:11121. **The one-time web wizard (recommended, most reliable):** point the user to **`ranql.com/platform/onboarding`**. They fill it once, it saves everything (firm identity, competitors, socials), and from then on every session auto-resolves. Say: *"Want me to remember your firm so you never re-enter this? Do the 2-minute setup at ranql.com/platform/onboarding once — after that I'll always have it."*132. **Save-as-you-go via `update_my_profile`:** if you're collecting details anyway (see below), persist them. On a brand-new account, the first `update_my_profile` call must include `firm_name` + `domain` + `primary_city` + `state` together to create the profile. If that errors or the tool doesn't accept those fields, **don't fight it** — just proceed with the info in the chat and suggest the web wizard for permanent save.1415Either way: **collect what the current task needs, do the task, and offer to save — don't block.** Keep it warm and fast, like a sharp associate getting the lay of the land — not a form.1617## Step 1 — See what's already there1819Call **`get_my_profile`** first. New accounts come back mostly empty; returning ones may already have data. Only ask for what's missing. If the firm's name/domain is already set, confirm it rather than re-asking.2021## Step 2 — Capture the essentials (ask, infer, confirm)2223Collect these. Infer from their website where you can (fetch the homepage) and confirm rather than interrogate:2425**Identity**26- Firm name, website domain, primary city + state, phone.27- Practice areas (e.g. personal injury, family, criminal, estate).2829**The links that make competitor research reliable — get these up front**30- **The firm's own Facebook page URL** (e.g. `https://www.facebook.com/TheirFirm`). Ask them to paste it — it's the single biggest reliability lever for their own ad analysis.31- **Their top 3–6 competitors** — name + website, and **each competitor's Facebook page URL if they know it.** Say: *"Paste the Facebook page URLs for the competitors you want me to watch — open each one on Facebook and copy the address. If you don't have them, just give me names + cities and I'll find and confirm them."*32- Other socials if handy: Instagram, LinkedIn, YouTube, TikTok.3334**Marketing context (drives the strategy)**35- Roughly how many consultations/leads a month now (a range is fine).36- Monthly marketing budget (ballpark).37- Who runs marketing — in-house, an agency, or nobody.38- Which platforms they already advertise on (Google, Facebook, Instagram, etc.).39- Their #1 marketing frustration, in their words.4041Don't demand everything at once. Get identity + their FB page + competitors first (that unblocks the most). Budget/pain can come in the same breath or right after.4243## Step 3 — Save it back to Ranql4445Persist with **`update_my_profile`**.4647**On a fresh account, create the profile first.** The account starts empty, so your first `update_my_profile` call MUST include the four identity fields together or it can't create the profile:48- `firm_name`, `domain`, `primary_city`, `state` (+ `google_place_id` if you have it).4950Call that once to establish the profile, then add the rest (or include everything in the one call). If you ever see *"Cannot create profile — missing required fields: firm_name, domain, primary_city, state,"* it means those four weren't all supplied — collect them and call again. (If `update_my_profile` doesn't accept `firm_name` at all, the connection is running an older tool list — have the user reconnect the Ranql MCP / restart Claude, then retry.)5152Then pass the remaining fields you collected (omitted fields stay unchanged):53- `practice_areas`, `phone`, `competitors` (each `{name, domain, city, notes}`), `facebook_page_url`, `instagram_username`, `linkedin_company_url`, `youtube_channel_url`, `tiktok_handle`54- `monthly_consultations`, `monthly_marketing_budget_usd`, `in_house_or_agency`, `active_ad_platforms`, `marketing_pain_point`55- Put anything that doesn't fit a field (like competitors' Facebook page URLs) into `notes` so it's saved and reusable — e.g. `notes: { competitor_fb_pages: { "smithlaw.com": "https://facebook.com/SmithLaw" } }`.5657Confirm what saved by reading back the key facts ("Got it — you're [firm], [practice] in [city], watching [competitors], $[budget]/mo, biggest pain is [x]").5859## Step 4 — Hand off6061Tell them what's now possible and offer the obvious next move:62> "You're set up. I can now pull what your competitors are running on Facebook, analyze what's working, and build you on-brand ads. Want me to run the full growth engine, or start with a competitor teardown?"6364Route to **`growth-engine`** (full play) or **`competitor-ad-teardown`** (quick win). The competitor FB URLs you just captured make that first teardown reliable and fast.6566## Notes67- If `get_my_profile` errors, the MCP isn't connected — walk them through connecting Ranql (paste their `rq_live_` key) before onboarding.68- This is also the right skill to re-run when a firm's situation changes (new competitor, new budget, new practice area) — just update the changed fields.69- Everything here feeds the rest of the suite. Time spent on a good profile pays back on every later task.