DEV Community

Data Reaktor
Data Reaktor

Posted on

How to give your AI agent a job search networking tool with MCP or a REST API

Data Reaktor is a job search desk. For a job seeker's target companies, it finds the people inside from public sources, scores a warm path to each one from 0 to 100, and drafts intros that the person sends themselves. It never sends anything.

This post shows how an agent can sign itself up, run one search and get one draft back. Every endpoint here comes from our public AGENTS.md. The IDs in the examples are illustrative.

What the agent gets

  • A remote MCP server at https://www.datareaktor.ai/mcp over Streamable HTTP
  • The same operations over REST at https://www.datareaktor.ai/api/v1
  • An OpenAPI spec at /api/v1/openapi.json, plus llms.txt and /.well-known/agent.json for discovery

Some rules are built into the API, so your agent cannot break them by accident. People come from public sources only, and each person has a source URL. LinkedIn is never fetched or logged into. Emails appear only when they were found on a public page. Drafts come back with "delivery": "user_sends", and mark_sent only works when the user reports that they sent the message.

Step 1: register the agent

There is no sign up form, email or captcha. One request gets a key:

curl -s -X POST https://www.datareaktor.ai/api/v1/agents/register \
  -H "Content-Type: application/json" \
  -d '{ "name": "my-job-search-agent", "acceptTerms": true }'
Enter fullscreen mode Exit fullscreen mode

name must be unique and 3 to 64 characters. acceptTerms must be true (the terms are at datareaktor.ai/terms-of-service). You can also send an optional purpose of up to 280 characters and a homepage. The response is a 201 with your API key. It is shown once, so store it.

The trial is 300 credits for 60 days, 60 requests per minute and 60 lookups per day. GET /api/v1/agent/account shows credits left. Costs are 5 credits per company for people discovery, 2 per warm path score, 6 per draft and 5 per contact lookup. No card is ever charged, and a refused call charges nothing.

Step 2: connect over MCP

For Cursor, add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "data-reaktor": {
      "url": "https://www.datareaktor.ai/mcp",
      "headers": { "X-API-Key": "drk_live_YOUR_KEY_HERE" }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Claude Desktop uses the same block with "transport": "streamable-http" added. Hosted connectors that only speak OAuth, like the ChatGPT and claude.ai connectors, do not work yet. OAuth 2.1 is planned. Until then, use a key from your own client or code.

A typical tool flow: get_setup_status, create_search, add_target_company, estimate_cost, find_inside_people, get_job, list_people, draft_intro. There are 46 tools in total, and every one maps to a REST endpoint.

Step 3: the same run over REST

KEY="drk_live_YOUR_KEY_HERE"
API="https://www.datareaktor.ai/api/v1"

# 1. Create a search
curl -s -X POST "$API/searches" -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{ "name": "Senior PM, fintech", "targetLevel": "senior" }'

# 2. Add a target company (no charge yet)
curl -s -X POST "$API/searches/12/targets" -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{ "companies": [ { "companyName": "Fernhill Payments", "domain": "fernhill.example" } ] }'

# 3. Estimate, then start discovery with a hard cap
curl -s -X POST "$API/estimate" -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{ "searchId": 12, "draftsPerTarget": 0 }'
curl -s -X POST "$API/searches/12/people:discover" -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{ "max_credits": 60, "draftsPerTarget": 0 }'

# 4. Poll the job until it is completed, failed or cancelled
curl -s "$API/jobs/JOB_ID" -H "X-API-Key: $KEY"

# 5. List people, with sources and ranked paths
curl -s "$API/searches/12/people" -H "X-API-Key: $KEY"

# 6. Draft an intro for one person (returned, never sent)
curl -s -X POST "$API/people/31/drafts" -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{ "mode": "connector_ask" }'
Enter fullscreen mode Exit fullscreen mode

Discovery runs as a background job. The call returns a 202 with a job_id and a poll URL, and max_credits is required so the agent cannot overspend. Discovery finds up to 5 people per company. draftsPerTarget defaults to 0 for agent keys, so you only pay for drafts you ask for. Draft modes are connector_ask, hiring_manager_note, alumni_note, follow_up and thank_you.

Your agent should show the estimate to the user and ask before step 3. AGENTS.md says the same.

Step 4: hand the draft to the human

The draft is plain text. The user reads it, edits it and sends it from their own account. After they confirm, the agent records it:

curl -s -X POST "$API/drafts/77/mark-sent" -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{ "user_reported": true, "channel": "linkedin" }'
Enter fullscreen mode Exit fullscreen mode

A follow up then comes due 5 business days later, and list_followups returns it.

Making paths warmer

Warm path scores get better when the user imports their LinkedIn Connections.csv with import_connections. The score is deterministic: first degree, former colleague, alumni, mutual connection or cold. Without the file, most paths start cold.

Limits

60 requests per minute per key, 40 drafts per day, and up to 5 people per company. Errors are JSON with a stable code, a retryable flag and nextSteps.

Links

If you are the job seeker rather than the agent builder, the web app is free during the beta, no card: https://www.datareaktor.ai/sign-up?utm_source=devto&utm_medium=community&utm_campaign=gtm-w1-2026-10&utm_content=article-signup

Top comments (0)