Back to use cases

    Use case / Developers / Python 3 / Published

    VC Twitter Tracker: Read What Investors Post About Your Space

    Card for VC Twitter Tracker: Read What Investors Post About Your Space

    Investor Topic Tracker is a small Python script for founders preparing a raise. Give it 10 to 15 investor or fund accounts on X and one topic, and it returns a reading list of what each account has posted in public about that topic, newest first.

    The problem

    Before pitching, founders want to know which investors talk about their space and what they say. VC Twitter is full of signal, but scrolling 15 timelines and searching each one for a topic takes hours.

    What the app does

    • Reads investors.json with a topic, an X search query, topic words and a list of accounts.
    • Asks for each account's posts that match the query.
    • Sorts posts newest first and counts posts with a topic word.
    • Ranks accounts by their newest topic post and flags activity in the last 30 days.
    • Writes investors.csv and a short shortlist.md.

    How it works

    1. Search per account. GET /twitter/post/user with user, query and count.
    2. Count posts that contain one of your topic words.
    3. Sort posts by date in code, newest first.
    4. Write the CSV and the reading list.

    The code

    def fetch(cfg, key, count):
        import requests
        s = requests.Session(); s.headers["Authorization"] = key
        calls = []
        for h in cfg["handles"]:
            params = {"user": h, "query": cfg["query"], "count": count}
            at = now_local().isoformat(timespec="seconds"); t0 = time.time()
            r = s.get(f"{BASE}/twitter/post/user", params=params, timeout=120)
            try:
                body = r.json()
            except ValueError:
                body = {"_text": r.text[:500]}
            posts = body if isinstance(body, list) else (body.get("data") or body.get("tweets") or [])
            hdr = {k: r.headers.get(k) for k in COST_HEADERS}
            calls.append({"handle": h, "params": params, "at": at, "seconds": round(time.time() - t0, 2),
                          "status": r.status_code, "headers": hdr, "posts": posts if isinstance(posts, list) else [],
                          "body_if_not_list": None if isinstance(body, list) else body})
            print(f"{at} {h:18s} {r.status_code} posts={len(calls[-1]['posts'])} cost={hdr['X-Desearch-Cost-Usd']}", flush=True)
        return calls
    

    The folder has investor_topic_tracker.py, an example investors.json and the sample run in output/.

    Endpoints

    • GET /twitter/post/user

    Example output

    From a run on 2026-10-13 for the topic "AI agents" across 12 fund accounts, 20 posts each:

    #AccountPosts with topic term / returnedNewest topic post (UTC)Last 30 days
    1Investor A20 / 202026-10-12 17:45yes
    2Investor B14 / 202026-10-12 16:08yes
    3Investor C20 / 202026-10-09 17:33yes

    The output is a reading list of public posts, not a view on anyone's plans.

    Run it yourself

    The public examples folder linked above includes the script and a README. Install its requirements, set DESEARCH_API_KEY from console.desearch.ai, and use the run command in that README.

    Useful flags: --count (posts per account, default 20, max 100), --from-raw FILE (offline rebuild, no API calls).

    What it costs

    The script makes one call per account and prints the total from the X-Desearch-Cost-Usd header at the end of each run. See pricing.

    Ideas to extend it

    • Run it weekly before a raise and read only new posts.
    • Track two or three topics side by side.
    • Add an LLM step that summarizes each account's view in one line.

    Use with AI agents

    Point an MCP client at the hosted Desearch server. Replace the placeholder with a key from the console. Do not commit the key.

    {
      "mcpServers": {
        "desearch": {
          "url": "https://mcp.desearch.ai/mcp",
          "headers": {
            "Authorization": "Bearer <DESEARCH_API_KEY>"
          }
        }
      }
    }

    Prompt you can paste for this example:

    Use Desearch to read recent public posts from the fund accounts I list, and keep only posts about the topic I name. Return a reading list with links. Do not invent posts or attribute a quote to the wrong account.

    Build your own example.

    Give your agents access to web and social search. Get an API key to start building, or talk to us about your integration.

    Read docs