A page about a matcher that has no price to read

Hire an accountability partner: a matcher with zero commercial surface area, and an honest list of where to hire one if that is what you want

Most guides on this topic line up coaching marketplaces (BetterUp, Thumbtack, Fiverr) and tell you to pick a rate. This one opens the repo behind a free peer matcher. The waitlist_entries table has 25 columns and none of them are price, tier, fee, or coach. The four-tier scoring sort reads no monetary field. The intro email drops the operator out of the reply thread. If hiring is the shape you want, the page tells you where to go and why, and the code is the proof that the shape here is different.

M
Matthew Diakonov
11 min read
4.9from direct meditator feedback
waitlist_entries has 25 columns (src/lib/db.ts:7-33); zero are price, tier, fee, or coach
Scoring sort reads readyScore, bothOld, sessionMatch, diff — no monetary field (auto-match/route.ts:182-189)
'No fees, no premium tiers, no upsells' — practice-buddy/how-it-works/page.tsx:336

The numbers a reader searching to hire expects to see, and the numbers this product actually has

A reader arriving from 'hire an accountability partner' expects rate ranges, tier prices, and session counts. This product's numbers are different by construction. Each figure below is a direct count from the running code, not a marketing approximation.

0columns in waitlist_entries (src/lib/db.ts lines 7 to 33)
0columns referencing price, tier, fee, coach, or subscription in that table
0keys in the scoring sort at auto-match/route.ts line 183 (readyScore, bothOld, sessionMatch, diff)
0 $amount a donor or premium user can pay to change their sort position

The 25 columns, literally, and what is missing from them

The WaitlistEntry type is the contract between the form on the Practice Buddy page and the cron that runs every two hours. Below is the type definition in the repo today, exported from src/lib/db.ts. Read the field names. A paid tier could not be stored anywhere in this shape without a schema migration.

src/lib/db.ts (lines 7 to 33)

The sort that decides pairing, on screen, in full

Every candidate pair that survives the eligibility filters goes through this four-key sort. The order of the keys is the order of priority. A paid product would add a fifth key, or weight one of these by plan. This one does not. A reader who wants to understand exactly how much commercial logic is inside the matcher can read the six lines below and have the complete answer.

src/app/api/auto-match/route.ts (lines 182 to 189)
4 keys / 0 $

The sort ends at four keys. Adding a fifth would require a schema column, a new branch, and a product decision. None of those have happened, and the absence is what keeps the word 'hire' out of this product.

src/app/api/auto-match/route.ts line 183, as of 2026-04-22

What a hire-shaped product usually sorts on, vs what this one does

Left column: the dimensions a paid accountability product typically sorts and filters on. Right column: the actual keys this matcher uses, cited to the line. The question on the table is not which column is better in the abstract, it is which column fits the thing you came here to find.

Paid accountability product sort vs this matcher's sort

FeatureTypical hire-shaped accountability productvipassana.cool (peer matcher, meditation only)
First sort keyTypically tier: Gold > Silver > Bronze, or subscription plan: annual > monthly > free, or coach availability by package.readyScore (0 to 2). Counts how many of the two people have already confirmed their side. No revenue input. src/app/api/auto-match/route.ts line 184.
Second sort keyMatch score from a recommendation engine (trained on user preferences and prior success), or coach specialization tag alignment.bothOld (boolean). True when both people completed a 10-day Goenka course. A meditation-lineage sort, not a commercial one. Line 186.
Third sort keyUpsell opportunity score: how likely this pairing is to produce engagement that drives subscription conversion.sessionMatch (boolean). True when both picked the same sit duration (20, 30, 45, 60, 90, or 120 minutes). Line 187.
Fourth sort keyGeographic region for localization or billing compliance. Sometimes the tie-breaker for paid platforms.Absolute difference between UTC minutes of the two sessions. Smaller is better. Line 188. This is the last tie-breaker.
Fifth sort keyExists. There is almost always a fifth dimension on paid platforms: availability, languages, or a coach-quality score.Does not exist. The sort ends at four keys. Adding a fifth would require adding a column and a new branch. Neither is planned.
Whether the algorithm reads any monetary fieldYes, at least one. Tier, plan, or revenue is almost always in the sort or in the eligibility filter.No. The only eligibility filters are contact_count < 10, signup age > 24h (for new rows), and the 60-minute UTC reachability window. Status 'ready' bypasses the contact_count cap.
How a premium feature would be addedProduct manager picks a tier column, flips a feature flag, and the pricing page shows a new row.Not possible without a schema migration, a Stripe integration, and a new admin flow. The absence of these is deliberate, not an oversight.

