PROPOSAL STUDIO · OWNER GUIDE

Your proposal generator is online

Open proposals.theagentsoffice.com to use Proposal Studio on your existing Bluehost account. You create the team logins and control access. Staff do not need ChatGPT accounts.

Verification recorded October 12, 2026

The app is live on Bluehost with valid HTTPS and working DNS. Owner sign-in, access restrictions, private-file protection, and a synthetic manual Auto proposal were verified. The two-page PDF preview and download passed the quote-fact and privacy checks.

The agency's dedicated AI project and billing are prepared. Live AI extraction, drafting, and current-context research remain unverified. The owner still needs to save the project API key and complete a live test. End-to-end workflow timing, simultaneous-user capacity, hosted staff revocation, and backup restoration also need representative checks.

This is a dated test record, not a live service-status display.

Updated October 12, 2026. This guide uses Bluehost as the selected host. No Render service is required for this setup.

1. Owner sign-in and recovery

Sign in with your existing owner account at proposals.theagentsoffice.com. Open My profile to check the name, contact email, and phone used on your proposals. To add employees, use Team access. If you forget your password, use the recovery instructions in section 6.

Administrator reference: first installation without an owner

Only use this step for an installation that does not yet have an owner account. Sign in to Bluehost and open cPanel → Terminal. Run these commands one line at a time:

cd "$HOME/tao-proposal-studio"
TAO_DATA_DIR="$HOME/tao-data" .venv/bin/python manage.py create-owner

Leave $HOME as written; it means the hosting account's home folder. The explicit data setting uses the live website's private database. Enter the owner's username, name, contact email, phone, and a password of at least 12 characters. Password characters are hidden; enter the password twice and save it in the agency password manager. Never send passwords in chat. There is no public signup or default password. If an owner already exists, use that account or the recovery command.

2. Connect the agency's AI account

Use Brand & setup in the app to save the API key. You do not need the terminal for normal key entry. Only the owner can view this setup form; employees use their individual Proposal Studio logins.

The app uses the OpenAI API through an agency-owned project. API usage is billed separately from a ChatGPT subscription. The steps below also apply when replacing a key. Keep using the agency's dedicated Proposal Studio project if it is already set up. OpenAI subscription and API guidance.

  1. Sign in to OpenAI Platform with an agency-controlled account and select the dedicated The Agent's Office Proposal Studio project. For a new installation, create that project and arrange API billing first. Limit Platform access to the owner and authorized administrator. Project permissions.
  2. Review billing and spending controls. Check available credits, automatic recharge, project limits, and alerts before normal use. A monthly automatic-recharge limit controls recharge purchases; it is not the same as a project usage hard limit. Alerts alone do not stop spending. Review the controls actually available in your account and whether enforcement is enabled. Spend-limit instructions · API pricing.
  3. Create or copy a new project API key. Open API keys with the intended project selected and create a secret key named tao-proposals-production. A project service account is also suitable. Use an application/project key, not an organization Admin API key. Save the complete secret in your agency password manager when it is shown. Official API-key instructions.
  4. Return to Proposal Studio and open Brand & setup. The AI connection section appears first. Paste the complete key into the masked OpenAI API key field, then click Save API key.
  5. Wait for “API key saved privately.” The field clears after submission and never displays a saved key. Saving does not contact OpenAI or make a paid AI request. The AI configured badge confirms a key is present; a successful quote extraction confirms model access and billing.
  6. Try a synthetic or redacted quote. Check extracted facts, generate a draft, and inspect the PDF before using the app with client information. Review the project's Usage page after the test.

No restart is needed. New settings apply on the next request. Never send the API key in chat, email, or a proposal form. Staff cannot view or change it through the app. To replace a key, use the same masked field; test the replacement before revoking the old key. Revoke an exposed key immediately.

Administrator fallback: private terminal helper

If the app says in-app key setup is unavailable, an authorized hosting administrator can use cPanel → Terminal:

cd "$HOME/tao-proposal-studio"
.venv/bin/python deploy/bluehost/setup-ai.py

Paste the complete key only at the hidden prompt and press Enter. A blank entry cancels. Do not put the key in the command itself. The helper preserves other settings, does not display the key, and makes no AI request. It stops if hidden entry is unavailable.

SettingStarting configuration
AI modelgpt-6.1-sol
Reasoning effortlow
App AI request allowance30 requests per hour per app user; this is not a dollar budget.
Staff accessIndividual app logins; no API key or ChatGPT account required.

Extraction, drafting, and optional current-context research can each use an AI request. Document length, output length, and web search affect cost. Check actual project usage after a few representative examples, then choose an allowance that fits the agency's use.

Client information: extraction sends the uploaded quote's content to the AI provider. The app requests store:false, but that does not mean zero provider retention; standard abuse-monitoring retention and documented exceptions can still apply. Review the agency's handling requirements and OpenAI data controls before normal use with client information. Current-context research uses the selected coverage, industry, and state categories.

