> ## Documentation Index
> Fetch the complete documentation index at: https://docs.formbharo.artpark.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a Voice Agent from a PDF Form

> Read a form PDF with Claude, then hand the extracted questions to the formbharo skill to build the agent.

This is two things working together: Claude reads the PDF the way it reads any attached document, and the `formbharo` skill builds the agent from the plain-English question list Claude produces. The skill has no PDF reading of its own.

## Prerequisites

* The `formbharo` skill installed. See [Agent Skills](/agents/skills).
* `FORMBHARO_API_KEY` and `FORMBHARO_API_URL` set in your environment. See [Agent Skills](/agents/skills).

<Steps>
  <Step title="Attach the PDF and ask Claude to read it">
    Attach the form PDF to your conversation and ask Claude to list every question or field on the form.
  </Step>

  <Step title="Review and correct the extracted list">
    Check the list against the form. Fix anything Claude misread, and tell it the language and tone you want, for example, "ask these in Hindi, keep it friendly."
  </Step>

  <Step title="Ask Claude to build the agent">
    Ask Claude to build a FormBharo agent from the list. From here it is the same skill workflow as building from a typed description. See [Agent Skills](/agents/skills).
  </Step>

  <Step title="The skill creates and publishes the agent">
    The skill creates the agent as a draft (`POST /api/v1/agents`), then publishes it (`PUT /api/v1/agents/{agent_id}`).
  </Step>

  <Step title="Review the agent before real calls">
    Check the agent in the web app, or with `GET /api/v1/agents/{agent_id}`. PDFs are often subtly wrong on:

    * **Field types.** A "date of birth" field should become `response_type: "date"`, not `"string"`. See [Agent Config Schema](/reference/agent-config-schema).
    * **Option lists.** Check that every choice on a single-select or multi-select field made it into `options[]`, spelled the way you want it read aloud.
    * **Validation the form implied but did not spell out.** A phone number field should usually get a `phone_number` validation rule. See [Agent Config Schema](/reference/agent-config-schema).
  </Step>
</Steps>

<Warning>
  OCR can misread a scanned or handwritten PDF. Check the extracted question list against the source form before publishing, especially field types and which questions are required.
</Warning>

## Next steps

<CardGroup cols={2}>
  <Card title="Agent config schema" icon="brackets-curly" href="/reference/agent-config-schema">
    See the full shape of an agent's JSON config
  </Card>

  <Card title="Agent Skills" icon="sparkles" href="/agents/skills">
    Install the skill and see everything it can do
  </Card>
</CardGroup>