The three inputs a hire request expects, and where each one lands inside this product

A hire request comes with three inputs by default: payment, vetting, and an SLA. The diagram below shows what each one resolves to inside this product. Two of the three resolve to nothing, one resolves to a peer-shaped filter that looks nothing like a purchase.

hire inputs → matcher → actual outputs

Payment
Vetting request
Service-level commitment
auto-match/route.ts
No payment path
Meditation-lineage filter
60-min UTC window
One recurring Meet URL
Two intro emails

Six things a hire gives you that this product does not

If the paid shape is what your goal actually needs, these are the six things you are buying that this peer matcher will not give back. Each card is the feature as a hire product would describe it, and the corresponding fact inside this repo. This is a diagnostic, not a defense.

Service-level commitment

A hired coach agrees to call at 10am every Tuesday for 12 weeks. They are billable if they miss. This product has no SLA. The matcher pairs you, the intro email goes out, and the rest is two humans agreeing to open the same Meet URL. If one of you drifts, the meet_clicks table logs the drift and the operator notices, but nobody is billable.

Scope flexibility

A hired coach adapts to your goal. Writing a novel, losing 40 pounds, quitting alcohol, closing a deal. The matcher here works on exactly one scope: daily silent Vipassana practice. The schema has no weight, deal, habit, or tone-of-life column. Scope is not a dial you can turn.

Exit and refunds

A hired service has a cancellation flow with prorated refunds and an end date. This product has the unsubscribe link at the bottom of every email, one SQL UPDATE, no refund. There is nothing to refund because there is no charge.

Supervision signal

A paid coach is the inherent supervisor. They check your food log, your sales pipeline, your manuscript. Here the only supervision signal is ambient: meet_clicks rows, one per Meet URL open, visible to the operator in the admin dashboard. Neither partner supervises the other.

Matchmaking guarantee

Hired services promise a match in 24 to 72 hours, sometimes with a refund if not. The auto-match cron on this site runs every 2 hours and only pairs people within the 60-minute UTC window, so the wait can be anywhere from 2 hours to several days depending on the timezone pool. No guarantee, no refund because there is nothing to refund.

Replacement on failure

If the relationship with a hired coach is not working, you cancel and the platform suggests a new coach. Here, if a partnership ends, getPriorMatchedIds remembers it and the matcher picks someone new from the current pool on the next tick. No curation, no vetting beyond the existing meditation-lineage filters.

What a hire request would include, and what this matcher has instead

First strip: the phrases that appear most often in hire-shaped accountability products. Second strip: the literal sort keys and filters inside this matcher. The vocabulary difference is the architecture difference.

weekly 45-minute callgoal-review deckstructured coaching agendaSMART goal worksheetquarterly progress reviewaccountability retainerbillable hourscancellation window30-day refund guaranteecoach availability calendartier: premiumsubscription: annual

And the full vocabulary this matcher uses internally:

readyScore 0 to 2both completed 10-day courseshared session durationsmallest UTC time diff60-minute reachability windowone recurring Meet URLno billingno SLA

What happens if you still try to 'hire' on this site

There is no pricing page and no checkout, so the path for a reader who came looking to hire is a narrow one. Below is the lifecycle, with the honest admission that the product cannot satisfy the hire request at any step, and the admission that the peer-match path is still open if it fits.

