Resolve402 / services

Hiring signals

GET /api/hiring-signals · $0.01 per call (USDC on Base or Solana, x402)

Hiring signals of a company: open jobs read from its public ATS board (Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Personio, Workable, Teamtailor, Workday), summarized as buying signals (volume, last 30 days, functions hiring, seniority mix, leadership roles); each job carries its function and seniority (intern to c-level). From a domain, a French SIREN or a company name. Chain with /api/decision-makers to get who to contact. Charged only if open jobs are found.

Problem solved

You want to know if a company is hiring, how much and in which functions (a buying signal), before contacting its decision makers.

Use cases

Input

GET /api/hiring-signals?domain=<domain> | ?siren=<9 digits> | ?company=<name> [&limit=50]

ParameterWhereTypeDescription
domainquerystringCompany web domain, e.g. acme.com
sirenquerystring9-digit French SIREN (alternative to domain)
companyquerystringFrench company name (alternative to domain)
limitqueryintegerMax jobs returned (1-200, default 50)

Output

Finds the company's public ATS board (Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Personio, Workable, Teamtailor, Workday) and returns open jobs plus signals: open_jobs, posted_last_30d, hiring_intent (low/medium/high), by_function (sales, engineering, data_ai...), by_seniority, leadership_roles. "next" gives the /api/decision-makers call to chain. 404 = no public board or no open jobs, not charged.

Price

$0.01 per call. Charged only if open jobs are found: 404 (company or domain not found, no public ATS board, no open jobs) is not charged.

Example

GET https://resolve402.dev/api/hiring-signals?domain=doctolib.fr
{
  "domain": {
    "domain": "acme.com",
    "confidence": "high",
    "evidence": "caller"
  },
  "ats": {
    "provider": "lever",
    "board": "acme",
    "confidence": "high",
    "evidence": "ats_link_on_/careers"
  },
  "signals": {
    "open_jobs": 42,
    "posted_last_30d": 11,
    "hiring_intent": "high",
    "by_function": {
      "engineering": 18,
      "sales": 9
    },
    "by_seniority": {
      "mid": 25,
      "senior": 10,
      "lead": 4,
      "head_director": 2,
      "junior": 1
    },
    "leadership_roles": [
      {
        "title": "Head of Sales France"
      }
    ]
  },
  "jobs": [
    {
      "title": "Account Executive",
      "department": "Sales",
      "location": "Paris",
      "posted_at": "2026-09-28T00:00:00.000Z",
      "url": "https://jobs.lever.co/acme/1",
      "function": "sales",
      "seniority": "mid"
    }
  ]
}

Bazaar discovery example served in the production 402 (the response shows the shape on an illustrative acme.com board).

Sources

Limits

Use it

All services