API documentation

The Direct Source Index API exposes fresh, verified job data crawled from company career pages and ATS systems. Every record is attributed to its source, and active/expired status is verified on a regular cadence.

Base URL

https://api.useflan.app

During local development, point your client at http://localhost:8080.

Authentication

Read endpoints are exposed over Connect-RPC and are public — no authentication required. Just send requests.

Account-scoped endpoints (saved jobs, alerts, API keys, usage) require a cookie session established via the website. API-key authentication is being rolled out; once enabled, pass your key as Authorization: Bearer jd_... on any request.

Create an API key →

Response shape

All list endpoints return cursor-paginated results:

{
  "data": [
    /* records */
  ],
  "pagination": {
    "nextCursor": "eyJwYWdlIjoyLCJzaWci...",
    "hasMore": true
  }
}
  • nextCursor is an empty string when there are no more results.
  • Cursors are opaque strings — pass them through verbatim. Do not construct them. The jobs-search cursor is bound to the filter set: changing any filter invalidates the cursor.

Endpoints

| Method | Connect path | Description | | ------ | ---------------------------------------------------------------------- | ------------------------------------------- | | POST | /flan.jobs.v1.JobsService/List | List/search jobs | | POST | /flan.jobs.v1.JobsService/Get | Job detail | | POST | /flan.jobs.v1.JobsService/GetSimilar | Similar jobs | | POST | /flan.meta.v1.MetaService/Get | Filter facets (countries, employment types) | | POST | /flan.companies.v1.CompaniesService/List | List companies | | POST | /flan.companies.v1.CompaniesService/Get | Company detail | | POST | /flan.companies.v1.CompaniesService/ListJobs | Jobs at a company |