Inspiration
People who work auction lots, detail cars, or do reconditioning often have real hands-on skill but no clear answer to "what should I learn next?" Which skill, which credential, and where to start in Atlanta is hard to find, and a lot of career advice online is generic or makes up numbers. We wanted a guide that meets people in a text thread and only says what it can source.
What it does
WrenchPath ATL is a career navigator for lot workers, reconditioning technicians, students, and people entering auto service in Atlanta.
- Asks a few plain questions: current work, skills, goal (vehicle inspector, reconditioning technician, automotive service technician, or EV-related work), general area or ZIP, and time per week.
- Returns a short, personalized plan: skills to build, a next step, and links to sources.
- Understands commands (START, PATH, SKILLS, TRAINING, EV, PROGRESS) and natural questions. You can correct an answer at any time.
- Says "I don't have that" about pay, tuition, openings, class times, and eligibility instead of guessing. It never awards credentials or promises a job.
How we built it
We connected several services around one shared conversation:
- React, Vite, and TypeScript power the onboarding website.
- Bun, TypeScript, and Photon Spectrum handle incoming and outgoing iMessages.
- Node.js and Fastify provide the AI service.
- Claude powers the career conversation and personalized guidance.
- ElevenLabs transcribes voice recordings and generates spoken replies.
- Local JSON storage preserves conversation history, worker profiles, roadmaps, and learning progress. Both voice and text use the same AI endpoint and worker context. That allows someone to describe their experience in a voice note and ask a follow-up by text without starting over. We added explicit voice-processing consent, persistent reply preferences, audio validation, and text fallback when speech generation or delivery fails. We also process messages in order within each conversation and prevent duplicate voice events from repeating paid processing. For the hackathon demonstration, we made the website accessible through a temporary public tunnel to our local setup. The current demo still depends on the host Mac remaining awake and connected.
Challenges we ran into
-Merging our separate branches on our github repo into one and connecting Photon, Claude, and ElevenLabs required fixing configuration mismatches, timeouts, and message ordering. Voice notes added audio-format conversion and playback challenges. -We also had to preserve conversation memory, reduce duplicate processing, and keep training recommendations grounded in our sources. Finally, making the demo accessible remotely required a public link and individual invitations, while the backend continued running on our Mac.
Accomplishments that we're proud of
- One navigator powers both the website preview and the iMessage agent, and it can be tested without sending a single real message.
- 38 automated tests, including a fact check that fails if any reply links outside our four sources or states a dollar amount, wage, program length, or partnership.
- A mobile-first site that works down to a 320px-wide screen, with keyboard navigation, large tap targets, and readable contrast.
What we learned
We learned that a useful AI application depends on much more than its model. The surrounding code must decide what information to save, which actions are valid, how to handle failures, and when to ask for clarification. We also learned to distinguish different kinds of evidence. Automated tests can verify application behavior, but real messaging tests are necessary to confirm delivery and audio playback. Neither proves that career guidance improves employment outcomes; that requires feedback from workers over time. Finally, we learned how much preparation an independent team demo needs. Clear instructions, participant access, and a working public link matter just as much as the pitch itself.
What's next for WrenchPath ATL
Inspiration
We built WrenchPath ATL around a simple question: how can someone turn the automotive experience they already have into a clearer next career step?
A tire-shop worker may have years of hands-on experience but still be unsure how to move toward vehicle inspection, automotive service, reconditioning, or EV service. Finding a starting point becomes harder when training must fit around work and limited study time.
We wanted workers to explain their situation in their own words and receive guidance through a familiar tool. That led us to iMessage, with support for both text and voice notes.
What it does
WrenchPath ATL is a conversational automotive career guide. It asks about a worker’s experience, goals, and learning constraints, then uses that information to suggest a learning path.
For example, a worker can say:
“I have two years of tire and oil-change experience, want to become an EV technician, and can only study on weekends.”
WrenchPath uses those details in the conversation and remembers them during follow-up questions. It distinguishes reported experience, areas the worker says they have not studied, and skills that still need clarification.
Our MVP includes:
- Personalized roadmaps: ordered learning milestones and a concrete next step.
- Career exploration: guidance across vehicle inspection, reconditioning, automotive service, and EV service.
- Atlanta-area training resources: suggestions from a small curated catalog, with official source links and questions to ask providers.
- Skills Passport: saved, self-reported learning progress that workers can review by messaging the agent.
- Two-way voice notes: workers send recordings and receive spoken responses.
- Reply preferences: workers can choose text-only replies, including after sending audio.
- Invited onboarding: registered demo participants use the website to request a welcome message and continue in iMessage.
Successful voice conversations receive audio replies; typed messages receive text. If speech generation or audio delivery fails, the system attempts a text fallback.
WrenchPath supports career exploration and learning. It does not verify qualifications, award certifications, or guarantee employment.
How we built it
We organized the project into a website and two communicating services.
The React and Vite website, written in TypeScript, introduces WrenchPath and handles invited-demo onboarding. Each invitation is tied to a registered participant’s phone number.
The Photon backend, built with Bun and TypeScript, uses Photon Spectrum to receive and send iMessages. It validates incoming messages, maintains conversation ordering, and forwards worker messages to our AI service.
The AI Agent, built with Node.js, Fastify, and TypeScript, uses Claude for conversation and structured information extraction. Application logic assesses reported skills, generates roadmaps, selects catalog resources, and records supported progress updates. Local JSON storage preserves the worker’s conversation and profile.
For voice, ElevenLabs transcribes the incoming recording. We send the transcript through the same AI endpoint used by text messages, then synthesize the response using ElevenLabs. Audio conversion prepares recordings for transcription and outgoing iMessage playback.
Both modalities share the same worker context, so switching between typing and speaking does not create a separate profile.
For remote demonstration, we exposed the built website through a Cloudflare Quick Tunnel. The backend and AI service still run on the host Mac. This gives teammates a public demo link, but it is temporary hosting rather than an independent cloud deployment.
Challenges we faced
Reliable communication between services
Early integration exposed configuration mismatches and a backend timeout that was too short for the AI workflow. We standardized environment variables, adjusted timeout handling, and queued messages per conversation so a follow-up would not overtake an earlier request.
Voice formats and delivery
Receiving an audio attachment was only the beginning. We needed to validate file types, enforce recording limits, convert audio, handle empty transcriptions, and return something the recipient could actually play.
Live testing also helped us improve the interaction. We initially returned both text and audio for voice messages. After feedback, we changed successful voice replies to audio only, while keeping text available as a fallback.
Avoiding repeated work after failures
A missing acknowledgment does not necessarily mean that a message or AI request failed. Repeating it automatically could create duplicate replies or additional API charges.
We added bounded retries for cached text replies and persistent claims for attempted voice processing. These reduce repeated work, although the MVP does not guarantee exactly-once delivery.
Making recommendations responsibly
We needed to keep suggestions useful without inventing information. Our training catalog uses researched source material rather than live web searches during conversations. Unknown costs, schedules, prerequisites, and eligibility remain questions to verify with the provider.
For EV guidance, we also separate safety awareness from technician qualification. A completed learning milestone does not authorize high-voltage work.
Preparing a demo other people could use
Making the website public did not automatically make the whole application independent of our machine. We had to connect the public website to the local backend, prepare separate participant invitations, and document the recording steps and operating requirements.
Accomplishments we’re proud of
We tested a complete iMessage experience with real messages: an initial career conversation, remembered follow-up details, a learning roadmap, training suggestions, and saved self-reported progress.
We also confirmed that:
- Incoming voice recordings produced playable spoken replies.
- Follow-up conversations retained weekend study availability.
- Typed messages received text-only responses.
- The updated voice flow returned audio without a duplicate text reply.
Our core QA run passed 174 AI Agent tests and 74 backend tests, along with typechecks, builds, and a simulated HTTP integration test for ordered messages and saved conversation memory. An additional website gateway test checked that the public demo route did not expose source files, environment files, or the AI endpoint.
What we learned
We learned that a useful AI application depends on much more than its model. The surrounding code must decide what information to save, which actions are valid, how to handle failures, and when to ask for clarification.
We also learned to distinguish different kinds of evidence. Automated tests can verify application behavior, but real messaging tests are necessary to confirm delivery and audio playback. Neither proves that career guidance improves employment outcomes; that requires feedback from workers over time.
Finally, we learned how much preparation an independent team demo needs. Clear instructions, participant access, and a working public link matter just as much as the pitch itself.
What’s next for WrenchPath ATL
We want to pilot WrenchPath with automotive workers and learn whether it helps them identify and take a useful next step.
Our next development priorities are:
- Expand and regularly review the training-resource catalog.
- Improve mobile onboarding and accessibility through device testing.
- Move beyond the Mac-dependent demo to persistent hosting.
- Strengthen storage, delivery recovery, monitoring, and privacy controls.
- Refine the conversation using worker feedback, including reducing repetitive questions.
- Add more source-linked Atlanta training options as providers confirm details Our goal is to make automotive career exploration easier to start and easier to continue, while keeping the worker’s experience and circumstances at the center.
Built With
- and
- bun
- claude
- cloudflare
- elevenlabs
- fastify
- imessage
- node.js
- photon-spectrum
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.