CLI-first · agent-native built in machin (MFL) self-host or hosted

grepapi

An affordable, CLI agent-first SerpApi alternative — with a GTM engagement engine on top.

Point it at an ICP; get back a ranked list of real companies with phone numbers and warm LinkedIn leads — each with a brief your agent turns into outreach. You bring the browser + the LLM; the server never scrapes or runs completions.

Sound familiar?

😩 You built the product — now you need customers, and finding them by hand is soul-crushing.

💸 SerpApi / PhantomBuster want $100s a month — and you're pre-revenue, bootstrapping.

🔎 You search for your ICP and get job boards, directories and "Top 50" listicles — nothing you can actually reach out to.

🧑‍💻 You're a builder, not a seller — you'd rather your agent handle lead-gen than wrestle another GUI SaaS.

That's exactly who grepapi is for: a lead engine you (or your agent) run from the terminal — real companies with phones, warm LinkedIn & Reddit leads, each brief-ready. Cheap, because you bring the browser and the LLM.

The whole idea

# one topic in — real companies, phone numbers, and warm leads out
grepapi run "éditeur logiciel Grenoble"

→ 40 leads ranked & actioned (9 job-ads / directories dropped)
  { "name":"Defacto Technologies", "source":"maps", "score":18,
    "action":"call", "phone":"04 76 56 65 07" }
  { "name":"Digital League", "source":"linkedin", "action":"comment" }

grepapi brief <lead-id>   # → lead + your playbook + a precise instruction;
                          #   your agent/LLM writes the actual message

Fat client, thin server. The client fetches + parses locally (your browser, your session). The server plans the search, qualifies + scores results, and briefs the action — it never touches a target site (nor runs LLM completions), so it's cheap to run and carries no proxy/ToS risk.

What you actually get

$ grepapi leads
[
  { "name":"Defacto Technologies", "action":"call",
    "phone":"04 76 56 65 07", "score":18 },
  { "name":"NowTeam · Infogérance PME", "action":"call",
    "phone":"04 58 00 55 50", "score":16 },
  { "name":"Maincare Solutions", "action":"call",
    "phone":"05 57 89 65 00", "score":18 },
  { "name":"Digital League", "source":"linkedin",
    "action":"comment", "score":10 }
]
$ grepapi brief <lead-id>
{
  "action": "call",
  "brief": {
    "lead": { "name":"Defacto Technologies",
              "phone":"04 76 56 65 07" },
    "playbook": "intrane.fr — fractional senior
       architects for SME tech teams…",
    "instruction": "Write an opening line for a cold
       call to Defacto Technologies. Reference their
       context; 1-2 sentences; warm; no pitch."
  }
}
→ your agent/LLM writes the actual copy

Every lead is deduped, scored, and given an action — call (a real business + phone), comment (a warm LinkedIn engager), reply (a redditor asking for what you offer), research (a web candidate to qualify). The brief carries everything your agent needs to write the message; grepapi never writes it (or bills you for tokens).