1

You arrive searching for 'hire an accountability partner'

The honest first thing: this site is not a marketplace. There is no pricing page, no plan picker, no Stripe checkout. If the hire model is the one you want, the later section below has a list of paid options and the operator is not trying to change your mind.

2

If you still want to try the peer match, you fill the Practice Buddy form

The form writes one row into waitlist_entries. The row has 25 columns, all non-financial, set by the form inputs. The operator (me) eyeballs the row within 24 hours.

3

The auto-match cron runs every 2 hours

It reads the full waitlist, runs the four eligibility filters (status, contact_count, signup age, UTC reachability window), builds all viable pairs, sorts them on the four-tier criteria above, and greedily picks non-overlapping pairs.

4

When a pair is picked, three artifact types are written

One recurring Google Calendar event (RRULE:FREQ=DAILY), two meet_links rows in Postgres, two intro emails. The intro email has replyTo set to the two partner emails so the operator is not in the reply thread by default.

5

Nothing else ever happens to the pair from the product

No check-in cron, no weekly digest, no upsell, no retention email. The grep for weekly_checkin, progress_email, and partner_nudge returns zero matches. The absence is enforced by the absence of the code, which is enforced by the absence of any commercial pressure to write it.

The arithmetic of a match, without a dollar anywhere: 0 columns, 0 sort keys, 0 that read money

The matcher has been running every two hours since the Practice Buddy form went live. In that time it has never read a monetary field, because none exists, and it has never written one, because it has no code to do so. The donation-ethos sentence on the Practice Buddy page ("no fees, no premium tiers, no upsells") is the prose version of the schema; the schema is the version that has to stay consistent under the next commit, not the marketing copy. Anyone cloning this site who wants to add a paid tier would be staring at a dozen places in db.ts, auto-match/route.ts, emails.ts, and the Practice Buddy form where they would have to change the shape of the data. The absence of money is not a feature the code advertises. It is a design where there is no cheap place to put it.

The point of this page is not to claim the peer shape is better than the hire shape. It is to give a reader who searched for "hire an accountability partner" the clearest possible picture of what this product is, so they can decide in one minute whether to click through to the Practice Buddy form or to the paid options below.

Where to go if you came here to hire, sorted by how much structure the product gives you

A categorized, non-affiliate list. The rates are ranges in April 2026 and can move; use them as rough orientation rather than precise quotes.

  • Subscription coaching platforms. BetterUp, Torch, Bravely, and Ezra. Typically $200 to $600 per month, bundles the coach match, the software, and 2 to 4 sessions per month. Reasonable when the employer pays or the stakes are career.
  • Specialized goal programs with a coach included. WW and Noom for weight, Calibrate for metabolic health, Done for ADHD. $60 to $300 per month, the coach is built into the app experience.
  • Open coaching marketplaces. Thumbtack, Fiverr, Upwork, Coach.me, FindYourCoach, AccountabilityCoach.com. Hourly rates from $30 to $150 for independent coaches; you negotiate the package. Widest selection, widest quality variance.
  • Peer video coworking with a paid tier. Focusmate Pro (unlimited sessions, $6.99/mo at last check), Flow Club (structured sessions, $25/mo). The partner is a peer, but the platform is paid and reliable.
  • Commitment-contract platforms. Stickk, Beeminder. You put money on the line; the referee verifies whether you hit your target. This is the financial-stakes version of accountability, useful when the missing ingredient is cost rather than conversation.
  • Executive coaches via referral. Independent practitioners, usually $200 to $500 per hour. Worth it when the goal has a top-of-org business outcome attached; overkill for a daily habit.

