How ReacherX adapts its CRM to different use cases
🆁 ReacherXv4 beta
  • Pricing
0
Log inGet started
0
Skip to blog content
  1. Blog
  2. ·
  3. Engineering

How ReacherX adapts its CRM to different use cases

Follow a workspace use case from shared definitions to profile stages, △ Agent prompts, and reporting.

Salman
·Founder, ReacherX
Jul 17, 2026·3 min read·Updated Sep 11, 2026

On this page

  1. Start with the recruiting definition
  2. Follow the label onto the screen
  3. Follow the instructions into the agent

Open a candidate who has been marked Hired, then look at the stored status. You'll find converted, not hired. A customer can have that same value. The workspace tells the app what the value means to the person using it.

That is the first thing to understand before changing a use case in ReacherX. You don't need a new table for every kind of person the user wants to find. The shared definition changes the labels and gives △ Agent context about the job.

This walkthrough follows v4 beta at commit 8ea2662.

Start with the recruiting definition

In shared/lib/workspaceUseCases.ts, find recruiting. Here are its stage labels:

Suppose you want a different word for Interviewing. Change the label, then check the places that show it. Keep in_progress as the key. Replacing that stored value would involve the schema and the code that reads and writes it.

Look below the labels for promptContext. It includes searchIntent, qualificationLens, outreachGoal, and successDefinition. Those tell △ Agent what this use case is for. Finding someone to hire calls for different evidence from finding someone who might buy a product.

The same entry contains entity names, routes, and page labels. This command will help you find code that uses the labels and prompt context:

Follow the label onto the screen

useActiveUseCaseLabels.ts resolves the active definition. The loaded workspace takes priority. While it is loading, the hook can use a cached value, then the server-provided value or product default. Setup has its own draft choice.

If a hiring workspace shows customer labels, inspect that resolved key first. Don't fix it by hard-coding “Candidates” into a component. PipelineTimeline.tsx, profiles, and card menus need to agree about the active use case.

Now change a candidate's stage. The action reaches updateProspectStatus in convex/prospects.ts. That mutation checks ownership, writes status and pipelineStage, and records the stage timestamp. Archiving also schedules a pause of automated work. You must unarchive the person before moving them to a later stage.

Follow the instructions into the agent

convex/agents/prompts.ts builds prompts from the definition. convex/agents/internal.ts and convex/agents/outreach/index.ts use it when preparing context too.

The audience supplies the user's particular requirements. Saved memories add instructions, and convex/lib/learningCore.ts includes the use case in learning context. Changing that context doesn't retrain the model. The memory article explains what is stored and retrieved.

After a change, read the resulting prompt. Does △ Agent still ask for buying intent in a recruiting workspace? Check a hiring workspace, then a partnership workspace, then a new setup draft. Check the list, profile, stage menu, success page, and Analytics.

The workspace-use-case and prospect-status tests cover nearby behavior. Include an older workspace with no use-case key and an archived person when those paths are affected. Read the generated Convex guidelines before changing the mutation. The architecture overview connects this path to the rest of the app.

← Back to blog

Explore

Jul 13, 2026·Engineering

How ReacherX remembers instructions and learns from work

Salman
·Founder, ReacherX
Sep 8, 2026·Engineering

A developer’s guide to the ReacherX codebase

Salman
·Founder, ReacherX

Find the network you need.

Get started
🆁 ReacherXv4 beta
Get in touch
Product
  • Home
  • Pricing
  • Changelog
Resources
  • Blog
  • For AI agents
  • Contact
Open source
  • GitHub
  • Documentation
  • Contribute
  • Patreon
  • Discord community
  • License (AGPL-3.0)
Follow on
Follow on
Copyright © 2026 🆁 ReacherX. All rights reserved.
Privacy policy|Terms of service
sh
rg 'stageLabels|promptContext' shared features convex
ts
stageLabels: {
  new: "Sourced",
  contacted: "Contacted",
  in_progress: "Interviewing",
  converted: "Hired",
  archived: "Archived",
},
Salman
·Founder, ReacherX
Salman
·Founder, ReacherX
Salman
·Founder, ReacherX