soft-shell crabvietnamese mud crab
8
7 Comments

Freelancing to keep the lights on? Here’s how to automate client intake

If you do freelance work to fund your projects, this will feel familiar.

A client fills out your form.

You open it.

You still don’t have enough info to start.

You’re missing things like:

  • What they want
  • Who it’s for
  • What you need access to

So you go back and forth.

This slows everything down.

This fixes that.
It turns one form into:

  • What you know
  • What’s missing
  • What to do next

What you are building

Simple flow: Jotform → Webhook → API → Claude → Output

  • Jotform collects answers
  • Webhook sends the data
  • API receives it
  • Claude processes it
  • Output is returned

Tools

  • Jotform → form and trigger
  • Claude Code → helps you build the workflow
  • Claude API → processes the data
  • Vercel → runs the automation

Step 1 — Define “ready to start”

Think about your last client. What did you still need before starting?

Example:

  • Website → their site link
  • Goal → what they want (more leads, more sales)
  • Service → what they want you to do (ads, SEO, landing page)
  • Access → what you need to log into (site, analytics, ad account)
  • Email → where to contact them

Write those things down. Keep it short.

Remove anything vague.

Step 2 — Build your form

Go to Jotform.

Create fields like:

  • Website → URL field
  • Goal → dropdown
  • Service → checkbox
  • Access → yes/no
  • Email → required (you will use this later)

Avoid large text boxes. Force structured answers.
Make the important ones required.

Step 3 — Add one Webhook (Trigger)

Inside Jotform:
Settings → Integrations → Webhooks
Add:
https://your-app.vercel.app/api/onboarding

Step 4 — Build the API

Open Claude Code

Type this (or similar):

Create a Node.js API endpoint:
- POST /api/onboarding
- receives JSON from Jotform
- extract fields:
 website, goal, service, access
- send this data to Claude
- return this format:
SUMMARY:
- max 5 bullets
CHECKLIST:
- max 5 items
MISSING:
- only critical missing info
NEXT STEP:
- one sentence
FOLLOW-UP MESSAGE:
- short message asking for missing info
Make sure output is short and in bullet points.
No paragraphs.

Step 5 — Deploy to Vercel

First, push your code to GitHub.

Then go to Vercel and import your project.

Click deploy.

Vercel will create your API and give you a URL.

Use this URL.

Go back to Jotform (step 3) and replace the old one.

Step 6 — Test it (very important)

Go to your form and submit test data.
This should happen:

  1. Form is submitted
  2. Jotform sends the data to the Webhook
  3. Your API receives it
  4. Claude processes it
  5. You get the output

A sample output:

SUMMARY:
- Local business
- Wants more leads
CHECKLIST:
- Audit website
- Set up tracking
MISSING:
- Target audience
- Budget
NEXT STEP:
Request audience and budget
FOLLOW-UP MESSAGE:
We need:
- Target audience
- Budget

Send this and we’ll start.

Step 7 — Auto-send follow-ups (optional but high value)

Add this logic inside your API:
After you get the response from Claude:

  • Check if “MISSING” is not empty
  • Get the “FOLLOW-UP MESSAGE”
  • Send it to the client’s email
    Example (Node.js):
if (missing.length > 0) { 
   await resend.emails.send({
      to: email,
      subject: "More info needed",   
      text: followUpMessage });
}

Use an email service like Resend or SendGrid to send the email

Quick tips

  1. Keep your form simple. Only ask what you need to start.

  2. Keep answers short. Use bullet points.

  3. Only focus on “day 1” tasks. Don’t try to plan everything.

  4. Always check before acting. AI prepares. You review.

  5. Test your webhook early. Submit a test form. Make sure the data is actually being sent.

  6. Fix missing info at the form level. If AI keeps saying things are missing, your form is not asking the right questions.

on May 20, 2026
  1. 1

    Congressional monitoring was mine - 45 min/day down to 5. Used goffer.ai for keyword + sponsor filters, pipes updates to Gmail with auto-labels, triggers SMS for floor votes. The automation compounds fast because you're never manually checking congress.gov again.

  2. 1

    Congressional monitoring was mine - 45 min/day down to 5. Used goffer.ai for keyword + sponsor filters, pipes updates to Gmail with auto-labels, triggers SMS for floor votes. The automation compounds fast because you're never manually checking congress.gov again.

  3. 1

    The "keep your form simple, only ask what you need on day 1" principle is underrated. Every extra field is a drop-off point.
    I've noticed the same pattern building for freelancers — the tools that get adopted are the ones that fit into an existing moment in the workflow, not the ones that ask freelancers to change their behavior. The best place to insert a new tool is right after a trigger that already exists (like payment confirmation) rather than asking them to add a new step.
    What's the highest drop-off point you've seen in the intake flow so far?

  4. 1

    Automating intake is one of the highest-leverage things a freelancer can do. When I started consulting on data warehouse builds for SaaS/FinTech clients, every project kicked off differently — some clients sent a wall of context, others sent almost nothing. The inconsistency made scoping unreliable.

    What helped most: a standardized discovery questionnaire sent before the first call, plus a fixed scoping template so pricing stayed consistent. Once I had those, intake went from 3-4 back-and-forth emails down to one structured exchange.

    The AI-powered approach you describe takes this further — using Claude to identify gaps in real time rather than discovering them on a call is a smart move. The auto-follow-up step especially.

    For anyone building this out: also worth systemizing your proposal format. If you're rewriting it from scratch each time, you're burning hours that should be billable.

    I packaged my full freelancing workflow — scoping, pricing, and proposal templates — here if useful: https://growthwithshehroz.gumroad.com/l/cpfja

  5. 1

    Client intake automation is exactly what I tackled for small businesses — but on WhatsApp. Most small business owners live on WhatsApp but have zero system behind it. Built Worvi to handle that: AI bot that qualifies leads and captures contacts automatically while the owner is busy. Same problem, different channel.

  6. 1

    agree, the shape is right. been running something similar at baodev for ~6 months, few things this post doesnt cover:

    • the gaps ARE the signal. prospect leaves "budget" blank = classification data, not missing data. route to a different follow-up than fully-completed forms.
    • "ready to start" matters more than data collection. figma file? repo? staging URL? without those AI can extract all the data and u still cant begin.
    • claude API at $3/M input = each intake costs <$0.01. free at freelance volume.

    biggest landmine: output destination. AI runs, result lives in a JSON file u forgot about → system dead. send straight to notion/trello/airtable 🤷

  7. 1

    they don't call it the 'freelance grind' for nothing! great tip, thanks again.

Trending on Indie Hackers
I built a launch coach after my own product launch got 11 upvotes and 3 signups User Avatar 95 comments 700 downloads and stuck — five months later... User Avatar 73 comments I told a founder to get listed on the review sites. Her report showed AI was citing her competitors' homepages. User Avatar 52 comments Most directories forget you exist after you list. We're trying something different. User Avatar 36 comments I’m building a Product Hunt alternative for indie makers — what would make you actually use it? User Avatar 33 comments Built TermsGuard to explain contracts in plain English — looking for feedback User Avatar 29 comments