When this product still fits, even though you came here to hire

  • You have completed a 10-day Goenka residential course and your daily sits stopped happening after you came home. This is the exact shape the matcher was built for. The partner is free; the accountability is the recurring Meet URL.
  • You are comfortable bringing your own goal and do not need a coach to review it. The silent-partnership shape gives you a human who will be on the same Meet URL at the same minute every day. Whatever you are working on at other hours is your business.
  • You want to see an honest peer architecture before buying a paid one. The repo is a small enough reference that reading auto-match/route.ts and db.ts gives a reasonable prior on how to evaluate any peer-match feature in a paid product.

When this product does not fit

  • You want a human who will call you on a schedule and talk about your progress. Hire a coach on Thumbtack or Fiverr, or subscribe to BetterUp or Noom. This product pairs you for silence, not conversation.
  • You want financial stakes instead of social ones. Use Stickk or Beeminder. This product has no mechanism to take money, because it has no mechanism to take money.
  • You want instructions on how to practice. Those belong to authorized assistant teachers at 10-day residential courses through dhamma.org. Nothing on this site is qualified to answer those questions, and the matcher does not pretend to be a teacher.

Want to walk the schema, the sort, and the honest hire list before you decide?

Book a short call. We can open src/lib/db.ts and src/app/api/auto-match/route.ts together, look at the 25 columns and the four sort keys, and decide whether the free peer match fits your situation or whether one of the paid options above is the right spend.

Frequently asked questions

Can I hire an accountability partner on this site?

No. The waitlist_entries table in src/lib/db.ts defines 25 columns and none of them are price, tier, subscription, fee, or coach. The auto-match cron at src/app/api/auto-match/route.ts sorts candidate pairs on four criteria in order: readyScore, bothOld (both completed a 10-day Goenka course), sessionMatch (same sit length), and smallest UTC time difference. There is no fifth criterion and no money column for one to read from. Even if you wanted to pay, the matcher has nowhere to put the record and nothing to do with it. If hiring is the shape you want, the honest answer is to use a paid coaching marketplace (BetterUp, FindYourCoach, AccountabilityCoach.com, Coach.me) or a services marketplace (Fiverr, Upwork) and hire a human who will invoice you for weekly calls. This product pairs two meditators for a free daily silent sit on a shared Google Meet URL, with the operator (me) reviewing new signups by hand.

What does 'hire an accountability partner' actually mean on coaching marketplaces, and how is that different from a peer match?

The hiring model buys you three things a peer match does not: a service-level commitment (the coach will call at 10am every Tuesday, not hope to), scope flexibility (you pay for whatever goal you bring, the coach adapts), and exit terms (if it is not working you cancel and keep your week). Typical pricing in April 2026 ranges from $30 to $150 per 25 to 60 minute session for independent coaches on Fiverr or Thumbtack, $200 to $600 a month for subscription-based programs like BetterUp or Noom, and $1,500 a month and up for executive coaching. A peer match trades all three of those for a different currency: the peer has skin in the same game, the practice or goal is shared rather than supervised, and the partner is not motivated by billing. The right choice depends on which currency you want on the table.

Why does this page exist on a meditation site at all?

Because people search for this phrase and the honest answer is long. This product is not a paid coaching service and it is not a free productivity-coworking service either. It is a tiny peer matcher for one narrow thing: daily silent Vipassana practice between two people who have completed a 10-day Goenka course. The word 'hire' exposes, by its absence, what the matcher does and does not do, and the architecture is specific enough that writing down why the hire shape cannot exist here is more useful than waving at it. If you came looking to hire, the page names the marketplaces to use instead and is not upset to send you there.

What would need to change in this codebase for paid tiers to exist?

At minimum: one new column on waitlist_entries (a tier or plan enum), one new table for subscription or invoice records, a payment processor integration (Stripe most likely), a new branch in src/app/api/auto-match/route.ts that weighs tier before or after the existing four criteria, an admin flow to refund or cancel, and a disclosures page. None of those exist and none are planned. The donation-ethos note in src/app/practice-buddy/how-it-works/page.tsx says plainly 'no fees, no premium tiers, no upsells,' and the code behind that sentence is consistent with it. The point of writing it down in prose and in schema is to make it expensive to silently change later.

