[AI Product, Founder]

Outbound Networking, Run Like a Sales Pipeline

A career CRM built outbound first: contact discovery, sequenced outreach, and a pipeline that runs the job search the way sales teams run revenue. Founded, designed, and built by me.

atlas.finneykoshy.com/companies

Companies

71
≡ Sort ≡ Filter
Company Stage
OpenAI
Reply received
Anthropic
Intro booked
Stripe
Message sent
Vercel
Interviewing
Linear
Reply received
Figma
Person identified
Notion
Message sent
Airbnb
Message sent
Shopify
Person identified
Ramp
Reply received
Discord
Message sent
Spotify
Reply received
Coinbase
Message sent
Plaid
Person identified
Databricks
Message sent
Datadog
Message sent
Cloudflare
Message sent
HubSpot
Reply received

The Atlas companies view. Each row is a company, its pipeline stage, and the people attached to it.

Role

Founder

Scope

Product Strategy

System Design

AI Engineering

Full-Stack Development

My Role

No client, no brief. I came up with the idea, designed the product, wrote the code, and shipped it. Every decision in here is mine to defend.

[The Story]

The job market doesn't reward applications. It rewards conversations.

I got laid off for the first time when my company sunset. So I started applying again, and I already knew I hated it. Two things about the process wore me down.

The first was cold applying. You send the thing into a form and most of the time nothing comes back. Not a rejection, not a call, just silence. The second was the messaging. Every time I had to write to a stranger, or reply to one, I'd sit there rewriting it, second-guessing the tone, talking myself out of hitting send.

The numbers were never on the side of applying anyway, and I knew it. Cold applications barely convert. A referral is worth far more than a cold submission, and most hires come through people rather than portals. Every job-search tool I could find still pointed at the application: boards, trackers, resume optimizers, all of it sharpening the one channel that doesn't work.

So I stopped applying and started treating the search like a sales job. Sales teams worked this out a long time ago. When outbound is the motion, you don't count applications, you run a pipeline: targets, the right people, messages, follow-ups, conversations, close. I built Atlas to run mine. Mostly I wanted to stop depending on how I felt on a given day and just work the pipeline instead. It turned me from someone dreading the inbox into someone treating the job hunt like the job.

0.1-2%

Cold application conversion

15×

More likely to be hired when referred

30-50%

Of hires come from referrals, only 7% of applicants

Read the full manifesto here: Your Job Search Is a Sales Pipeline →

[System Design]

Built on three entities: companies, people, and logs

Atlas runs on three core tables. Companies are the unit of progress: each one carries a pipeline stage and moves across the board as the opportunity advances. People are the contacts attached to a company, and one company usually has several. Logs are the third table, a separate store of every outreach touch, each tagged with a channel and a date.

Keeping activity in its own table is the decision that pays off. Outreach history is its own object, and you want to query it by cadence and recency: how many messages went out this week, which channel gets replies, when you last touched a company. The pipeline stage lives on the company, the relationships live on the people, and the raw activity lives in the logs. Change a company and it ripples into the contacts and logs joined to it.

It's a React front end on Supabase and Postgres, multi-tenant by workspace, with the pipeline board reading straight off the companies table. Nothing exotic. The part that mattered was deciding that the company is what moves and everything else hangs off it.

Table

Companies

The unit of progress. Each company carries a pipeline stage and moves across the board as the opportunity advances.

Table

People

The contacts attached to a company: a hiring manager, an IC on the team, an alum for a warm intro. One company can hold several.

Table

Logs

A separate store of every outreach touch, each tagged with a channel and a date. Queried by cadence and recency, not by person.

A job search is a funnel

Once companies are the thing that moves, the whole search takes the shape a sales team stares at every morning. Targets go in the top. A fraction turn into real conversations. A smaller fraction turn into the thing you actually want. Atlas makes that funnel the main object.

Company sourced

A target worth chasing enters the board.

Person identified

You find the actual humans there and attach them to the company.

Message sent

You reach out. The real funnel starts on this line.

Reply received

Someone writes back.

Conversation held

It becomes a call or a coffee.

Engagement landed

A referral, an intro, an interview. The thing you were after.

Atlas only measures conversion from Message sent down. Everything above that line is research, not engagement, and counting it would just flatter the numbers.

[Craft & Behavior]

The analytics keep you out of your own feelings

The analytics screen is the part I lean on most. It shows what a sales dashboard shows: total outreach, reply rate, follow-ups, a bar chart of messages sent per day, a breakdown of which channel actually gets replies, the funnel, and the conversion rate between each stage.

What that does to your head is the real point. When a company goes quiet, it stops being a personal rejection and becomes one data point in a reply rate. That sounds cold. It's also the thing that let me keep going. Instead of reading each silence as a verdict on me, I could look at the funnel and see where the drop-off actually was. A low reply rate meant the message was wrong. Replies that never turned into conversations meant the follow-up was wrong. Both of those are fixable. A slot machine isn't, and that's what the search feels like without the numbers in front of you.

Watching outreach velocity every day did something too. It turned a vague, dread-filled task into a count I could move. Some days the only win was sending five more messages, and the chart showed it. The emotion didn't disappear, but it stopped driving.

[What I Didn't Build]

Two things I chose not to build

No auto-apply

Auto-apply was the obvious thing to add, and I left it out. It's the same channel that gave me the dread in the first place: fire off a hundred applications, hear nothing back. Automating it would only let me generate silence faster. It doesn't touch either problem I actually had. It also makes the inbox on the other end worse for everyone, which is part of why cold outreach keeps getting harder.

No resume or cover letter writing

Every tool in the category writes your resume and cover letter for you. I skipped it. It's a commodity now, and more to the point it never solved anything for me. My problem was never the wording of a document going into a form. It was who I was talking to and whether I'd actually reach out. Polishing the resume is just more time spent on the channel that doesn't work.

[See More Work]

See the next project ↓

[AI Product, Healthtech]
VeloNote

VeloNote

AI clinical documentation for radiation oncology.

[AI Product, Mobile]
WordBuddy AI

WordBuddy AI

An AI-powered English learning platform for Southeast Asia.