每天自己扫一遍,只把值得回的那几条推给你

It scans the market daily and pushes you only the few worth answering

抓、去重、打分、按渠道起草、推到你手机上。失败的那条不会被标成已完成,所以不会悄悄消失。

Source, deduplicate, score, draft per channel, push to your phone. A lead that fails a step is never marked done, so it does not quietly disappear.

$ gig-radar demo

Scored leads (demo fixtures):
   92  ai-integration  [Hiring] Build a support chatbot grounded in our product docs (RAG)
   84  automation      [Hiring] Automate weekly ops reporting from Airtable and Slack
   76  ai-video        [Hiring] AI-generated product demo video for our launch
   28  other           [Hiring] Senior ML engineer, Toptal-vetted only
   12  other           [Hiring] Fix the fonts on my WordPress theme

(demo run: 5 ingested, 5 scored, 3 drafted, 3 would be pushed)
这是 gig-radar demo 的真实输出,跑的是仓库自带的样例数据,不联网、不用 key。看最后两条:要 Toptal 认证的 ML 岗给了 28 分,改 WordPress 字体给了 12 分,两条都没进推送。省时间省在这里,不在抓得多。截的是输出里打分那一段,后面的草稿正文没放上来。 Real output from gig-radar demo, running on bundled fixtures with no network and no keys. Look at the last two rows: a Toptal-only ML role scores 28, a WordPress font fix scores 12, and neither gets pushed. The time saved is there, not in volume. This is the scoring section of the output, the drafting section is left out.

为什么不是「多抓一点」

Why more listings is not the answer

公开的招人信息本来就不缺,缺的是筛。每天几十条里真正对得上你的可能就两三条,其余的要么预算不对,要么根本不是你干的活。

Public hiring posts are not scarce. Filtering them is. Out of dozens a day, two or three actually match you. The rest have the wrong budget or are not your line of work.

手工筛的问题不是慢,是断。忙起来两天没看,回头再翻已经过了回复的窗口。机器的价值就在它不会有忙的那两天。

The problem with filtering by hand is not speed, it is gaps. Two busy days and the window to reply has closed. A machine's value is that it does not have busy days.

所以它盯的是不漏和不重:每条只推一次,推不出去的下次重试,分够但当天排不上号的留在队列里,安静的那天再冒出来。

So what it optimises for is no misses and no repeats. Each lead is pushed once, a failed push is retried, and a lead that clears the bar on a busy day waits in the queue and surfaces on a quieter one.

每一步都留痕

Every step leaves a trace

01

抓和去重

Source and deduplicate

多个公开来源各自取新条目,和见过的比对,重复的直接丢掉。再跑一次不会给你同一条第二遍。

Several public sources, each pulled for new items and checked against everything already seen. Re-running never hands you the same lead twice.

02

打分

Score

按你的定位逐条判:对不对口、有没有预算信号、发帖的是不是像真客户。分数和理由一起留着。

Each lead is judged against your positioning: fit, budget signal, and whether the poster looks like a real client. The score and the reason are both kept.

03

起草

Draft

只给分最高的那几条写,按渠道换写法。论坛回帖、冷邮件、平台投标,语气和长度都不一样。

Only the top few get written, and the wording changes by channel. A forum reply, a cold email and a platform bid are not the same register.

04

推给你

Push to you

推到 Telegram,附分数、理由、原帖链接和草稿。发不发、改不改,是你的事。

Pushed to Telegram with the score, the reason, the original link and the draft. Whether it goes out, and in what form, is your call.

状态落在本地数据库里。打分没成的不入库,下次重新抓回来再打一遍;推送没成的不标记已推送,下次还在队列里;起草失败不会把线索吞掉,它会带着「起草失败,请手写」照样推给你。pytest 出 61 项通过,2026-08-31 现跑。

State lives in a local database. A lead that fails scoring is not persisted and gets fetched and scored again next run. One whose push fails is not marked pushed and stays in the queue. A failed draft does not swallow the lead, it arrives labelled draft failed, write manually. pytest reports 61 passing, run on 2026-08-31.

它什么时候会错

Where it gets things wrong

  • 分是模型给的,会看走眼。所以它只把分推给你,不替你发。判断权始终留在最后一步的人手里。 The score comes from a model, and models misread. That is why it pushes scores to you and never sends on your behalf. The judgement stays with the person at the last step.
  • 来源是公开的,抓得到的别人也抓得到。它赢在快和不漏,不赢在独家。谁要是跟你说他有独家线索池,那件事得单独查。 The sources are public, so anyone can reach them. It wins on speed and coverage, not exclusivity. Anyone promising a private lead pool is making a claim worth checking.
  • 草稿就是草稿。署你名字发出去之前你得读一遍。它写得越顺,越要读。 A draft is a draft. Read it before it goes out under your name. The smoother it reads, the more that matters.

交付边界

What each side brings

你给

You bring

  • 一段定位:你做什么、想接什么、不接什么
  • Your positioning: what you do, what you want, what you turn down
  • 想盯的来源,或者让我们按你的行当先配一组
  • The sources to watch, or let us propose a set for your trade
  • 一个收推送的 Telegram
  • A Telegram account to receive the pushes

我们给

We bring

  • 跑在你自己服务器上的管线,每天无人值守
  • A pipeline on your own server, running daily unattended
  • 状态落库,失败的那条不会被标成已完成,下次还回到队列里
  • Persisted state, so a lead that fails is never marked done and comes back in the queue
  • 打分口径和草稿模板都是配置,你自己能改
  • Scoring rules and draft templates as configuration you can edit

不接

Not this

  • 替你冒名发信,或者拿别人的身份投标
  • Sending under someone else's name, or bidding as another identity
  • 群发。同一封信改个称呼发一百家,收信的人一眼看得出
  • Blasting. One letter with the name swapped, sent to a hundred firms, reads as exactly that