Work it like a pipeline: grepapi mark <id> contacted · grepapi leads --new (only what's left) · grepapi leads --csv to export. Next week's run surfaces just the new leads — deduped against everything you've already worked.

Why not just search?

Raw search for your ICP

"éditeur logiciel Grenoble" gives you job ads (meteojob, jooble, "CTO … H/F"), directories (pagesjaunes, societe.com), and "Top 50 startups" listicles. Almost nothing you can actually call.

grepapi

The same topic returns real local companies with phone numbers (Defacto, CORYS, AViSTO, NowTeam…), ranked, plus people already discussing "CTO de transition" on LinkedIn — each deduped, scored, and brief-ready. Junk filtered, verified businesses on top.

🔎

Search → clean JSON

Google, Bing, DuckDuckGo, Maps, Reddit and more — titles, links, snippets, normalized. The affordable SerpApi alternative, minus the proxy bill.

🎯

Engagement engine

Whoever is already posting about your ICP is your warmest lead. grepapi scores engagement across LinkedIn, Reddit, web + Maps into one ranked list — with the action to take (call · comment · reply · research).

✍️

Completion-ready briefs

Each lead comes with a brief — the scored context, your playbook, and a precise instruction — that your own agent/LLM turns into the message. Bring your own LLM; grepapi never runs (or bills) completions.

🧩

Bring your own browser

Fetching runs on your machine with your own session — grepapi's servers never scrape. Cheaper, more private, and it keeps you in control.

Built for agents

grepapi is agent-native by design. Every command prints JSON on stdout, progress + typed errors on stderr, and semantic exit codes (0 ok · 80–89 input · 90–99 precondition · 100+ retryable) so an agent can branch on failure. grepapi guide returns the whole model, workflow and examples as JSON — an agent reads it once and drives grepapi with zero external docs; grepapi help-json returns the command catalog; grepapi doctor --fix self-heals the environment. The CLI is the interface — no SDK, no protocol to learn.

And grepapi next collapses the whole worklist into one call — the single best next action right now (top lead + ready brief), freshness-aware so a post from today beats a stale one. No sifting 100 leads; the tool decides, you act.

The split that makes it cheap: the operator is the LLM. grepapi does the deterministic work (plan, qualify, score, dedup, brief); your agent brings the fetch and the completion. No proxy bill, no token reselling.

# an agent loop — the tool decides, you act
grepapi run                     # {ok, fetched, rows_submitted}
while :; do
  n=$(grepapi next)             # {action, lead_id, brief:{lead, playbook, instruction}}
  [ "$(jq -r .lead_id <<<"$n")" = null ] && break
  # … your LLM writes the message from $n.brief, freshest lead first …
  grepapi next --done           # sent — advance to the next best
done
          

Pricing

Free

€0

  • 1 ICP topic
  • 50 leads / month
  • Web, Maps & Reddit sources
  • No LinkedIn engagement / briefs

Pro

popular

€29/mo

  • LinkedIn engagement graph
  • Completion-ready briefs (BYO-LLM)
  • Multi-source enrichment
  • Higher lead caps

grepapi upgrade → Stripe Checkout

Team

soon

  • Multi-seat, multi-ICP
  • Shared team lead pool
  • Saved playbooks

Quick start

# install the CLI — you bring the browser; the server never scrapes
curl -sSL https://grepapi.intrane.fr/install.sh | sh

grepapi signup you@co.com          # free account + token
grepapi recipe find-a-partner "what you're building"   # tuned hunt in ONE command
#   or: grepapi init   (let your agent pick) · grepapi icp "fractional CTO Lyon"  (custom)
grepapi run                          # fetch (your browser) → scored leads
grepapi next                         # the single best action, right now
grepapi upgrade                      # → Stripe Checkout for Pro

# Pro: add LinkedIn engagement leads (one-time, your own session)
grepapi linkedin setup && grepapi linkedin login && grepapi linkedin up

API base: https://api.grepapi.intrane.fr · bearer-token auth · JSON. The CLI is the whole agent interface — pipe it, script it, hand it to your agent.

FAQ

Do I need to code? Is it hard to run?

No. One install line, then grepapi signup / icp / run. It's a CLI, so it pipes, scripts, and an agent can drive it end-to-end. grepapi doctor --fix sets up anything missing.

Why "bring your own browser" and "bring your own LLM"?

That's why it's €29, not €299. No proxy farm to pay for, no LLM tokens to resell. You fetch from your own session; your agent writes the outreach from the brief. We sell the brains (planning, scoring, dedup, the data graph), not the commodities.

Is it legal? Will I get blocked?

The server never scrapes. Fetching runs on your machine, with your own session, at your own pace — a personal automation tool, not a scraping farm. You stay in control of volume and identity.

Do you write the outreach for me?

No — each lead comes with a brief (the scored context, your playbook, and a precise instruction). Your own agent/LLM writes the message. grepapi never runs (or bills you for) LLM completions.

Can it actually call the leads for me? (+Calls)

Yes — an opt-in +Calls add-on turns a lead's brief into an AI voice call in the lead's language: it discloses it's an AI, gets past the gatekeeper to the decision-maker, and books you a callback — then feeds the outcome back into ranking. BYO-Bland (bring your own Bland.ai key, you pay the per-minute cost); grepapi provides the calling brains. grepapi upgrade --calls.

Does it get smarter the more I use it?

Yes. As you mark leads won or skip, grepapi learns which source + action actually converts for you and re-ranks future leads accordingly — so grepapi next pushes what works to the top. It's transparent (grepapi usage shows the learned win-rates) and cold-starts neutral.

What sources does it cover?

Google, Bing, DuckDuckGo, Maps and Reddit on every plan; the authed LinkedIn engagement graph on Pro. Each source gets the right action — call, comment, reply, research.

What do you store about my leads?

Your leads and notes are private to your account. A shared graph pools only public facts (a company domain, a phone number) to enrich everyone — never your private lists or outreach state.

What exactly is "50 leads / month" on Free?

50 new, distinct leads per 30 days. Duplicates and filtered junk (job boards, directories) don't count against you.