If I still want to pay to be held accountable, what are the honest options?

For a specific human on a recurring schedule, hire a coach on BetterUp, Thumbtack, Fiverr, Upwork, or Coach.com, or a specialized service like Focusmate Pro, Supporti, or AccountabilityCoach.com. For financial stakes with a referee instead of a coach, use Stickk or Beeminder (you put money on the line, the platform takes it if you miss a commitment). For weight or health goals specifically, WW and Noom include a coach in the subscription. For executive or career goals, BetterUp, Bravely, and Torch sit in the $200 to $600 per month range. None of these are affiliate links, and the right choice depends on whether you want a human who talks, a platform that charges, or a combination of both.

Does the matcher on vipassana.cool have any scoring advantage for people who donate?

No. Donations are accepted at nothing more than the level described on the Practice Buddy page, there is no column in waitlist_entries to record a donor, and the matching code never reads any such signal. The sort at src/app/api/auto-match/route.ts line 183 runs in a fixed order: readyScore, bothOld, sessionMatch, time diff. If you tried to buy a faster or better match there is quite literally nowhere in the schema for that information to be stored, and the cron would have nothing to sort on. This is a property of the design, not a marketing claim: it costs more effort to add preferential sorting than to leave it out.

Is there any paid service that the operator of this site endorses for people who searched for this phrase?

For a hired partner who will call you weekly about a goal, I would start with Thumbtack or Fiverr to find a private coach, because the rate range is wide and the commitment is granular. For a subscription that bundles the coach into a product, BetterUp and Noom are the most battle-tested depending on whether your goal is career or weight. For a financial-stakes version of the same idea, Stickk is the oldest and still works. I have paid for none of these on an ongoing basis, I have met people who have, and the honest takeaway has been that a specific human on a specific schedule is what does the work, regardless of which platform made the scheduling happen. The shape this site implements is the same shape for free, with the goal domain locked to daily Vipassana practice.

Why does the intro email leave the operator out of the reply thread instead of keeping me as a support contact?

Because a hired service needs a support contact, and this one does not. The intro email at src/app/api/auto-match/route.ts lines 332 to 335 sets replyTo to the two partner email addresses only. When the pair replies to the thread, it goes to the pair, not to me. I am not a billable intermediary, and keeping myself out of the thread is the truthful statement that the partnership is theirs and not mine to manage. If something goes wrong, there is a Contact link in the site footer, and I read the inbox daily. But the product does not pretend I am a customer-success function because the product has no customer in the paid sense.

What if I want to hire a partner specifically for daily meditation practice?

A few paths exist. Insight Timer has a paid coach directory. A handful of meditation teachers on Zoom take on 1-to-1 students at hourly rates. Some dhamma centres have old students who mentor informally (never for money). For the specific Goenka tradition that this matcher pairs within, the operational layer is authorized assistant teachers at 10-day residential courses through dhamma.org, which is not a hire relationship but is the only sanctioned teaching channel. If your goal is to pay a person to sit with you over video on a recurring basis, Focusmate Pro is the most neutral platform, and you bring the practice yourself. The matcher on this site is a free alternative if both you and a partner have already completed a 10-day course and want a daily silent sit; it is not a substitute for a teacher.

Can I pay the operator directly to expedite my match or handle the pairing by hand?

No, and the admin UI has no path for it. The admin matching dashboard lets the operator review the candidate pool, override eligibility, and suggest pairings, but none of those actions read or write any payment-adjacent field because none exists. In practice the operator (me) reviews new signups within 24 hours and manually pairs anyone whose timezone or schedule is unusual enough that the greedy auto-match would not find a partner. This happens automatically as part of operating the product and is not something I charge for. If you have a rare timezone and have been waiting, email me from the site Contact page and I will look by hand.

Related pages on the matcher

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.