# Ranql Onboarding

> 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.

- Skill: `redwoodmeridian/ranql-onboarding` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add redwoodmeridian/ranql-onboarding`
- Raw SKILL.md: https://api.skillmd.com/api/skills/redwoodmeridian/ranql-onboarding/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: redwoodmeridian (https://skillmd.com/u/redwoodmeridian)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/redwoodmeridian/ranql-onboarding

---


# 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:

1. **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."*
2. **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.

