IC.
GITHUBGH LINKEDININ
SYSTEM 001 · SALARY TRANSPARENCY · PUBLIC + LIVE

Beton Kemon.

Bangladesh's anonymous salary and pay-day reference. No login, no PII stored - privacy is the architecture. Built by directing Claude Code; v1 was live in 2 days.

betonkemon.com
Beton Kemon - a company page: pay day, delays, benefits, role bands. Live site.
01 · THE PROBLEMWHAT WAS BROKEN

No record of what Bangladesh jobs pay, or who pays on time. Glassdoor skips us. Ask a bhaiya and hope.

02 · THE SYSTEMWHAT SHIPPED · WHO USES IT

Anyone in Bangladesh can add a salary in under a minute. 1,844 companies, 8,957 salaries so far.

160,885 people used it in nine weeks.

160,885visitors
1,787,592page views
2 daysidea to live v1

SOURCE: Vercel Analytics · lifetime, May 4 - Jul 10 2026

The national Product Manager page - 48 salaries pooled across companiesThe salary benchmark verdict screen with distribution histogramContribute wizard step 5 of 8 - which day do you usually get paid

REAL SCREENS · NATIONAL ROLE PAGE · SALARY BENCHMARK · CONTRIBUTE WIZARD (5/8)

03 · UNDER THE HOODWHAT ACTUALLY HAPPENS

Pick a moment. Watch the calls the system makes that no one sees.

CODEA HUMANA CHECKTHE CLEVER BIT00/08
THE THINKING BEHIND EACH STEP
01Eight steps is a lot to ask from someone with no account. Lose those answers to one refresh and most never come back - so the draft saves itself on every change.
02Anonymous submissions invite spam, and we refuse to identify anyone to stop it. So three quick machine checks - a daily cap, a bot-check, a sanity floor - run before any human looks.
03The floor is Bangladesh's lowest plausible wage, 4,000 BDT a month. A number below that is not a salary someone actually earns - it is noise, and noise gets rejected on the spot.
04If every spelling spawned its own page, HSBC's salaries would scatter across three phantom companies and none would reach a trustworthy sample. So every variant of a name folds into one page.
05Hand-reviewing every entry does not scale, so the safe ones self-approve: 3+ salaries already, this one within 30% of their median. Each auto-approval logs itself so its precision can be audited later.
06The auto-approve band is deliberately narrow. Anything outside it - a first entry, an outlier, a number that reads off - is exactly where a machine would guess wrong, so a person decides.
07Tell someone their number was approved and they can feed the form test salaries, watch which pass, and reverse-engineer the trusted band. So every reply reads "pending", even when it just auto-approved.THE CLEVER BIT
08With one or two entries, an aggregate is just one person's salary wearing a chart's clothes. Requiring five approved entries first means no individual is ever exposed as the statistic.

The database has no IP column, no device fingerprint, no PII columns at all - anonymity is enforced by what the schema cannot store, not by a policy page.

EVERY STEP MINED FROM THE REAL BUILD · NOTHING INVENTED

04 · WHY NOT ONE PROMPTWHAT A ONE-SHOT WOULD HAVE GOT WRONG

You could ask AI for "a salary site for Bangladesh" and get one in an afternoon. Here is what that site would have got wrong.

  1. It ships the wrong product. The model's own day-one flagship idea was a company rating score.
  2. Its thresholds are guesses. Three minimum-sample gates, each tuned to a real failure watched in production: dead-end pages, one-person "statistics", old entries poisoning percentages.
  3. It collapses under its own traffic. At one point fuzzy search was nearly half the database's CPU. The fix shipped with a written rollback plan.
  4. It freezes at v1. The schema changed 30 times in six weeks - benefits, SEO pooling, a real security advisory. It kept absorbing reality; a one-shot cannot.
05 · THE DIRECTIONWHERE THE HUMAN WAS
THE FORK · WHAT THE AI PITCHED VS WHAT I SENT

Day one. The model pitches a "Reality Score" - a reliability rating for every company. A different product: judging companies, not answering a question.

THE MODEL'S OWN WORDS, CONCEDING · SAME TURN

Good call. The Reality Score was my framing and you just spotted the problem - it's editorial, it implies precision the data can't support, and it makes the product about *judging companies* instead of *answering "what's the salary."*

MY THREE LINES

So let's not do a reliability score - the website remains true to its name - it's about what is the salary. However, we can show that - the company usually disburses salary on X day of the month. Salary delays - users can say Yes/no - and that's it.

The rejected score left no column in the shipped schema. Its substitute - a pay-day plus delay signal - renders on every company page today.

PRESERVED VERBATIM IN THE BUILDER'S PLAYBOOK · DAY-ZERO SESSION PREDATES THE LOGS

The most valuable direction of the whole build was a no.

14 hard rules25 custom skills11 enforcement hooks39 session transcriptsHOW IT WAS RUN, NOT HOW IT WORKS