Juanita Soranno
connect@jsoranno.com

Portfolio · AI-built

I build the tools my own week needs. Then I help teams build theirs.

Reading Rainbow shelf viewGridcraft cross-stitch chartHireRewards sign-up page

I'm Head of AI Impact at Overclock. I help teams close the gap between rolling out AI and seeing it pay off, by removing the friction from what they already do.

If your team is somewhere between “where do we start?” and “how do we make this actually useful?”, I'd love to connect, preferably over coffee.

A little about me

Hi, I'm Juanita.

I lead with relationships and drive straight to the point. I'm a big-picture operator — I'd rather find the shortest line to the outcome than admire the process, and I have no patience for red tape. It's the same instinct that made me a builder: when a tool would make the work go faster, I make it instead of filing a ticket.

An MBA from UNC, ethnic studies from San Francisco State, and a coding bootcamp somewhere in between. I do my best work after the house goes quiet, run on coffee and the occasional NYC Marathon, and find half my ideas at tech conferences. Long Island-based.

Want the architecture behind the day-to-day? See the system that runs my day

Career & job-search tools

  • Screenshot of HireRewards

    HireRewards

    a friendlier job-application tracker

    Helps you find roles worth applying to, remembers where you left off, and nudges you when you've gone quiet (or the role has). No spreadsheet. Forward a recruiter email and it becomes a one-tap confirmation in your week. It celebrates your submissions, because in this economy any forward movement is a win. It's free, and your data stays yours: a workforce case manager or training provider sees your progress only if you accept their invite, and you can stop sharing at any time. A work-search log covers every state's unemployment requirement.

    Read more

    Next.js 15 App Router · Supabase (Postgres + Google OAuth) · Claude Haiku 4.5 · Resend/Postmark · gethirerewards.com

    LiveTry it live
  • Receipts

    unemployment paperwork, done for you

    You applied for three jobs on Tuesday. By Sunday night, when New York State's WS 5 form is due, the details are gone. Receipts logs each application the moment it happens and fills the official PDF for you at the end of the week. The stakes aren't abstract: claimants have lost four weeks of benefits over a form they couldn't reconstruct.

    Read more

    Next.js 14+ on Vercel · Supabase or Neon · NextAuth magic links · Whisper · Claude Haiku · `pdf-lib` overlay on the official WS 5 template

    Design brief

Meetings

  • Week in Review

    my work week as a Sunday podcast

    Every Sunday at 6pm, a 15–20 minute episode of my own work week lands in Apple Music: what changed on each client's renewal, the decisions and who made them, what I owe and what's owed to me, and what to prepare for next week. I can catch up by listening instead of rereading a week of Slack.

    Read more

    Claude via claude -p · Python · Kokoro TTS · ffmpeg · launchd · Slack via MCP

    Built
  • Voice notes for Claude

    in-person meeting recaps

    The in-person analog to my Zoom recap workflow. When the conversation happens at a coffee shop or in a hallway, I record it on my phone (with permission, always). This lets Claude read those voice notes the same way it reads Zoom transcripts — so the recap, action items, and follow-ups land in the same place whether the meeting was on video or across a table.

    Read more

    Node 18+ · TypeScript · MCP SDK

    Live

Time, billing & focus

  • Billable

    automatic time tracking

    If you're a consultant, you've done this: it's 6pm, you're trying to remember what you worked on between the 11am call and lunch, and you guess low. Affinity Live puts that gap at 10–20% of billable hours. Billable watches what's actually on my screen every 30 seconds, matches it to a project, and posts the hours to my timesheet at the end of the day. I stop guessing.

    Read more

    Python · AppleScript wrappers · launchd · SQLite

    Live
  • Focus Nudges

    an ADHD-friendly attention coach

    Focus help that stays calm. The same screen samples that bill my time also watch for the patterns that quietly cost me a day: drifting onto a time-sink site, three hours heads-down with no break, 1pm with no lunch, a wall of back-to-back meetings and no recovery. When one shows up I get a single quiet macOS banner — not a stream of alerts. The distraction nudge names a real priority for today, pulled from that morning's brief, so it names the actual project instead of saying "get back to work."

    Read more

    Python · launchd · SQLite · AppleScript banners

    Live
  • Monthly invoice builder

    invoicing as a 30-second review

    Turns the monthly invoicing chore — about an hour of clicking — into a 30-second review of a pre-drafted email to my client.

    Python · launchd · Google Drive + Gmail APIs; hours from the local tracker

    Live
  • Calendar mirror

    personal time, protected on a work calendar

    People book me from my work calendar, which can't see my personal ones. This copies free/busy from three personal calendars onto it as plain "Busy" blocks, so the time is protected without putting my family's event titles in an employer-owned account. If I delete a block, the script remembers and leaves that time free.

    Read more

    Google Apps Script · Google Calendar API

    Live
  • Closing Time

    the end-of-day wind-down

    One pass at 6pm closes out the day: the hours I worked, the emails still waiting on me, the junk in Downloads, and the loose ends I'd otherwise carry into tomorrow. It ends with a swipe deck of photos and screenshots from this day in past years, left to toss and right to keep, so the camera roll gets cleaned a day at a time.

    Read more

    Claude Code skill · Python (local server) · AppleScript · launchd

    Live

