Project Info
Inspiration
Tradespeople lose hours every week to “back office” work: calls/texts, finding leads, checking whether a job is even feasible, and tracking supplies. We wanted to build something that makes a solo contractor feel like they have an office manager so they can spend their time on the work they’re actually paid (and proud) to do.
What it does
Crewly is an AI-powered operations layer for blue-collar pros. Our framework: Poke/Message onboard tradesperson orchestrates everything Voice Agent handles incoming calls from potential clients schedules appointments gives quotes based on materials and situation Inventory Agent keeps track of current inventory with cost looks at cheapest prices using BrightData reorders low inventory using BrowserBase Stagehand Outreach Agent looks on sites like Nextdoor and Craigslist to get leads on potential clients using BrowserBase Stagehand Marketing Agent using OpenAI API to generate business cards and brochures Logging Agent keeps track of client correspondence and customer satisfaction Mapping Agent feasibility and ordering of tasks tracking scope of outreach Website Agent uses Vercel and OpenAI API to spawn and deploy company websites Document Agent generates and signs documents
How we built it
We built Crewly as a tool-driven agent system: a chat interface orchestrates an MCP tool server that exposes business actions like feasibility checks, pricing floor calculation, and inventory logic. We used structured tool inputs/outputs so the agent can reliably chain steps: collect job details → validate feasibility → estimate a minimum viable price → propose next actions. We also added Modal configuration within our MCP to allow for our agents to deploy secure and concurrent sandboxes to run code in.
Challenges we ran into
Tool wiring and reliability: making sure the agent passes the right units/types (miles vs meters, hours vs minutes). Environment + auth issues: handling missing API keys and avoiding circular imports in a multi-module tools package. Especially in handling environment with fragile dependencies, it was easy to run into issues when one part of the workflow was not properly set up. Keeping outputs safe and consistent: ensuring tools return predictable outputs.
Accomplishments we're proud of
A working end-to-end flow from a single message to actionable ops steps. Modular tools that are easy to extend (distance validation, concurrent sandbox runs, inventory hooks). Clean tool semantics + documentation so the agent behaves more like a real assistant and less like a demo.
What we learned
Tool design matters as much as the model: clear names, tight schemas, and good docstrings dramatically improve correctness. “Ops” is a chain, not a single feature—small automations compound into real time saved. Debuggability is everything: structured outputs and health checks make iteration fast.
What's next
Generalize beyond trades into any contractor's staff team to lead intake, quoting, scheduling, follow-ups, lightweight CRM, and parts/procurement plus tighter integrations (maps, calendars, messaging) so the AI can run more of the workflow autonomously.
🛠️ Crewly
AI Operations Copilot for Tradespeople
Crewly is an AI-powered operations layer built for blue-collar professionals — plumbers, electricians, HVAC technicians, pest control providers, landscapers, and independent contractors.
Tradespeople spend too much time answering calls, responding to texts, searching for jobs, checking feasibility, tracking supplies, and ordering parts. Crewly automates the back office so tradespeople can focus on the work.
🚀 What Crewly Does (MVP)
Crewly is a modular, multi-agent system that helps trades professionals:
- 📞 Handle incoming calls and texts (AI receptionist)
- 🔎 Proactively find new job opportunities online (lead discovery)
- 🗺️ Check travel feasibility before accepting jobs (distance + ETA)
- 📦 Track inventory and material usage (auto-deplete supplies)
- 🌐 Compare supplier pricing and find parts (browser reminders + search)
- 📱 Perform outreach via messaging agents (follow-ups + booking)
🧠 How It Works
Crewly uses an orchestration layer that coordinates specialized agents and MCP tools.
Tradesperson
↓
Crewly Orchestrator
↓
Specialized Agents + MCP Tools
Each capability is implemented as an atomic, independently callable tool.
Analysis
View
Metric
- 8
- 8
- 7
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- CSSIn code
- FastAPIIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- TypeScriptIn code
- OpenAIClaimed
- VercelClaimed
7 of 9 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
152 KB
Source files
26
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
wndyx/Crewly
34 files · 194 KB · @ 1283b79
Structure
Interface
1 file · 3%Screens, components and styles rendered to the user.
Application logic
11 files · 32%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python57%
- TypeScript14%
- JavaScript11%
- Markdown7%
- CSS6%
- HTML5%
- Other (1)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
poke-mcp/requirements.txt
pypi · 11- anthropic
- claude_agent_sdk
- claude-agent-sdk
- fastapi
- fastmcp
- imessage-reader
- mac-imessage
- modal
- pyobjc-framework-AddressBook
- requests
- uvicorn
website-spawn-mcp/package.json
npm · 6- @modelcontextprotocol/sdk
- dotenv
- zod
- +3 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.