ARC — User Manual — MANUAL-ARC-01

ARC User Manual

Complete end-user manual for the ARC freelance CRM application. Covers every feature, every workflow, and every page. Derived from arc/docs/05_USER_MANUAL.md and the implemented ARC application at C:/repos/arc/.

Document ID
MANUAL-ARC-01
Version
1.0
Source
arc/docs/05_USER_MANUAL.md
Audience
End Users
Contents

01 — Getting Started

MAN-01-01 Logging In
  1. Open your browser and navigate to http://localhost:3000
  2. Enter your username and password
  3. Click "Log In"
  4. You will be redirected to the Dashboard

Your session stays active for 24 hours. After that, you will be prompted to log in again.

MAN-01-02 First-Time Setup

After your first login, go to Settings to configure:

  1. Google Integration — connect your Gmail and Google Calendar. This is required for email indexing, email drafting, and calendar sync features.
  2. Language — choose Polish (PL) or English (EN) for the interface and exports.
  3. Agent Settings — review default cron schedules. Email sync default is every 15 minutes. Action scoring default is every 1 hour.

02 — Dashboard

Your home screen. Everything that needs your attention, in one view.

MAN-02-01 Priority Actions

The top section of the dashboard shows your most urgent action items, ranked by AI-calculated priority score (1-100). Higher score = more urgent.

Action TypeWhat It Means
Response Pending (Client)You sent something, client hasn't replied. Ball is in their court.
Response Pending (Me)Client replied or sent something. You need to respond.
Follow-upNo communication for a while. Time to check in.
Invoice DueAn invoice is approaching or past its due date.
Project StartA project has been accepted and needs to start.
Offer PendingAn offer was sent but no decision from client yet.

Use the "Show All" toggle to switch between top-priorities view (default) and the complete list of all pending actions.

MAN-02-02 Project Status Grid, Calendar Widget, Email Activity, Financial Summary
SectionWhat It ShowsInteraction
Project Status GridAll active projects as cards with color-coded status badgesClick any project card to go to its detail page
Calendar WidgetNext 7 days of calendar eventsClick "View Calendar" to open full calendar
Recent EmailsLast 10 indexed emails with sender, subject, and sentiment indicatorClick any email to open the thread
Financial SummaryOutstanding invoice total, received this month, pending paymentsClick figures to go to Finance section

03 — Managing Clients

MAN-03-01 Adding a New Client
  1. Go to Clients in the sidebar
  2. Click "New Client"
  3. Fill in: Name (required), Primary Email, Additional Emails, Notes
  4. Click "Save"
MAN-03-02 Configuring Email Matching

Email matching tells the system which Gmail messages belong to this client. Without correct matching configuration, emails will appear as "unassigned".

  1. Open the client's detail page
  2. Click the Configuration tab
  3. Add specific email addresses, e.g. john.smith@acmecorp.com
  4. Add wildcard patterns for domain-wide matching, e.g. *@acmecorp.com
  5. The email indexer uses these on every sync cycle

Wildcards use * to match any characters. Example: *@company.com matches all addresses at that domain, including subdomains if the pattern is broad enough.

MAN-03-03 Client Detail Tabs
TabContent
OverviewContact info, notes, creation date, summary statistics
ProjectsAll projects for this client with status badges
EmailsAll indexed email threads involving this client
ConfigurationEmail address and wildcard pattern management

04 — Managing Projects

MAN-04-01 Creating a Project
  1. From a client's detail page, click the Projects tab
  2. Click "New Project"
  3. Fill in: name, description, estimated value (PLN), project type
  4. The project starts in "Lead" status
MAN-04-02 Project Status Meanings
StatusMeaning
LeadInitial contact, no commitment made yet
Talks InitializedConversation started, interest expressed
Offer SentYou have sent a formal offer, awaiting client decision
Offer AcceptedClient accepted the offer, project starting soon
In ProgressActive work underway
ReviewWork delivered, awaiting client review and feedback
CompletedProject finished, all deliverables accepted
On HoldTemporarily paused, reason should be noted
CancelledProject cancelled by either party

The AI agent automatically infers status changes based on email analysis (status_inferrer cron, every 2 hours). You can always override manually.

MAN-04-03 Project Detail Page Layout
SectionLocation on PageContent
Details panelLeft sideStatus badge, description, estimated value, start date, deadline
Deadlines & EventsUpper rightCalendar events scoped to this project (flat list, not calendar view). Create, edit, and delete events here.
ActionsLower rightAI-scored action items for this project. Priority scores shown.
MAN-04-04 Project Deadlines & Events

