Skip to content
The pipeline

The decision brain

Which companies to spend the days on: P(offer), the shortlists, one company a day.

Thousands of companies are too many to work on. The decision brain (jobhunter/decide.py) asks five plain questions about every Bengaluru, Hyderabad and remote company, turns the answers into one chance of an offer, keeps the best of them on a shortlist, and gives you one company a day — fill it, or ask its referrer.

What the number means#

Best bets shows each company as, for example, “19% chance of an offer — about 1 in 5 companies like this”. Read it literally: if you worked on five companies that look like this one, from the first email to the last interview, you would expect about one offer among them. The “1 in N” is simply one divided by the chance, rounded.

Hover the number and it gives the range it is fairly sure of — “most likely 19%; we are fairly sure it is between 7% and 32%” (an 80% interval). Beside it: how many times better this company's odds are than the typical company on the same shortlist (“4.1× better than the typical company on your list”), and how DSA-heavy their interviews look.

Scalio · Bengaluru
19%
about 1 in 5 · 7–32% · 4.1× the list
SerpApi · Remote
18%
about 1 in 5 · 7–32% · 5.8× the list
Ctruh · Bengaluru
17%
about 1 in 6 · 7–29% · 3.8× the list
on the shortlists
250
Bengaluru 100 · Hyderabad 50 · Remote 100

The top of the shortlists as decided on 23 Oct 2026; the live figures are on Best bets.

The five questions#

Each company gets the same five yes/no questions. Every answer is a probability worked out from fields the pipeline already holds, with the evidence quoted — no model is asked to guess.

QuestionIn plain wordsRead from
openIs a role open right now that a 2027 graduate can apply for?Its scored roles — the more fresher roles, the surer
reachWill a referral ask get a reply?A reply rate learned from your own sent mail, over up to three asks, and whether a referrer is ready
screenDoes the resume pass a cold screen?How well your skills cover the best role, its gaps, and company size
loopDo you clear their interview loop?Your DSA level against how DSA-heavy their interviews look, plus skills fit
payWill they pay at least your floor?Stated pay, PPO, or the company’s pay power

How they combine#

A referral matters most at the screen: it multiplies the screen's odds by six. So the chance of an interview call is (reply × screen with a referral) + (no reply × cold screen), and

the formula
chance of an offer = a role is open × you get an interview call × you clear the loop × they pay your minimum

Best bets draws those four as bars and marks the weakest one — usually the place a fill, a referrer or practice would move the number most. Each answer is held as a range rather than a single value (stronger evidence, narrower range); the brain samples 4,000 times, seeded per company so the same inputs always give the same answer, and reports the middle and the 80% band.

The four verdicts#

Target
Enough is known and someone is ready to ask. Write to them.
Fill first
Too little is known to decide — fewer than 55% of the seven deciding fields (description, hiring checked, size or stage, pay evidence, a scored role, people searched, a ready referrer) — or nobody is ready to ask yet. A remote company whose pay is unknown is also fill-first. The brain abstains rather than guesses: fill it, then decide.
After DSA
India only. Their interviews are DSA-heavy (intensity 0.60 or more) and well above your level (more than 0.15 over it), and they pay at the top (₹35 LPA or more) or the loop is extreme (0.80+). Parked, not dropped: raise decide.me.dsa_level as you practise and they come back on the next run.
Skip
A guardrail fails: quarantined, do-not-contact, overrated, a rejected tier, or below the pay bar. In India, a culture rating under 3.0/5 on at least ten AmbitionBox reviews (read by the mixer). For remote, thin pay. A hiring claim their own site doesn't back is not a skip — it just makes “a role is open” unlikely until a fill re-checks it.
Remote is judged differently
A remote company is one with a role open to someone in India (remote-anywhere or remote-from-India), wherever it is based. Remote work is itself the culture bar, and a few DSA rounds are fine — DSA only lowers the loop answer there. The one hard bar for remote is pay: thin pay is a skip, unknown pay is fill-first.

The shortlists#

Among target and fill first, the best by chance of an offer are kept per pool: Bengaluru 100, Hyderabad 50, Remote 100 (decide.shortlist). On Best bets → Companies the tabs are Bengaluru, Hyderabad, Remote, After DSA and Skipped; the parked tabs show why each company is parked. On 23 Oct 2026 the brain had decided 2,479 companies:

PoolTargetFill firstAfter DSASkipShortlisted
Bengaluru1361,1067179100
Hyderabad1027817150
Remote109485097100

One company a day#

  1. Picked on the first look of the day
    The first time Best bets (or decide today) is opened on a day — Indian time — the best shortlisted company is picked, skipping any picked in the last 30 days and any you are already writing to.
  2. Fill it, or ask
    A target pick says Ask a referrer and opens the company page. A fill first pick says Fill it: description, hiring proof, facts and referrers are filled (a few minutes), then the brain decides it again and the card updates.
  3. Mark it
    Mark asked when you have written. Skip picks the next company on the shortlist for today. What the brain said at the moment of the pick is frozen, so it can be scored later.

Your DSA level#

How DSA-heavy a company's interviews are (0–100%) is read from its own postings and description — LeetCode, HackerRank, “data structures and algorithms” push it up; a posting that says it cares less about LeetCode pulls it down — and, when the text says nothing, from size, stage and money. Your own level is one number in config.yaml:

config.yaml
decide:
  me:
    dsa_level: 0.35   # 0..1, your interview-DSA ability today — raise it as you practise

Upskill shows what raising it to 0.5, 0.65 or 0.8 would be worth, and which parked companies would come back.

Recording what happened, and checking the brain#

The brain gets less wrong only if it hears how things turned out. Record each company's outcome from the terminal (there is no dashboard button for this yet):

terminal
python scripts/run.py decide outcome 2802 replied     # replied | referred | interview | offer | rejected | no_response
python scripts/run.py decide calibrate                 # how good its numbers have been

calibrate compares what the brain said with what happened, using proper scoring rules (the Brier score and log loss) for two things: did a written-to company reply, and did a finished story end in an offer. Under twenty outcomes it says too few to judge; after that, whether it beats simply guessing the average. The reply rate itself starts at 10% and is updated by every cold email sent and every positive reply.

When it runs#

Every free tick decides all the companies again after the role scores, and the shortlist job re-decides after each company it completes. You can also run it any time — decide run, a Fill from today's card, or a mixer run — and the shortlist shows when it last ran.

terminal
python scripts/run.py decide run                       # decide everything, re-rank the shortlists
python scripts/run.py decide top --pool Bengaluru      # the shortlist; --verdict after_dsa | skip for the parked
python scripts/run.py decide show 2802                 # every question, its chance and its evidence
python scripts/run.py decide today                     # today's company; --asked, or --skip "reason"
python scripts/run.py decide fill                      # fill today's company completely, then decide it again
Where the method comes from
The approach — typed yes/no questions, each answered with a probability, abstaining when the evidence is thin, and scored against outcomes — is borrowed from Laya (github.com/NandhaKishorM/laya). Laya answers with a 421M-parameter model; this machine runs no local model, so here every answer comes from fields already in the database.