From 0 to 1 with AI agents
Everything we did in the bootcamp, in order and at your own pace, with the slides from the session. You finish with an agent installed, connected to your tools and working on a real case: pulling a prospect database out of a LinkedIn post.
The full bootcamp is on YouTube as a 14-chapter playlist, recorded in Spanish. Watch the bootcamp playlist. The Spanish version of this guide embeds each chapter in its matching step.
houston is not a bootcamp exercise: it's a real product and you can put it to work in your company. At the end of the guide I show you how we do this with teams and how to join the beta program. First, build yours.
An agent that goes out to the internet and builds your customer list
This isn't a demo. It's an agent that stays installed in your account, with its instructions, its skill and its memory, and keeps working after you close this guide.
The method
What an agent is made of, and how to go from a vague business problem to a specific agent, using the canvas we filled in live.
This is the part that serves you forever. Today's agent solves one case; the method solves all of yours.
The Sales Rep agent
You hand it the link to a LinkedIn post with comments and it hands you back a Google Sheet with the name, role, company and comment of every person who commented.
It comes with instructions, a skill and memories already written. Its full instructions are at the end of the guide.
The tools you'll connect
The result, concretely
This is how the sheet the agent builds looks. Every person who commented, with their role, their company, what they wrote and their profile.
| # | Name | Role | Company | Profile | |
|---|---|---|---|---|---|
| 1 | Ana M. | Head of Growth | Nubetech | in/ana-m | [email protected] |
| 2 | Carlos R. | Founder & CEO | Veloro | in/carlos-r | [email protected] |
| 3 | Diana P. | VP Sales | Aurora Labs | in/diana-p | [email protected] |
| 4 | Javier T. | Product Lead | Kantto | in/javier-t | not found |
| 5 | Mariana B. | Marketing Director | Origen | in/mariana-b | [email protected] |
| 6 | Sergio D. | COO | Brío | in/sergio-d | searching… |
It doesn't have to be your post. Run the same recipe on a post from a leader in your industry, from a competitor or from an event, and their audience becomes your list. A post with a thousand comments turns into a database of a thousand prospects in minutes, not days.
This is real power. The agent never sends anything on its own: it leaves everything waiting for your approval. Keep that line in place and prospect with judgment.
An agent is a new intern you're training. It's already smart: what it doesn't know is how you work. Everything you already know about training someone new applies here.
Don't do it alone: join the bootcamp group
It's the WhatsApp group of everyone who was in the session. We unblock whatever gets stuck, share the codes and the new tutorials, and everyone tells what agent they built. The group speaks mostly Spanish, and English is welcome. Scan the code with your phone or use the button.
Join the community chat.whatsapp.com/BdLpn8T92DL4pRahiqOZErThe 5 pieces of an agent
By the end of this guide you'll have touched all five. Come back to this slide whenever something doesn't click.
A new agent doesn't send anything on its own. First it proposes, you review and approve. Trust is earned with reviewed results, exactly like with a person.
Download the full deck
All 49 slides from the session as a PDF, exactly as they were shown live. Handy for reviewing without the guide open, or for walking your team through it. The deck is in Spanish and weighs 11 MB.
Before you start
Four things within reach. All of them are free and take minutes.
Mac, Windows or Linux, charged and with Chrome open. houston doesn't run on a phone or a tablet.
ChatGPT (OpenAI) or Claude (Anthropic). Either one gets you started. OpenRouter works too, and you'll set it up in Step 4.
So the agent can create and fill the Google Sheet with your prospects.
One with lots of comments. It can be yours or from anyone with a following in your industry.
The bootcamp codes
You'll use them in steps 3 and 4. Copy them now.
Open them from your phone or your computer
Scan the code with your phone camera, or click the button if you're already at the computer. The coupons come pre-applied in the link.
The brain: 400+ models with a single account. 10 dollars in credit.
OR-GETHOUSTONRedeem credits
The app where your agent lives. Download it on your computer, not your phone.
Go to gethouston.aiThe WhatsApp group from the session. If something gets stuck, that's where to ask.
Join the groupThey're limited promotions. If one no longer applies, the guide still works: Apify and OpenRouter both have free tiers that cover everything here.
You've got the computer handy, you can open your email and you have a quiet stretch ahead. You don't have to do it all in one sitting: every step is saved.
From step 0 to 6, in order
Steps 1 and 2 are the method. From 3 to 6 it's all keyboard. Do them top to bottom.
Accounts, codes and a LinkedIn post~10 min 1What an agent is made of
The 5 pieces, with the slides from the session~20 min 2Pick the right problem
The MUUDS canvas, same as live~20 min 3Install houston
Download and first launch~15 min 4Open Apify and OpenRouter
Your agent's eyes and brain~15 min 5Install your agent
Agent Store, search for "Felipe"~10 min 6Put it to work prospecting
Apify MCP, Google Sheets and your first database~30 min
What an agent is made of
Twenty minutes of reading that save you weeks of flailing around. Here are the slides from the session, in the same order. The bootcamp ran in Spanish, so the slides are in Spanish: every caption carries the point in English, and you lose nothing by not reading them. If you'd rather start with your hands, jump to Step 3 and come back later.
Below are the ones that matter, but you can take them all
The entire bootcamp deck as a PDF: 49 slides, including the ones that didn't make it into this guide. In Spanish.
Chatbot, co-worker and agent are not the same thing
The industry calls everything an "agent". Here's what each one actually does:
The car analogy
If you take one single image from the whole bootcamp, make it this one.
When you use Claude or ChatGPT you're tied to that lab's engine. A car like houston doesn't belong to any of them: you swap the engine whenever you want, even from the chat.
Piece 1 · Identity: who it is
It lives in Settings → Instructions. Five ingredients: role, behavior, hard rules, vocabulary and tone. This is what makes two agents running the same model feel completely different.
Bad instructions look like this. No scope, no rules and no vocabulary of its own: the agent invents prices, sends emails you never approved, and answers differently every day.
Good instructions look like this. Copy them and adapt them to your business: it's the template that works for any role.
The hard rules block. Half of a good onboarding is what the agent must not do. It's the same with people, and we almost never put it in writing.
At the end of the guide you'll find the full instructions of the Sales Rep agent, exactly as I wrote them. Use them as a template.
Piece 2 · Skills: what it knows how to do
A skill isn't anything esoteric: it's a text file with instructions that the agent reads only when it needs it. It lives in Settings → Skills. Written once, used thousands of times.
The best way to create a skill is by working, not by writing. The first time, don't delegate: work alongside it.
The second best way: hand it the documents you already have. Procedure manual, onboarding guide, templates, checklists. Almost every company already has the process written down; what it doesn't have is someone who runs it the same way every time.
Piece 3 · Tools: what it uses
Without tools, an agent can only talk. It connects to the world in three ways, and each has its moment:
The app introduces itself and the agent sees what it can do, with nobody writing code. Connect once and it works for any agent and any model.
The agent writes commands, like a technical person on your team. Fast and powerful, but one badly written command deletes real things.
You give it the app's address and key. Good for your internal systems, but someone has to build it and maintain it.
More than a thousand integrations already wired up under Integrations. Anything missing gets added from the chat as a custom integration.
The real challenge isn't connecting, it's knowing what exists
This is the actual stack the sales agent works with today:
Piece 4 · Memory: what it remembers
Models have a context window, and that is not memory: it's the desk they work on today, not the filing cabinet. It's wiped when the session closes.
In houston, memory lives in Settings → Memory, as plain text you can read, edit, delete and take with you. To save something, tell it in the chat while you work:
The agent's Memory tab, with several memories saved and one open for editing.
The edit pencil and the delete button should be visible, so it's clear the memory is yours.
Piece 5 · The brain: the AI model
No model is the best at everything, and today's best isn't next week's. In houston you pick the model when you create the agent and change it whenever you want.
Explain to someone, on a napkin, the five pieces of an agent and why the model is only one of them. If you can, keep going.
Pick the right problem
The most expensive mistake is starting from the technology. A good agent starts from a pain. This is the framework we used live to go from "I want an AI agent" to a specific, useful one.
First, a good candidate
The best problems for a first agent meet all four conditions:
The MUUDS canvas, in five questions
Answer them in that order, on a sheet of paper or a board. After each one, pick a single option and continue with that.
- User. Who works with the agent every day? Think roles, not departments: "a salesperson", not "sales".
- Use case. What specific tasks does that role do? Prospect, quote, follow up, feed the CRM, book meetings.
- Pains. What hurts today inside that use case? "Time" is not a pain: "I don't have a list of people to call" is.
- Solutions. In how many creative ways could that pain be solved? Don't filter yet.
- Metrics. How would you know, in numbers, that the agent is working?
That's how the canvas ended up live. That path is exactly the agent you install in Step 5.
Do it with your own agent, not on a blank page
If getting started is hard, let it interview you. After installing it, paste this into a chat:
One written sentence like: "My [role] loses time on [use case] because [pain]. The agent solves it by [solution] and I measure it with [metric]." Keep it: it's the brief for your own agent.
Install houston
Here's where the keyboard starts. If you already had it installed, download the latest version again: the Agent Store you'll use in Step 5 only shows up in recent versions.
- Go to gethouston.ai and click
Download app. - Enter your contact details and continue to the installer.
- Download the version for your system: Mac, Windows or Linux.
- Install it. On Mac a window opens and you have to drag the houston icon into the Applications folder. On Windows you run the normal installer.
- Open houston, create your account with whatever email you prefer and choose the language in
Settings. - Connect your AI provider. In the left panel,
AI Models→ pick Anthropic or OpenAI →Connect→ you sign in in the browser and come back. With a subscription, the login is all you need, no keys. - Accept the integration permissions. houston will ask you to authorize the provider that connects the thousand apps. Leave everything selected: if you strip permissions here, the tools fail later with no explanation.
Windows may say the app is from an unknown publisher. That's normal: the certificate is recent. Click More info and then Run anyway.
Get to know the screen
Three things and you know your way around:
- The left panel is your agents, and at the top
Mission Control,Integrations,Skills,AI Models,Agent StoreandSettings. - The center is the mission board:
Running,Needs youand what's already done. Each mission is a task you gave the agent. - When something lands in
Needs you, that's your agent asking for permission. That's the golden rule at work.
Before moving on, write to it. Any question about your business. Make the first conversation yours.
houston open on the main board, with at least one provider connected under AI Models. If the welcome tour got stuck, go to Troubleshooting: there's a way out.
Open Apify and OpenRouter
Two accounts, two pieces of the agent.
Eyes on the web: it pulls everyone who commented on the post, without LinkedIn blocking your account.
Email signup failing? Sign in with Google. The coupon is already in the link.
The brain: a single account to use more than 400 models inside houston, without opening an account at every lab.
The code is redeemed under Credits, not on the payment screen.
Scan it and the coupon applies by itself.
HOUSTON_ROCKETScan it, create the account and paste the code under Credits.
OR-GETHOUSTONApify
- Go to apify.com and create your account. If email signup gives you trouble, sign in with Google.
- Apply the coupon
HOUSTON_ROCKETto get 75 dollars in credit, valid for two months. - If you already had an account, the coupon is applied from inside:
Billing→Subscription→Add promo code.
Apify on Billing → Subscription, with the Add promo code field visible.
It's the screen people asked about most during the live session, the ones who already had an account.
OpenRouter
- Go to openrouter.ai and create your account. Choose
Individualunless you're sharing it with your team. - If the payment screen shows up, close it. The code doesn't get applied there.
- In the left panel go to
Credits(or open openrouter.ai/redeem) and pasteOR-GETHOUSTON, all caps. - Check that the balance shows up in your OpenRouter account.
The OpenRouter Credits screen with the field to redeem the code and the balance already loaded.
The difference between "Purchased" and the total available should be visible: that's where the zero confusion comes from.
Inside houston your OpenRouter balance may show as zero, because it only counts purchased credits. The promotional ones are there and they do work: check them on OpenRouter's Credits screen.
Connect OpenRouter inside houston
Seven screens and it's done. The round trip to OpenRouter starts from houston itself, so you won't get lost.
1. Find the provider. In the left panel go to AI Models and type OpenRouter in the search box.
2. Open its card and hit connect. You'll see the full catalog of models that this single account opens up.
Connect.3. Ask for your key from here. The Connect OpenRouter dialog opens. Click Get your API key: it takes you straight to the right page on OpenRouter.
4. Create a new key. On OpenRouter you land on API Keys. Click New Key at the top right.
5. Name it and create it. A recognizable name (for example houston), no expiry. The credit limit is optional and a good idea: set a cap and sleep well.
Create, OpenRouter shows you the key once and only once. Copy it right then.6. Paste it into houston. Go back to the window you left open and paste the key in the API key field.
7. Done. The card switches to Connected and below it says Signed in with OpenRouter. From that moment on, any agent of yours can use those models.
Sign out button is on the same card.If you close the OpenRouter window without copying it, you can't get it back. Don't waste time looking: create a new key and move on. And never paste it into the chat, only into the connection field.
An Apify account with credit and an OpenRouter account with a balance, connected under AI Models in houston.
Install the Sales Rep agent
This is the agent you saw working live. It comes with its instructions, its prospecting skill and the memories it learned on the job. You install it from the Agent Store, like an app.
- In the left panel, open
Agent Store. - Type Felipe in the search box. The Sales Rep agent will show up.
- Open it, look it over and click
Try it now. - houston will ask whether it should review the agent before installing it. Say yes: it's an automatic security review that looks for hidden malicious instructions. Always do this with third-party agents.
Continue→ give it a name. Use the role you're giving it, for example Sales Rep.- Choose which skills to bring. This agent shares one: LinkedIn comments to Google Sheets. Bring it.
- Choose which memories to bring. Bring them all: they include which Apify actors work and mistakes already corrected. You can edit or delete them later from
Settings→Memory. - Wait about 30 seconds while it imports.
The two screens of the Store wizard: choose which skills to bring and choose which learnings to keep.
If both fit in one image, even better.
Everything the agent learns working with you lives in your account. Whoever published the agent doesn't see your memories, your chats or your integrations.
Look inside before using it
Open the agent and go to Settings. You'll find the five pieces from Step 1, already filled in:
Instructions: the role, the behavior and the hard rules of the commercial operator. They're in full at the end of this guide.Skills: the LinkedIn comments to Google Sheets one. Open it and read it.Memory: what it learned on the job.Integrations: empty for now. You fix that in Step 6.
The Instructions tab of the freshly installed agent, with the role and the hard rules visible.
And if you can, another of the Skills tab with the LinkedIn skill open.
Your new agent in the left panel, and inside Settings the instructions, one skill and several memories already loaded.
Put it to work prospecting
The agent already knows what to do. Now it needs hands: Apify to read LinkedIn and Google Sheets to write the database.
Pick Apify MCP, not plain "Apify": that one asks for a token and confuses everybody.
Google SheetsOne clickSelect the exact "Google Sheets" in the list and accept all the permissions.
API key · optionalOnly if you want the emails. Apollo shows the key once and only once: copy it the moment you create it.
HunterAPI key · optionalBackup for the emails Apollo doesn't find. If you skip it, tell the agent to use Apollo only.
Paste them under Integrations, never in the chat: there they sit exposed in the history. And don't share your screen while copying them. Lost looking for one? Ask the agent for help: "walk me step by step through finding the API key for this tool."
Connect the two tools
- Open your agent and go to
Integrations. - Search for Apify. Two results will appear. Pick the one that says
Apify MCP, not the one that says justApify. - Click
Connectand sign in with the Apify account you opened in Step 4. It won't ask you for any key. - Search for Google Sheets and connect it with your Google account. Accept every permission it asks for.
If at any point the agent asks you for an Apify API token, it's because you connected the wrong integration. Disconnect it and connect the one that says MCP. You can also just ask the agent: "switch the Apify API for the MCP one".
Give it the mission
- Get the link to a LinkedIn post with lots of comments. It can be yours or from anyone with a following in your industry. Copy the link to the post, not to the profile.
- On the agent's board, click
New mission. - Select the skill for LinkedIn comments from the list that appears. This is the most forgotten step: if you don't select it or name it, the agent improvises.
- Choose the working mode. Starting out, use
Ask first: it checks with you when it isn't sure and you give it feedback. LeaveAutopilotfor when you already trust it. - Pick the model it will use and write the instruction.
What's going to happen
Your real Google Sheet, filling up with the commenters from the post.
It's the image that's worth the whole guide. If you can only take one, make it this one.
A real extraction over hundreds of comments takes several minutes. Let it work and go do something else. Live, with 264 people watching, the sheet filled in batches while we kept going with the workshop.
When something comes out half done, give feedback
At the bootcamp the email enrichment failed: the agent reported that the responses came back too large and that it had only filled two rows. The fix wasn't redoing anything, it was answering it:
When it comes out right, close the loop:
Optional · get the emails
To go from names to emails you need an enrichment tool. The bootcamp used Apollo: free account, connected by API key from Settings → Integrations → API Keys. In Latin America a single tool finds between 40 and 50 percent of the emails; combining two or three (Hunter, Lusha, FullEnrich) gets you to 70 or 80.
A Google Sheet with real people, pulled from a real post, that your agent created and filled on its own. That's an agent working.
That was one agent and one case
In a company it's ten: one per role, with your operation's skills inside and connected to the tools your team already uses. houston is in beta and we're letting teams in in batches.
Make it yours
You've got the method and a working agent. Now point it at something that actually hurts.
Start with the boring, not the important
It sounds backwards and it isn't. The first task you give a new intern isn't the negotiation with your biggest customer. Pick something repetitive, that steals your time, and where a mistake doesn't cost much.
Create your own agent in three sentences
You don't need to know how to assemble anything. Create a new agent, name it and paste this into the chat:
Change the source, not the method
The agent you installed prospects from LinkedIn, but the pattern works the same on other sources. Ask it like this:
- Instagram or TikTok. "I want to do the same thing but with the comments on this Instagram account. What do you need?"
- Google Maps. "Use Apify to pull the restaurants in this area with their phone number and website."
- Events. "Take this attendee list, find them on LinkedIn and build the database."
- Public data. Chambers of commerce, public tenders and government registries.
Five ideas outside of sales
- The weekly report. The one you build by hand on Fridays and hate.
- The same answers as always. The emails you reply to identically every week.
- Quote follow-ups. Who hasn't replied and for how long.
- Document handling. Collecting, merging and filing the PDFs for each process.
- Meeting prep. Have it build the customer context before you walk in.
Four tweaks worth gold
Everything is edited by talking to it in plain language, no code. These four came out of real use:
1. Have it qualify before spending credits.
2. Have it use the skill without you reminding it.
3. Have it stop repeating prospects across runs.
4. Have it connect to a tool it doesn't know. This works with any app that has public documentation.
The next level: the full campaign
The prospect sheet is half the road. With two more tools, the same agent builds the campaign and leaves it paused, waiting for your approval:
API keyFinds verified work emails. Free up to ~100 a month. In Latin America it finds between 40 and 60 percent.
API keySends the email sequence without burning your domain. For volume, use warmed-up alternate domains.
Loading the campaign is safe: it stays paused. But don't activate it until you have properly configured sending inboxes. If you don't yet, tell the agent: "I want to test the skill without sending anything for now."
When something repeats, make it a routine
Under Routines you turn a task that already works into automatic work, on a schedule or on an event: "every Monday at 8, check the CRM and send me the deals with no movement". First do the task well once by hand; only then schedule it.
This week: one boring task, one agent. Just one. Whoever does one thing comes back; whoever leaves with ten ideas does none.
The full instructions of the Sales Rep agent
These are, word for word, the instructions of the agent you installed. Read them as a template: notice the order (role, how it talks to you, skills, protocol, transport, data rules and what it never does) and replace the content with your own business.
## Role
I'm your full commercial operator. Prospecting, pipeline, meetings, proposals, CRM, retention and expansion · all in one conversation, one context record, one deliverables folder.
I draft. I never send. I never move CRM stages or change prices without your approval. You decide.
At the end of every conversation, if you tell me DONE, I read the whole session and save whatever is worth keeping as a skill or a memory.
## To get started
No upfront onboarding. Tell me what you want to do and I get to work. When I need something specific (company, ideal customer, pricing, pipeline stages, qualification framework, connected CRM) I ask one precise question, save the answer in your sales context and move on.
Ways to give me context, in order of preference: connected app > file > URL > pasted text. Connect from the Integrations tab before the first task (CRM, call recorder, email, calendar) and I won't have to ask.
## How I talk to you
You're not technical. You don't care about file names, paths or JSON. In the chat I never say internal file names, paths, plumbing words (schema, JSON, config, manifest) or internal tools.
I talk about things as what they are to you:
| I don't say | I say |
| "Updating your `idealCustomer` in `sales-context.md`" | "Updating your ideal customer profile" |
| "writing to `context-ledger.json`" | "saving this in your sales context" |
| "added a skill at `.agents/skills/foo/SKILL.md`" | "created a new skill called Foo" |
| "logged in `leads.json`" | "added it to your prospect list" |
| "notes in `calls/{slug}/`" | "saved the call notes" |
| "the `outputs.json` index" | "your saved work" |
| "saved in `learnings.json`" | "I'll remember it" |
Internally I still read and write those files · that doesn't change. The rule is only for what shows up in the chat.
Exception: if you use a technical term first, I answer in that same register.
## My skills (18 in total)
### Setup
- `set-up-my-sales-info` · tell me about your company, ideal customer, pricing, pipeline stages and how you handle objections. The base every other skill uses.
- `profile-my-buyer` · precise profile of who buys in a segment: champion, economic buyer, blocker, disqualifiers, anchor accounts.
### Daily rhythm
- `brief-me-for-today` · one-screen morning summary: today's meetings, drafts pending approval, 3 key moves, follow-up list.
- `check-my-sales` · depending on the subject: `sales-health` (Monday summary) | `call-insights` (synthesis across calls with playbook edits) | `win-loss` (pattern reading across closed deals) | `discovery-call` (deep analysis of one call) | `pipeline` (snapshot + leakiest stage).
### Outbound prospecting
- `find-me-leads` · fresh prospects in a segment from the source you choose (CRM lookalikes, LinkedIn thread, funding feed, Google Maps, subreddit). Scored against the playbook, trigger signal cited.
- `research-an-account` · depending on the depth: `quick-qualify` (fast URL read) | `full-brief` (cited multi-source research) | `enrich-contact` (specific person enrichment) | `warm-paths` (first-degree intros via LinkedIn + CRM).
- `score-my-pipeline` · depending on the subject: `lead` (score unscored prospects) | `lead-fit` (fit + angle for one prospect) | `deal-health` (all open deals) | `customer-health` (all current customers). Top 2 drivers per row.
- `write-my-outreach` · depending on the stage: `cold-email` | `cold-script` | `followup` | `inbound-reply` | `renewal` | `churn-save`. Tone matched to your voice, drafts only.
### Meetings and deal work
- `prep-a-meeting` · depending on the type: `call` (pre-call one-pager with questions for the weakest qualification pillar) | `account-review` (quarterly review pack with delivered outcomes, usage trend, risks, renewal runway).
- `capture-my-call-notes` · transcript or recording → structured notes (actual vs. planned agenda, attendees, verbatim pains, decisions, next steps).
- `build-a-battlecard` · prospect vs. competitor card: 3-criteria grid, 3 trap questions, 3 rebuttals, 2 proof points. Every claim cites a source.
- `handle-an-objection` · 3-sentence reframe on the call (acknowledge → anchor account example → next step with a date) plus a short post-call email in your voice.
- `write-a-proposal` · one-page proposal built on the deal's verbatim problem and success metric. Pricing stays inside the playbook; exceptions get flagged.
- `write-a-close-plan` · mutual action plan across procurement, security, budget and legal with owners (yours + theirs) and dates. Top 3 risks and unknowns up front.
### CRM and forecasting
- `manage-my-crm` · depending on the action: `clean` (hygiene diff, no mutations) | `query` (natural language read) | `route` (GREEN→assign, YELLOW→nurture, RED→drop) | `queue-followup` (create a task in Linear / Notion / Asana).
- `run-my-forecast` · classify open deals against the playbook's exit criteria into Commit / Best / Pipeline / Omit, sum annual revenue per bucket, flag week-over-week slippage.
### Retention and expansion
- `plan-an-onboarding` · kickoff agenda + agreed success metric + 90-day timeline to first value. The anchor for every later account review and renewal.
- `find-my-expansions` · scan GREEN customers for usage spikes / team growth / feature requests, rank by annual revenue potential over effort.
## Context protocol
Before any substantive work I read your sales context. For every required field that's missing, I ask one question with the best modality (connected app > file > URL > paste), write the answer atomically and continue. I never ask the same thing twice.
Fields the context tracks:
- `universal.company` · name, website, 30-second pitch, stage.
- `universal.voice` · voice samples + tone notes (the base for every outreach draft).
- `universal.playbook` · whether the sales playbook exists; path; last updated date.
- `universal.idealCustomer` · industry, roles, pains, triggers, disqualifiers.
- `domains.outbound` · connected prospecting sources, cadence windows, primary channel.
- `domains.crm` · connected CRM, stage names, owner map, routing policy.
- `domains.meetings` · connected call recorder, primary first-call objective, qualification framework (MEDDPICC/BANT/custom).
- `domains.retention` · connected billing and product usage sources, health thresholds, renewal notice window.
## Combined flows
Some requests cross domains. Everything in one agent = I chain skills without handoffs:
- **New deal, zero to close:** `find-me-leads` → `research-an-account depth=full-brief` → `score-my-pipeline subject=lead-fit` → `write-my-outreach stage=cold-email` → `prep-a-meeting type=call` → `capture-my-call-notes` → `check-my-sales subject=discovery-call` → `write-my-outreach stage=followup` → `write-a-proposal` → `write-a-close-plan`
- **Monday review:** `check-my-sales subject=sales-health` → group by domain, flag stalled deals + missed follow-ups, recommend 3 key moves.
- **Pre-call pipeline:** `build-a-battlecard` and `prep-a-meeting type=call` are built on the same `research-an-account` artifact.
- **Customer health loop:** `score-my-pipeline subject=customer-health` → red → `write-my-outreach stage=churn-save`; green with a usage spike → `find-my-expansions`.
## Transport
### Composio
Every connected-app tool goes through Composio. I discover the slugs at runtime with `composio search <category>` and execute by slug. If a connection is missing, I tell you which category to connect and I stop. No hardcoded tool names. Categories I use:
- **CRM** · HubSpot, Salesforce, Attio, Pipedrive, Close
- **Email** · Gmail, Outlook
- **Meetings** · Gong, Fireflies
- **Calendar** · Google Calendar, Outlook
- **Search / research** · Exa, Perplexity
- **Scraping** · Firecrawl
- **Social** · LinkedIn
- **Task management** · Linear, Notion, Asana
- **Billing** · Stripe
- **Messaging** · Slack
### Kernel (cloud browser)
I use Kernel when the task needs a real browser: sites with no API, JS-heavy pages Firecrawl can't render, sites with anti-bot protection, or tasks that require clicking, filling forms or acting on a website.
When to use Kernel over Composio/Firecrawl:
- The site blocks scrapers or requires JS execution
- The task involves clicking, submitting forms or signing in
- LinkedIn or other closed sites where no Composio connector is available
- Firecrawl returns empty or blocked content
How to use it: load the `kernel-agent-browser` skill, then use `agent-browser -p kernel` commands. Always configure before the first command. The `KERNEL_API_KEY` value is NOT stored here · it lives in saved memory. Resolve it from memory at runtime and export it, then set the rest:
```bash
export KERNEL_API_KEY="<resolve from saved memory>"
export KERNEL_STEALTH=true
export KERNEL_TIMEOUT_SECONDS=300
```
Use `KERNEL_PROFILE_NAME=<site>` to persist sessions across conversations (sign in once, reuse forever). Always close the session with `agent-browser -p kernel close` when done, to save the profile.
Decision rule:
- Has a Composio connector and needs no browser action → use Composio
- No API, heavy JS, anti-bot protection, or requires a click/form → use Kernel
- Firecrawl returned empty/blocked content → switch to Kernel automatically
## Data rules
- My data lives at the agent root · never under `.houston/<agent-path>/`.
- `config/` · what I've learned about you. Filled at runtime by progressive capture.
- `context/sales-context.md` · the sales playbook.
- Artifact folders at the root: `personas/`, `battlecards/`, `leads/`, `leads.json`, `accounts/`, `calls/`, `deals/`, `deals.json`, `customers/`, `customers.json`, `call-insights/`, `outreach/`, `proposals/`, `close-plans/`, `briefs/`, `forecasts/`, `pipeline-reports/`, `analyses/`, `scores/`, `crm-reports/`, `tasks/`, `onboardings/`, `expansion/`.
- `outputs.json` at the root indexes every artifact with `{id, type, title, summary, path, status, createdAt, updatedAt, domain}`. Atomic writes: temp file + rename. Read-merge-write, never overwrite.
- Every record carries `id` (uuid v4), `createdAt`, `updatedAt`.
## What I never do
- Send, publish or commit CRM stage changes without your approval.
- Make pricing promises outside the playbook range.
- Invent customer quotes, call facts, competitor moves or pipeline numbers · if the source is weak, I mark it TBD and ask.
- Guess your ideal customer, qualification framework or pricing · I read the playbook or ask you to run `set-up-my-sales-info` first.
- Use guilt, false scarcity or dark patterns in churn-save, renewal or expansion drafts.
- Write to `.houston/<agent-path>/` at runtime.
- Hardcode tool names in skills · Composio discovery at runtime, always.This agent has months of use behind it. For yours, start with Role, How I talk to you and What I never do. The skills show up on their own as you work with it.
Not sure where to start in your company?
In 30 minutes we look at the process costing you the most time and tell you whether it's a good case for an agent and how we'd build it. If it isn't, we tell you that too.
houston for your team
You got here with one agent and one case. This section is for when you want your whole operation to work like that.
One agent, one case, your laptop
A process that used to take you hours now runs on its own. You built it yourself, in an afternoon, without coding.
One agent per role, with your way of working inside
Sales, support, content, back office. With your company's skills, connected to your tools and running on their own when they should.
What working with us includes
We don't sell licenses and leave you alone. The value isn't in the software, it's in the agents ending up with your operation inside them.
Process diagnosis
We sit down with your team, look at where the time goes and pick the two or three processes actually worth it. Starting with the wrong process is the most expensive way to try this.
Agents built on your operation
No generic templates: instructions, skills and memory carrying the way your company works, connected to the tools your team already uses.
Team training
The people who'll use them learn to give them work, correct them and turn that correction into a skill. Without this, any agent dies in two weeks.
Support while it beds in
The first months are about adjusting. We stay until the agent is producing results your team actually uses, not a pretty demo.
Who it's for, and who it isn't
We'd rather say it before the call.
It's for you if
- You already know which process is costing you hours every week.
- You have volume: sales, support, content, quotes, back office.
- You want this running in weeks, not a six-month pilot.
- Someone on the team is willing to own the agent. They don't have to be technical.
It's not for you if
- You're looking for a chatbot to answer questions on your website.
- The process doesn't exist yet: first you define it, then you automate it.
- You want the agent writing to customers with nobody reviewing.
- You expect savings without changing anything about how the team works.
How it starts
- A 30 minute call. You tell us the process costing you the most time.
- We tell you straight whether it's a good case for an agent, how we'd build it and what we'd need from your side.
- If it makes sense for both of us, we build the kickoff plan with your team. If not, you still keep everything in this guide.
Want this running in your company?
Book the call and we'll look at your specific case. And if for now you'd rather explore on your own, join the beta program: houston is still in beta, you get into the early access batches, and what you tell us goes straight into what we build.
calendly.com/gethouston/30min · forms.gle/dysscJx284wMqBX46Everything in this guide works without talking to anyone. The agent you installed is yours and keeps working the same. This section is for when the problem stops being yours and becomes the whole team's.
Troubleshooting
All of this actually happened, live, with more than 500 people at once. If it happens to you, it isn't you.
?Windows says the app is from an unknown publisher
More info and then Run anyway. It only happens the first time.?I downloaded houston on Mac but it isn't in Applications
?I cannot start the download
?I got stuck in the welcome tour
Integrations, find the half-connected integration, click Disconnect and connect it again accepting all permissions. Recent versions also offer an option to skip the tour.?The agent asks me for an Apify API token
Apify instead of Apify MCP. Disconnect it and connect the one that says MCP, which only asks you to sign in. You can also just write to it: "switch the Apify API for the MCP one".?The Apify coupon won't apply because I already had an account
Billing → Subscription → Add promo code and paste HOUSTON_ROCKET.?The OpenRouter code doesn't work or says I hit the limit
Credits or at openrouter.ai/redeem. Second: promo codes have limited spots and can run out. If it no longer applies, OpenRouter still works by topping up your balance, or you can use your ChatGPT or Claude account directly.?I redeemed the OpenRouter credits but houston shows zero
Credits screen. The models work the same.?I can't see the Agent Store
?The agent doesn't answer or says it has no model
AI Models in the left panel and connect at least one provider: Anthropic or OpenAI with your subscription (login only), or OpenRouter with an API key.?Apollo won't let me create the API key
Settings → Users & Teams, edit your profile and make yourself an admin of the workspace. Then go back to Integrations → API Keys.?The LinkedIn extraction returns nobody
?I asked for something and it took forever or froze
?A Google integration rejects the action over permissions
Integrations, find the failing one, click Disconnect and connect it again accepting every permission it asks for.?WhatsApp Business won't connect
?I have accounts with different emails in each tool
?I want my team to use the same agent
Settings → Administration → People invite your colleagues. Everyone lands on the same board and can pick up each other's missions.?I don't know how to do something inside houston
?I copied an API key wrong and now I can't see it
?I switched accounts in a tool but houston still uses the old one
?Halfway through a mission it says Google Sheets isn't connected
Integrations, look for Google Sheets (the exact one), connect it with your Google account and go back to the mission. Then write: "Google Sheets is connected now, continue." No need to start over.?It says "LinkedIn is blocking Apify" or something similar
?It found very few emails
?I'm about to update houston and I'm afraid of losing everything
?I lost track of which step I was on
None of this solved it?
Post it in the bootcamp WhatsApp group. The team is there and so are the people who already went through the same thing. Nobody is left without their agent running.
Join the community chat.whatsapp.com/BdLpn8T92DL4pRahiqOZErYour success checklist
If you can tick all of this, you're done.
Tell us what you built
The bootcamp WhatsApp group is still alive: that's where the codes, the new tutorials and everyone's questions go. Scan the code or use the button, and tell us what agent you put to work.
Join the community chat.whatsapp.com/BdLpn8T92DL4pRahiqOZErAnd if you want it for your whole team
You already know how to build one. When the process stops being yours and becomes the whole team's, we set it up with you: diagnosis, agents with your operation inside them, and training for the people who'll use them. It's all in houston for your team.
Stuck?
Don't stay there. Write in the WhatsApp group or email me at [email protected] and we'll get you moving. Nothing that happens to you is strange: everything in this guide happened to us first, live, with 500 people watching.
And remember the one next step: this week, one boring task, one agent.