Add project-specific deadlines, meetings, and reminders from the project page. These appear both here and on the main Calendar page.

  1. Click "+ Add" in the Deadlines & Events section
  2. Fill in: Title (required), Type (deadline/meeting/reminder), Start date/time (required), End date/time (optional), Description
  3. Click Save. The event appears in the list and syncs to Google Calendar.

Use the pencil icon to edit an event, or the trash icon to remove it.

Deleting from the project page removes the event from the ARC database. The event may remain in your Google Calendar — delete it there separately if needed.

05 — Email Features

MAN-05-01 How Email Indexing Works

ARC automatically connects to Gmail and indexes your emails every 15 minutes (configurable).

What HappensDetail
Emails fetchedAll messages matching client email patterns since last sync
Gmail label added"UV-Indexed" label applied to processed messages
Client matchedFrom/To address checked against all client email patterns and wildcards
Unassigned emailsEmails with no matching client shown with orange "unassigned" badge
Sent emails indexedYour own sent emails are also stored (used for AI writing style learning)
Nothing deletedARC never deletes, moves, or changes your Gmail messages (only reads and labels)
MAN-05-02 Manual Sync & Email List

To trigger an immediate email sync without waiting for the next cron cycle:

  1. Go to Emails in the sidebar
  2. Click the Sync (refresh icon) button in the top-right of the email list
  3. The icon spins while syncing. The list refreshes automatically after completion.

Each email thread card shows a pink pill with the client name if matched, or an orange "unassigned" badge if no client was found.

MAN-05-03 Sentiment Indicators

Each email is analyzed by AI for emotional tone. Sentiment badges appear on the email list and within threads.

SentimentColorMeaning
positiveGreenHappy, satisfied, approving
neutralGrayInformational, standard communication
negativeRedUnhappy, complaint, concern expressed
urgentAmberTime-sensitive, requires immediate action
MAN-05-04 Getting AI Email Reply Suggestions
  1. Open any email thread from the Emails page
  2. Click "Suggest Reply" in the thread sidebar
  3. The AI reads the full thread context, the project status, and samples of your past sent emails to match your writing style
  4. A draft appears in the text area below
  5. Edit the draft freely, then click "Send" to send via Gmail, or "Save Draft" to save without sending

06 — Calendar

MAN-06-01 Calendar Overview

The Calendar page shows all your ARC-related events in FullCalendar view. Switch between Month, Week, and Day views. Events are color-coded by type (deadline, meeting, reminder).

All events are bidirectionally synced with Google Calendar:

  • Events you create in ARC appear in Google Calendar immediately
  • Events in Google Calendar are pulled into ARC every 30 minutes
MAN-06-02 Creating Events Manually
  1. Click "+ Add Event" in the top-right of the Calendar page
  2. Fill in: Title (required), Type, Start date/time (required), End date/time (optional)
  3. Event is saved locally and synced to Google Calendar
MAN-06-03 Parse from Emails (AI)

ARC can automatically read your recent email threads and extract meeting dates, deadlines, and follow-ups mentioned in conversations.

  1. Click "Parse from emails" (envelope icon) on the Calendar page
  2. Claude AI reads the last 7 days of your indexed email threads
  3. New events are created in Google Calendar and shown on this page
  4. Existing events that were mentioned as cancelled/irrelevant may be removed

This also runs automatically every 60 minutes in the background. Already-processed threads are skipped, so no duplicates are created.

07 — Offers

MAN-07-01 Creating an Offer
  1. From a project page, click "New Offer"
  2. Click "AI Suggest Steps" to get AI-recommended project phases (optional but recommended)
  3. The AI analyzes your project description and historical offers to suggest 5-7 steps
  4. Edit the table: change names, descriptions, hours, hourly rates
  5. Add rows with the "+" button, remove with the trash icon (maximum 15 rows)
  6. The grand total calculates automatically (sum of hours x hourly rate per row)
  7. Click "Save"
MAN-07-02 Exporting to PDF
  1. Open the offer
  2. Select a template from the dropdown
  3. Click "Export PDF"
  4. PDF downloads with your template design and all offer data filled in
MAN-07-03 Editing Templates

Offer templates use HTML and CSS. Use the code editor with these variable placeholders:

VariableFilled With
{{client_name}}Client company name
{{project_name}}Project name
{{steps_table}}Full rendered HTML table of offer steps
{{total}}Grand total amount (formatted, in PLN)
{{date}}Today's date
MAN-07-04 Offer Versioning