3. Create your first proposal

  1. Start with the carrier quote. Drag in a PDF, PNG, or JPG, or choose manual entry. Uploads permit up to three files and 15 MB combined.
  2. Review the extracted facts. Confirm the insured, premium, separate fees, limits, deductibles, payment terms, effective date, and each quoted option. Resolve missing information against the carrier quote.
  3. Choose the presentation. Show quoted dates, show “TBD,” or hide dates. Carrier names stay hidden for auto and trucking; other lines let you choose. Enable current, sourced context when useful.
  4. Generate and review the wording. Use AI after the key is connected, or continue without AI for a basic draft. Keep explanations consistent with the actual quote.
  5. Inspect the PDF and download it. Check the logo, amounts, page layout, cited context, and your contact details before sending it to the insured.

The goal is to complete this flow in under five minutes with typical quotes. Large uploads, web research, and the time needed to check quote details can make it longer. See the dated verification block for the completed checks. Time representative quotes with your team before treating five minutes as a reliable expectation.

4. Add and remove staff access

  1. Sign in as owner and open Team access. Create a separate username and password for each person. Enter the name, email, and phone they use with clients.
  2. Share the app address and individual credentials through your secure process. Staff should verify My profile and change their temporary password. The app uses each person's contact details on proposals.
  3. Disable an account as soon as access should end. Use Team access. The app revokes existing sessions and blocks new actions. Resetting a password also revokes prior sessions.

Staff can access their own saved proposals; the owner can access all proposals. Deactivation cannot retract PDFs already downloaded or information already copied. Keep your owner password, hosting account, private source package, OpenAI key, and original proprietary prompt private.

The original master prompt is not deployed or sent to AI. The server implements the required rules and supplies a narrower writing instruction to AI. Hosting administrators and source-repository collaborators can access the implemented rules, so limit those permissions to trusted administrators.

5. Review the launch checks

Use this checklist before inviting staff and after significant changes. The dated verification block records completed checks. Use a synthetic or redacted quote for anything still unverified:

6. Backups, recovery, and updates

Back up saved records

In cPanel Terminal, use the database backup helper with a new filename each time:

cd "$HOME/tao-proposal-studio"
TAO_DATA_DIR="$HOME/tao-data" .venv/bin/python backup.py "$HOME/tao-deployment/backups/studio-2026-10-12-first.sqlite3"

Replace the dated filename for subsequent backups. The helper creates a consistent SQLite database copy and refuses to overwrite an existing destination. It backs up the database only. Also preserve the private security.key, any custom logo.png, configuration, and application version. Store encrypted copies in a separate agency-controlled backup location.

Arrange regular backups and a tested restore with the administrator. A backup on the same hosting account is not sufficient protection against account loss. For recovery, the administrator must stop new app requests, let active requests finish, restore verified data and its key, and handle SQLite WAL/journal files correctly.

Recover an owner password

cd "$HOME/tao-proposal-studio"
TAO_DATA_DIR="$HOME/tao-data" .venv/bin/python manage.py reset-owner-password

Enter the owner username and new password directly at the prompts. This revokes previous owner sessions. There is no public password-recovery page or default password.

Change the API key or application

For a key rotation, create a replacement in the same project, save it through Brand & setup → AI connection, test a new request, then revoke the old key. The private terminal helper is an administrator fallback. Revoke an exposed key immediately. CGI reads changed settings on the next request; no Passenger or server restart is needed.

Software updates are handled by the administrator using the private deployment helpers. Public assets are copied separately, so changing a private stylesheet file alone does not update the website. The updater verifies earlier file versions and preserves data and secret settings.

If AI fails, check model access, API billing/credits, spending controls, and the app's hourly request allowance. If the website fails, record the time and visible error for the administrator. Do not include a password, API key, or client quote in a support screenshot.

7. What is hosted and what it costs

The app runs on the agency's existing Bluehost WordPress Choice Plus Hosting account, through a dedicated HTTPS subdomain and a private Python 3.12 installation. The marketing site's content stays separate. CGI handles the app; the unused Passenger registration is disabled. The original proprietary prompt is excluded from deployment.

The current setup adds no separate app-hosting service. The aim remains $0 in added hosting charges while the existing plan supports the workload. Your existing Bluehost renewal still applies, and OpenAI API usage is billed separately. More demanding workloads may require a future hosting decision after measurement.

Bluehost documents limits on simultaneous processes and SSH connections for shared accounts. The app shares these resources with other account activity. API requests can take longer than a normal page load, so capacity and timeout checks are part of launch testing. Bluehost process limits · Bluehost Python/CGI support.

Keep owner access to Bluehost, the domain/DNS account, the private code repository, the OpenAI project, and the backup destination. Employees need only the app address and their own login.