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.
Response shape
All list endpoints return cursor-paginated results:
{
"data": [
/* records */
],
"pagination": {
"nextCursor": "eyJwYWdlIjoyLCJzaWci...",
"hasMore": true
}
}
nextCursoris 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 |