Every time you save an offer, a new version snapshot is created. No old version is ever deleted. To view previous versions, click the "Version History" button on the offer detail page and select any past version.

08 — Invoices

MAN-08-01 Creating and Managing Invoices
  1. From a project or offer page, click "Create Invoice"
  2. If linked to an offer, line items are pre-filled from the offer steps
  3. Review the AI Analysis panel for any suggestions (optional button)
  4. Set the due date and payment terms
  5. Click "Save"

Invoice Status Lifecycle

StatusMeaningHow Set
DraftCreated but not yet sent to clientDefault on creation
SentInvoice delivered to clientManual status change
PaidPayment receivedAutomatically when bank transaction is matched
OverduePast due date, not paidAutomatically when due_date passes
CancelledInvoice voidedManual status change

09 — Finance

MAN-09-01 Importing Bank Statements
  1. Go to Finance > Import
  2. Drag and drop your bank CSV file, or click to browse. Supported: Wise, PKO BP, mBank formats.
  3. Review the parsed preview table
  4. Click "Import". Transactions are saved. AI matching runs automatically.

Bank transactions are append-only. Once imported, they cannot be modified or deleted. Re-uploading the same file will not create duplicates (deduplication by transaction reference).

MAN-09-02 Finance Section Tabs
TabContent
ImportCSV upload interface with preview
TransactionsAll imported transactions with match status (matched/unmatched/pending)
PaymentsPer-project payment status: invoiced vs. received, outstanding amounts
MonthlyMonthly income analysis: bar chart (trend), pie chart (client distribution), table
TaxPeriod selector, Polish tax report format, CSV/PDF export in PL or EN

10 — Settings

MAN-10-01 Settings Tabs
TabContent
ProfileChange your password
Google IntegrationConnect / disconnect Google account. OAuth2 flow. Gmail + Calendar authorize separately. Your Google password is never stored.
AgentCron schedule configuration: email sync interval, action scoring interval
LanguageSwitch UI between Polish and English. Affects all text and report exports.
MAN-10-02 AI Prompt Management

Go to Settings → AI Prompts to customize how the AI behaves. Each prompt is displayed in a collapsible card with a monospace text editor.

BadgeMeaning
Blue "customised"You have a saved custom version active for this prompt
Amber "unsaved"You have typed changes but not yet saved them
(none)Using the system default prompt

Prompts you can customize:

  • Sentiment Analysis
  • Email Reply Suggestion
  • Offer Step Suggestion
  • Invoice Analysis
  • Action Priority Scoring
  • Project Status Inference
  • Parse Calendar Events from Emails

Click Save to activate your custom prompt. Click Reset to revert to the system default. Changes take effect on the next AI call (no restart required).

11 — Gmail Backfill & Auto-Discovery

Import your historical Gmail and automatically discover client contacts.

MAN-11-01 Starting a Backfill
  1. Go to Settings → Gmail Backfill
  2. Select how far back to import: 1, 3, 6, or 12 months
  3. Click "Start Backfill"
  4. Watch the progress bar. For large mailboxes this may take several minutes.
  5. Only one backfill runs at a time. Re-running the same range skips already-imported emails.
MAN-11-02 Reviewing Discovered Contacts

After backfill completes, ARC analyzes all email addresses seen in your mailbox with a two-step process:

  1. Obvious non-business addresses (noreply, newsletters, automated notifications) are filtered automatically without using AI.
  2. Remaining candidates are scored by Claude AI for business relevance in a single batch.

The review screen shows addresses grouped by suggested client name with confidence scores. For each group:

  • Edit the suggested client name if needed
  • Check the box to include it in the batch creation
  • Use "Merge with existing" if the address belongs to a client already in the system
  • Leave unchecked to ignore

Click "Create Clients". All approved groups are created as clients. All historical emails from those addresses are automatically linked to the new client records.

12 — Important Notes

MAN-12-01 Data Safety Guarantees
Data TypeGuarantee
Gmail emailsARC only reads and labels. Nothing is deleted or moved in Gmail.
Indexed email recordsNever deleted from the ARC database. Permanent records.
Bank transactionsAppend-only. Never modified or deleted after import.
Invoices and OffersNo hard-delete. Cancelled/archived status used instead.
All other dataSoft-delete pattern. Records are deactivated, not removed.

Regular database backups are recommended. All data lives in the PostgreSQL container volume. Run pg_dump on a schedule appropriate for your usage.

AI suggestions (email drafts, offer steps, action items, calendar events) are always proposals. You review and control everything before it is saved or sent.