Relationships & network

  • Crosswalk Cafe

    a private memory layer for relationships

    I had coffee with someone on Tuesday. Walking back to the office, I dictated twenty seconds into my watch — what we talked about, what they're working on, what I said I'd send them. By the time I sat down, it was logged against their contact card and the action item was waiting. It also reads my messages, my LinkedIn, and my calendar, so the threads I'd otherwise lose stay attached to the people they belong to. So I can remember — be a better friend, a better colleague, whatever the moment calls for.

    Read more

    Next.js 16 · React 19 · Tailwind · Supabase (Postgres + RLS) · local stdio MCP server

    Live
  • LinkedIn network analyzer

    I meet a lot of people. Clustering my LinkedIn contacts by where I first met them — conference, intro, prior job — gives me a way to remember context, and it syncs into my CRM.

    Python · HTML/CSS · Crosswalk Cafe Supabase write path

    Live

Small-business tools

  • Screenshot of Shopcast

    Shopcast

    an Etsy shop that posts itself

    A reseller with hundreds of Etsy listings rarely has time to post each one to Instagram. Shopcast does it for them: eight pieces on one theme per carousel, a caption in the seller's own voice, every six hours, quiet overnight, with Pinterest pins alongside. The seller never touches an API key, because it runs off the shop's public feed.

    Read more

    Python · Playwright · SQLite · launchd · Claude via claude -p

    Live
  • Haul Scout

    estate-sale pricing at the table

    At an estate sale a reseller has seconds to decide whether a tag is a deal before someone else picks the item up. Snap a photo and the phone says what it's worth to the person holding it. Pricing follows where they sell: an eBay reseller gets sold medians and a "pay up to" ceiling, and an Etsy seller gets their own past sales plus current asking prices, with a BUY / DON'T BUY / YOUR CALL verdict against the tag.

    Read more

    iOS Shortcuts · Supabase (Edge Functions · Postgres · Storage) · Claude · CompSniper · Etsy API

    Built
  • Clean Copy

    a de-identified spreadsheet AI can read

    Anyone who handles personal data hits the same wall: the spreadsheet AI could help with is the one full of names, account numbers and free-text notes they can't hand over. Two Excel macros make a de-identified copy. You review a plan of what to keep, code or remove, and the clean copy comes out ready for Copilot or any other assistant. Names become consistent codes, so the analysis still works.

    Read more

    Excel VBA · VBScript.RegExp

    Built
  • Screenshot of Keyring

    Keyring

    books and quarterly tax packets for short-term rentals

    A short-term-rental owner with three properties, one checking account, one card and one Airbnb account for all of it has no clean way to see what each property earned. Keyring sorts every transaction to the right property (or to personal), keeps a running P&L per property, and at the end of each quarter renders the spreadsheet the owner's CPA asks for. It's built to replace paying for bookkeeping software plus a bookkeeper.

    Read more

    Python · SQLite · Claude Code skills · .xlsx output · a live dashboard

    In progress
  • Bid Check

    what a subcontractor's bid leaves out

    Before a builder signs a subcontractor's bid, someone has to go sheet by sheet through the architect's drawings to find what the bid doesn't cover. Bid Check reads the drawing set and the bid side by side and lists what the drawings call for that the bid leaves out, with the sheet each item comes from. When it can't back up a number, it leaves the line blank and says why.

    Read more

    Next.js 16 · React 19 · TypeScript · Claude · Vitest

    In progress

Capture & knowledge

  • Saved from Social

    the saves folder that actually does something

    Turns the Reels and TikToks I save from a passive graveyard into things I can actually act on. It surfaces what I'd otherwise forget — the craft I bookmarked for Saturday with the kids, the recipe I meant to try this week. Brick-and-mortar saves will eventually nudge me when I'm nearby that coffee shop or store.

    Read more

    Next.js · Postgres · OpenAI Whisper + Claude for enrichment · behind HTTP basic auth

    LiveOpen source
  • Chat synopsis

    save what a conversation decided

    Some conversations with Claude produce decisions or reframes worth keeping. This pulls those out as a markdown artifact and files it to Obsidian, Notion, or Drive.

    Claude Code skill · Markdown

    BuiltOpen source

