# How to Build an AI Agent with Claude

- Tool: Claude
- Difficulty: Beginner
- Time required: 20-30 min
- Compatibility: Claude.ai Pro plan or higher (for Cowork scheduling), browser or desktop app, no API key
- Last updated: November 2026

## TL;DR

Claude.ai builds an agent out of three parts: a Project for standing instructions and knowledge, a Connector so Claude can reach your real data, and a Skill so it formats output the same way every time. This guide builds a Monday pricing-brief agent that reads a shared competitor tracker through the Google Workspace connector and drafts a formatted doc, on a Cowork schedule, for a human to review before anyone sees it. No code, no API key, 20-30 minutes.

## What you'll build

You'll build a pricing-brief agent for a small company that tracks competitor prices in a shared Google Sheet. Every Monday, it should read that sheet, compare it against last week's numbers already stored in the Project's knowledge, and create a formatted draft Google Doc summarizing what changed, in your team's usual brief layout. It never emails or shares anything; a human opens the draft, checks it, and shares it manually.

In Claude.ai, that shape maps to three separate features instead of one agent framework. A Project holds the standing instructions ('you are our pricing analyst, flag anything over a 5 percent move') and reference knowledge (last week's numbers as a file). A Connector, set up once in Customize > Connectors, gives Claude read access to the live Google Sheet and write access to create a new Doc, through your own Google account's permissions, not a shared service key. A Skill packages the exact brief format, headings, and tone so Claude doesn't have to be told the same formatting rules in every run. Cowork then runs the whole thing on a schedule instead of you opening a chat every Monday.

Choose this no-code path when the people maintaining the agent are the same people using Claude day to day and nobody wants to own a server. If you need the agent to react to a webhook in real time, or you want programmatic control over tool permissions, the Claude Agent SDK guide builds the same kind of approval boundary as code you run yourself.

## Before you start

- A Claude.ai account on Pro, Max, Team, or Enterprise (Cowork scheduling isn't on Free)
- A Google account with edit access to the competitor-tracking Sheet and a Drive folder for drafts
- Last week's pricing numbers saved as a small file (CSV or text) to upload as Project knowledge
- No API key and no code required

## Step-by-step guide

### 1. Create a Project and set its standing instructions

Start a new Project from the sidebar and name it something like Pricing Brief. In the project's instructions field, write the role and the rule that matters most: flag moves over a threshold instead of just listing every number. Upload last week's pricing snapshot to the project's knowledge base so Claude has a baseline to compare against on the first run, before any history has built up inside the conversation itself.

```
Project instructions:
"You are our pricing analyst. Every run, compare this week's competitor prices against last week's snapshot in your knowledge. Flag any price that moved more than 5%. Never share or email anything; only create a draft Google Doc for a human to review."
```

**Expected result:** A Project named Pricing Brief with its instructions saved and last week's snapshot file listed under its knowledge.

### 2. Add the Google Workspace connector

Go to Customize > Connectors, find Google Workspace in the pre-built connectors list, and connect it with the Google account that has access to the tracking Sheet and the Drive folder. This connector works through your own account's OAuth permissions, so Claude can only read and write what you personally have access to, not anything else in your organization's Google Workspace.

```
Customize -> Connectors -> Google Workspace -> Connect
Sign in with the Google account that has edit access to:
- the competitor-tracking Sheet
- the Drive folder for brief drafts
```

**Expected result:** Google Workspace shows as Connected in the Connectors list, and Claude can be asked to open the Sheet by name in a test chat.

### 3. Package the brief format as a custom Skill

Instead of repeating your brief's exact headings and tone in every prompt, write them once as a Skill. Create a small skill.md file with a short description Claude uses to decide when to apply it, plus the actual formatting instructions, and upload it as a zip through Customize > Skills > Add. This is the same mechanism that powers Anthropic's own pre-built Excel, Word, and PDF skills, just with your own instructions instead.

```
skill.md frontmatter and body (zip this folder and upload):
---
name: pricing-brief-format
description: Use when drafting the weekly competitor pricing brief. Defines the exact headings and tone.
---
# Pricing Brief Format
Use these headings in order: Summary, Moves Over 5%, Unchanged, Next Week's Watchlist.
Keep each section under 80 words. No marketing language, numbers first.
```

**Expected result:** pricing-brief-format appears in Customize > Skills, available to toggle on for a conversation or Project.

### 4. Set tool access so the connector and skill are ready without being everywhere

Inside the Pricing Brief project, open the conversation's tool access setting and set it to Always available for the Google Workspace connector and the pricing-brief-format skill, rather than leaving it on Auto. Auto makes Claude decide when to reach for a tool, which is fine for general use but adds a small chance it skips the Sheet lookup on a run where the prompt is slightly different from usual.

```
Tool access (this conversation):
Google Workspace connector -> Always available
pricing-brief-format skill -> Always available
```

**Expected result:** Both the connector and the skill show as explicitly enabled rather than left on Auto for this project's conversations.

### 5. Run it manually once and check the draft, not just the chat reply

Ask Claude directly to pull this week's numbers from the Sheet and draft the brief. Don't just read its chat summary; open the actual Google Doc it created in Drive and check the formatting matches the skill and that nothing beyond a draft doc happened. This is the point to catch a connector scoped too broadly or a skill that didn't apply, before you put it on a schedule.

```
Prompt:
"Pull this week's prices from the competitor-tracking Sheet, compare against your knowledge of last week, and create this week's pricing brief as a new Google Doc draft in the Briefs folder."
```

**Expected result:** A new Google Doc appears in the Briefs folder with the four required headings and a Moves Over 5% section that matches what actually changed in the Sheet.

### 6. Turn it into a recurring Cowork task

Open Cowork, create a scheduled task pointed at the same prompt from the previous step, and set it to run every Monday morning. Cowork keeps running in the cloud even if your laptop is off, so the brief is waiting in Drive before your Monday standup instead of depending on you remembering to ask for it.

```
Cowork -> New scheduled task
Prompt: same as step 5
Schedule: Weekly, Monday, 8:00 AM
Project: Pricing Brief
```

**Expected result:** The task appears in Cowork's scheduled list, and a fresh draft Doc shows up in Drive the following Monday without you opening a chat.

### 7. Harden the connector scope before trusting it unattended

Since this now runs with nobody watching, narrow what it can touch. Point the connector at a Google account that only has access to the tracking Sheet and the Briefs folder, not your whole Drive, and review the Briefs folder weekly for a run or two to confirm it never drifts into creating anything outside that folder.

```
Recommended: use a dedicated Google account (or a shared drive with scoped permissions) for the connector, limited to:
- the competitor-tracking Sheet (read)
- the Briefs folder (write)
```

**Expected result:** The connected account's permissions are limited to exactly the Sheet and folder this agent needs, confirmed in Google's own sharing settings.

## Complete code example

File: `pricing-brief-format/skill.md`

```yaml
---
name: pricing-brief-format
description: Use when drafting the weekly competitor pricing brief from the tracking Sheet. Defines required headings, length limits, and tone so every week's brief looks the same.
---

# Pricing Brief Format

Apply this format whenever asked to draft, update, or regenerate the weekly
competitor pricing brief.

## Required sections, in this order

1. **Summary** - 2-3 sentences, numbers first, no adjectives like "significant"
   or "dramatic." State the count of prices that moved and by how much on
   average.
2. **Moves Over 5%** - one bullet per competitor product that moved more than
   5% since last week's snapshot. Format: `Product - old price -> new price
   (±X%)`. If nothing moved more than 5%, write "None this week."
3. **Unchanged** - a single line listing products with no price change, not
   a bullet per product.
4. **Next Week's Watchlist** - up to 3 products sitting close to a 5%
   threshold that are worth checking again next week.

## Rules

- Keep every section under 80 words. This is a brief, not a report.
- Pull current numbers from the live competitor-tracking Sheet via the
  connector; never estimate or carry over a stale number silently.
- Compare against the most recent snapshot in this project's knowledge, not
  against an assumed baseline.
- Create the output as a new Google Doc in the Briefs folder. Never send an
  email, post a message, or share the doc; that decision belongs to a human.
- Title the doc "Pricing Brief - [this week's date]".
- If the Sheet is unreachable or a product is missing a price, say so in the
  Summary section instead of silently skipping it.
```

## Common mistakes

- **Connecting Google Workspace with an account that has access to far more than the tracking Sheet and Briefs folder** — undefined Fix: Use a dedicated account or a narrowly shared drive. A connector can only reach what the signed-in account can reach, so scope that account first.
- **Putting the brief's formatting rules in the Project's instructions instead of a Skill** — undefined Fix: Instructions compete with everything else in the prompt for the model's attention. A Skill is loaded specifically when relevant, which makes formatting stick more reliably across runs.
- **Leaving tool access on Auto and assuming the connector always gets used** — undefined Fix: Auto is a reasonable default for everyday chats, but for a scheduled, unattended task, set the connector and skill to Always available so a slightly different scheduled prompt can't accidentally skip them.
- **Scheduling the Cowork task before ever checking the actual Google Doc it produces** — undefined Fix: Run it manually at least once and open the real output in Drive, not just the chat summary, before trusting it on an unattended schedule.
- **Letting the skill or project instructions allow sharing or sending as an option 'if it seems helpful'** — undefined Fix: State the boundary as an absolute rule: draft only, never send or share. A soft suggestion leaves room for the model to decide otherwise on an unusual week.

## Best practices

- Split standing instructions (Project), one-off data access (Connector), and repeatable formatting (Skill) into three separate pieces instead of one long prompt.
- Scope every connector to a dedicated account or narrowly shared resource, since it can only act within that account's own permissions.
- Set tool access to Always available for anything a scheduled, unattended task depends on; reserve Auto for interactive chats.
- Write the 'never do X' rules (never send, never share, never delete) as absolute statements in the Skill or Project instructions, not as soft suggestions.
- Check the actual output artifact (the doc, the sheet, the file) after a scheduled run, not just the task's completion status in Cowork.
- Keep a Skill focused on one repeatable output. A skill that tries to format five different kinds of documents is harder for Claude to apply consistently than five small ones.

## Use cases

### undefined



### undefined



### undefined



## Frequently asked questions

### Do I need an Anthropic API key to build an AI agent with Claude this way?

No. Everything in this guide happens inside the Claude.ai product on a Pro plan or higher. An API key and the Claude Agent SDK are a separate path for when you want to run the agent as your own process instead of inside Claude.ai.

### What's the difference between a Project's knowledge and a Connector?

Project knowledge is files you upload once, like last week's pricing snapshot; it's static until you replace it. A Connector gives Claude live access to a real account, like a Google Sheet that changes every week, read fresh on every run.

### Can a Skill call a Connector directly, or do I still have to ask for both in the prompt?

A Skill only shapes how Claude formats or approaches a task; it doesn't call tools on its own. The Connector still has to be enabled and relevant to the prompt, which is why this guide sets both to Always available rather than relying on the model to reach for them.

### Is Cowork required to schedule this, or can I just ask Claude to remind me every Monday?

A reminder still requires you to open the chat and act on it. Cowork's scheduled tasks run in the cloud on their own, so the draft doc exists before you've opened Claude that day, which is what makes this an agent rather than a recurring prompt you have to remember.

### What happens if the Google Sheet connector loses access partway through a scheduled run?

The skill in this guide instructs Claude to say so in the Summary section instead of silently producing a brief with missing or stale numbers. Check the Briefs folder after the first few scheduled runs to confirm that rule is actually holding.

### Can this same pattern read from Slack or Notion instead of Google Workspace?

Yes, through their own pre-built connectors under Customize > Connectors, or through a custom connector if you point it at any remote MCP server URL that exposes the data you need.

### Can someone build this for me instead of setting it up myself?

Yes. RapidDev builds production agents on Claude, both inside Claude.ai with Projects and Connectors and on the Claude Agent SDK when more control is needed. A free 30-minute consultation is the fastest way to scope your version.

---

Source: https://www.rapidevelopers.com/build-ai-agent/how-to-build-an-ai-agent-with-claude
© RapidDev — https://www.rapidevelopers.com/build-ai-agent/how-to-build-an-ai-agent-with-claude
