Back to Projects
Pulse
CompletedPythonFastMCPPydantic+4 more

Pulse

MCP-native organizational intelligence server that turns company, jobs, people, and web evidence into cohort briefs and operating-phase analysis

Timeline

2026

Role

Builder

Team

Solo

Status
Completed

Technology Stack

Python
FastMCP
Pydantic
Crustdata
MCP
Agent Tools
Pytest

Key Challenges

  • MCP Tool Design
  • Company Intelligence Modeling
  • Cohort Comparison
  • Evidence Formatting
  • Mock and Live Mode Boundary
  • Phase Classification

Key Learnings

  • FastMCP Servers
  • Structured Agent Tools
  • Crustdata-style Evidence
  • Deterministic Phase Heuristics
  • Cohort Brief Generation
  • JSON-safe Tool Outputs

Pulse: MCP-Native Company Intelligence

Overview

Pulse is a Python/FastMCP server that turns Crustdata-style company, jobs, people, and web evidence into cohort-level organizational intelligence. Instead of asking only whether one account has buying intent, Pulse asks what a company is trying to become and compares that operating shift across a cohort.

The MVP is MCP-native: Claude calls structured tools and then writes the final narrative from compact evidence.

Why I Built This

Most signal-driven sales and research tools are account-centric. They detect a trigger, summarize one company, and draft outbound. Pulse explores a different workflow: use fresh company data as an agent-readable evidence layer, then classify company phase, hiring direction, gaps, and likely entry points across several companies at once.

The project was designed to be useful for:

  • vendors looking for the right account entry point
  • investors comparing operating shifts across a cohort
  • recruiters mapping functional hiring changes
  • analysts turning messy company data into structured briefs

Tool Surface

Pulse exposes a compact MCP tool set:

  • get_cohort
  • get_company_snapshot
  • compare_cohort_jobs
  • classify_company_phase
  • generate_company_brief
  • generate_cohort_brief
  • export_brief

Each tool returns JSON-compatible dictionaries or lists so the model can reason from structured evidence instead of scraping prose.

Architecture

pulse/
  crustdata.py    Mock/live Crustdata boundary and response adapters
  models.py       Pydantic contracts for snapshots, phases, comparisons, and briefs
  formatters.py   Raw records -> model-readable evidence objects
  phase.py        Deterministic phase heuristics with confidence and counter-evidence
  briefs.py       Structured company and cohort briefs
  tools.py        Tool orchestration and export handling
  server.py       FastMCP registration
  fixtures/       Mock cohort data
  examples/       Saved demo outputs

Mock and Live Modes

Pulse defaults to mock mode when no Crustdata token is present. This keeps the demo safe, repeatable, and reviewable without accidental external API calls. Live mode is explicit and requires either mode="live" at the tool call level or PULSE_MODE=live with a CRUSTDATA_API_TOKEN.

That boundary matters because agent tools should not silently spend API budget or leak assumptions about external data.

Example Workflow

A typical prompt asks Pulse to find a cohort of Series A/B AI infrastructure companies, compare hiring patterns, identify companies moving from product-building to GTM expansion, and produce organizational intelligence briefs for the top candidates.

The tool sequence looks like:

get_cohort(...)
compare_cohort_jobs(...)
classify_company_phase(...)
generate_company_brief(...)
generate_cohort_brief(...)

What This Shows

Pulse demonstrates MCP-native product thinking: the project is not just a script that summarizes data, but a structured tool layer designed for agent reasoning. It turns raw company evidence into compact, inspectable outputs that a model can use to make business judgments.

A man who is master of patience is master of everything else.

~ George Savile

Made with ❤️ by Mohit Goyal
© 2026. All rights reserved.