Home & craft

  • Screenshot of Reading Rainbow

    Reading Rainbow

    the home library, shelved

    We own more books than I can hold in my head, across three rooms, and I kept buying duplicates. This is the shelf view: what we own, where it physically is, what's out on loan, and what to read next.

    HTML/CSS/JS · Netlify Functions · Google Sheets API · iOS Shortcuts

    Live
  • The Making Corner

    which craft to reach for

    I knit, cross-stitch, sew, and make paper, and the supplies live in one corner of a bedroom. The hard part isn't the making, it's choosing — so this asks how much time and energy I actually have tonight and picks the project that fits.

    Supabase (Postgres) · static front end · Netlify

    Live
  • Screenshot of Gridcraft

    Gridcraft

    photo to stitchable pattern

    Turns any photo into a chart I can actually stitch — cross-stitch or diamond painting — with a real floss palette instead of a rough pixel grid.

    Vanilla HTML/CSS/JS · canvas

    Built
  • CDMX tasting menus

    a trip, reconstructed

    Six restaurants over five days in Mexico City, and by the time we were home the meals had blurred together. This rebuilt the trip from what we already had — photos and reservation emails — into something worth keeping.

    Python · Photos SQLite · Gmail API · static HTML

    Built
  • Print to Mandy

    3D prints sent and checked from the terminal

    I say "print this" and the job goes to my Bambu Lab X2D on the filament slot I picked, and nothing reports success until the printer has actually started. New filament gets logged from its receipt and set up in the slicer, so the spool sheet and the printer agree.

    Read more

    Python · Bambu Studio · MQTT · macOS CGEvent · Google Sheets API · Claude Code skills

    Built

Foundations

  • Professional Brain

    one local source of truth

    One local source of truth for contacts, journal entries, meetings, partnerships, time tracking, and the inbox — instead of context scattered across notebooks, Notion, and email.

    Live
  • Closure system

    what I promised, to whom, by when

    Tracks only the promises a named human is actually waiting on — not a task list, not a status board. Each one scores on_time, renegotiated, or slipped_silent, and moving a deadline privately still counts as a silent slip. That rule is the whole design: it measures what the other person experienced, not what I intended.

    Read more

    Python · SQLite · launchd · `claude -p`

    Live
  • Shared AI context

    every assistant starts from the same facts

    I work across several AI assistants, and each kept its own notes about my work, going stale at different speeds. Now they share one context layer: a few files on who I am and how I work, and a fact store where every fact carries a date and a confidence level, so "what's true now" and "what was true in August" both have answers.

    Read more

    Python · SQLite FTS5 · MCP · git · Claude Code skill · launchd

    Live
  • Voice profile

    my edits, turned into rules every assistant follows

    Most of what I change in an AI draft is the same handful of fixes. When I correct a draft, this captures the before and after, works out the rule behind the edit, and adds it to one voice file that every assistant I use loads. It sorts accuracy repairs (an invented detail, a guessed number, a garbled name) from matters of taste, because most of my edits turn out to be repairs.

    Read more

    Claude Code skill · Markdown · iCloud Drive

    Live
  • Agent team

    named specialists with set jobs

    Instead of one assistant doing everything, I work with nine named agents, each with one job and a clear line on what it hands off: Sam researches, Kai builds data pipelines, Lena builds front ends, Rhea builds full-stack apps, Marco plans, Nova writes speeches, Vex reviews security, Theo hires a new agent when a gap shows up, and Ren keeps built things from going quietly dead.

    Read more

    Claude Code agents · Markdown · Bash

    Live
  • cc-tap

    a bridge between AI desktop apps and CLI sessions

    Stops me copy-pasting between AI windows when two of them are working on the same project. The desktop client — Claude, Kimi, Hermes, whatever's in front — talks to the CLI session through MCP. The work keeps running in the background on my private server while I close the laptop.

    Read more

    Python 3.11+ · MCP server · GitHub `es617/cc-tap`

    ExperimentalOpen source
  • Build Scoreboard

    the idea backlog as a game

    I generate ideas faster than I ship them: 57 tracked, 48 still queued. The scoreboard turns that pile into a game. Every idea is worth points by effort, shipping earns them, and a level bar shows how close the next level is. Quick wins surface at the top, so the next thing to build is one click away instead of buried.

    Read more

    Python (build_scoreboard.py) · SQLite (brain.db) · static HTML/CSS/JS

    Built

Let's talk

Tell me what you're working on. Pick the closest fit, leave a note, and it comes straight to me — I read every one of these myself.

What's this about?
or email connect@jsoranno.com