Skip to content

Job Matching API · Early access

Résumé in, ranked live jobs out.

Your model can read a résumé. It can't see today's job market. POST résumé text to Seeker and get back real, currently-open roles ranked by fit, each with the evidence it matches and the reasons it might not. One HTTP call, plain JSON.

Works with Claude, ChatGPT, Cursor, or any agent that speaks HTTP.

Where it fits

One call in your agent's loop.

Your agent already talks to the user. Seeker is the step that turns a résumé into real, ranked openings it can talk about.

Your AI agent

sends the résumé

POST /v1/match

Seeker

searches live listings

ranked jobs + fit info

Your AI agent

shows the user the jobs

The call

Send résumé text. Get ranked jobs.

The whole request is a résumé. No parsing, no embeddings, no job data to supply.

POST /v1/match · request
{
  "candidateSchemaVersion": 1,
  "sourceText": "Senior iOS engineer, 6 yrs.
     Swift, UIKit, AppKit…"
}
200 OK · response
live corpus
{
  "matches": [
    {
      "company": "Stripe",
      "title": "Staff Backend Engineer",
      "url": "https://stripe.com/jobs/…",
      "score": 91,
      "skillMatchPct": 88,
      "matchExplanation": "Strong overlap:
         Go, distributed systems.",
      "rejectionRisks": ["Emphasizes Kafka."]
    }
    // + 71 more, ranked by score
  ],
  "corpusVersion": "2026-06-29"
}
Advanced parametersall optional
candidate
Structured profile (skills, experience, education, target roles) to bias the ranking beyond the raw text.
jobs
Up to 25 of your own listings to score against this résumé instead of the live corpus.
agent
Your platform / product / version, for your own analytics.
endUserId
An opaque ID for the end user, so you can correlate calls on your side.

Quickstart

Live in one
authenticated POST.

No SDK. If your agent can make an HTTP request, it can call Seeker.

  1. 1

    Get your key

    Seeker is opening access gradually. Join the waitlist, tell us what you're building, and we'll send your key when your project is up.

    Join the waitlist
  2. 2

    Send the résumé

    One POST. Your key in the header, the résumé text as sourceText.

    curl https://www.seekerscore.com/v1/match \
      -H "Authorization: Bearer skr_live_…" \
      -d '{ "candidateSchemaVersion": 1,
            "sourceText": "…résumé text…" }'
    
  3. 3

    Read the matches

    Ranked jobs come back as JSON. Map over them and hand your user the roles, the scores, and the reasoning. That's the whole integration.

    const { matches } = await res.json();
    matches.forEach(job => {
      console.log(job.title, job.score);
      // job.matchExplanation, job.rejectionRisks
    });
    
  4. The API may return a temporary timeout while processing a résumé for the first time. Retrying the same request is safe.

The Seeker layer

Why not just use an LLM?

Your AI can understand a résumé. Seeker gives it a hiring market to evaluate.

A hiring market

LLMs don't keep a live hiring dataset. Seeker does.

Every request is evaluated against a corpus of real job postings that gains new listings daily and re-checks each one periodically.

Matching, not retrieval

Job search starts with a query. Seeker starts with a candidate.

Retrieval gives you whatever the search returns. Seeker pulls candidate roles from its live corpus for the candidate, scores each one, then ranks the strongest matches.

Deterministic results

LLMs generate. Seeker scores.

The same résumé produces the same ranking every time, with an explanation for every recommendation. Testable, cacheable, easy to explain.

One API call. An entire hiring market evaluated against your candidate.

Auth

A Bearer token in the Authorization header. One key per project.

Access

Seeker is in early access. Join the waitlist and we'll reach out as access expands.

Pricing

Free while in early access. Usage-based pricing comes later, with notice first.

Join the waitlist.

We're expanding access as we keep building Seeker. Join the waitlist and we'll let you know when your project can get started. Free while in early access.