Inspiration

I'm a Computing student working toward Formula Student in Austria as a stepping stone into motorsport engineering, and one thing that keeps coming up when I talk to people involved in university racing teams is how much unglamorous, repetitive work goes into just finding sponsors. Cold-calling local businesses, one by one, is a real bottleneck for teams that would rather be spending that time on the car. When I saw CALL-E could turn a script into an agent that actually places phone calls and returns structured results, this felt like an obvious, honest use case, not a demo built to impress, but something I'd genuinely want to use myself once I'm on a Formula Student team.

What it does

fs-sponsor-outreach reads a CSV of prospective sponsor contacts name, phone number, region and places one outbound call per contact through CALL-E. Each call introduces the team, gauges the sponsor's interest, and if they're interested, asks for the best way and time to follow up. The result isn't a raw transcript you have to read through, it's structured data (interest level, contact method, notes) that a team could turn into a shortlist in minutes instead of hours of manual dialing.

I also built a small results dashboard, styled like an F1 pit-wall timing screen, since that's a visual language I've been building out across my own portfolio work. Each contact renders as a row with a sector-progress track showing how far the call got, color-coded by outcome.

How I built it

The core is a Python CLI script that wraps CALL-E's own calle CLI directly, calle call start to place a call, calle call status to poll for the structured result, rather than building an AI-agent wrapper around it. I chose this path deliberately: it's a simpler, more testable integration, and it still genuinely calls CALL-E at runtime rather than just referencing it.

I contributed it as an app in CALL-E's community repository (apps/python/fs-sponsor-outreach/), including a README documenting setup, usage, a dry-run mode, side effects, and, importantly, cancellation/rollback expectations, since this tool places real outbound calls.

Challenges I faced

The biggest early obstacle was regional: CALL-E's supported recipient regions don't currently include Austria (where my actual Formula Student target sponsors would be) or Ghana (where I'm based). That forced an honest reframe, instead of building something narrowly for my own situation, I generalized it into a tool any student racing team could point at their own sponsor list, and tested it with a consenting contact in a supported region instead.

I also ran into a real privacy consideration I hadn't planned for upfront: my first draft printed full phone numbers to the terminal and wrote them unmasked into the results file. Since this project (and its demo video) is public, I went back and masked phone numbers in both the terminal output and any data shown publicly, and made sure the real results.csv which contains a real person's number, never gets committed to the public repository, only a redacted copy does.

What I learned

Working against a live third-party API/CLI I didn't control, reading its actual tool schemas instead of assuming behavior, and thinking properly about consent and data handling before publishing anything, not just after someone points it out. It also gave me real practice with the fork → branch → PR workflow against someone else's contribution guidelines, which is exactly the kind of experience I've been trying to build toward open-source contribution more broadly.

Built With

Share this project:

Updates

Submission history