# Ethiojobs — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and explore job listings across Ethiopian companies with detailed job information, categories, locations, and industries. Discover company profiles, view their open positions, and find similar job opportunities tailored to your preferences.

**Category:** Jobs | **Website:** [ethiojobs.net/](https://ethiojobs.net/) | **Docs:** [parse.bot/marketplace/a9d190ac-9b80-4c79-acc6-0db60ae699be/ethiojobs-net-api](https://parse.bot/marketplace/a9d190ac-9b80-4c79-acc6-0db60ae699be/ethiojobs-net-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_company_detail

Retrieve full details for a specific company including description, industry, locations, active jobs list, and contact information. Returns the unwrapped company object directly.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `company_id` | string | Yes | Encrypted company ID (from list_companies or search_jobs results). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/get_company_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company_id":"<string>"}'
```

### get_company_jobs

Retrieve all active jobs for a specific company. Returns the company name, list of active job objects, and total count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `company_id` | string | Yes | Encrypted company ID (from list_companies or search_jobs results). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/get_company_jobs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company_id":"<string>"}'
```

### get_job_detail

Retrieve full details for a specific job listing including description, requirements, how to apply, company info, skills, and career level. Returns the unwrapped job object directly.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `job_id` | string | Yes | Encrypted job ID (from search_jobs results items[*].id). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/get_job_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job_id":"<string>"}'
```

### get_similar_jobs

Retrieve jobs in the same category as a given job. Fetches the job's category first, then returns other jobs in that category. Useful for discovering related opportunities.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `job_id` | string | Yes | Encrypted job ID (from search_jobs results items[*].id). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/get_similar_jobs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job_id":"<string>"}'
```

### list_categories

List all available job categories on EthioJobs. Each category has an encrypted ID and name that can be used as the category_id filter in search_jobs.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/list_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### list_companies

Retrieve a paginated list of companies registered on EthioJobs. Returns company profiles including industry, active job count, and contact info. Can be filtered by featured status.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `featured` | string | No | Filter by featured companies: 'true' or 'false'. |
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/list_companies \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"featured":"<string>","page":"<integer>"}'
```

### list_industries

List all available company industries grouped by sector. Each industry has an encrypted ID, name, and parent sector object.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/list_industries \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### list_locations

List all available locations/regions in Ethiopia. Returns state IDs that can be used as the state_id filter in search_jobs.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/list_locations \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### search_jobs

Full-text search over Ethiopian job listings with optional filters by category, location, career level, employment type, and featured status. Paginates via page number. Returns job summaries including title, company, location, categories, and publication/expiry dates.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | No | Filter by category ID (encrypted ID from list_categories). |
| `featured` | string | No | Filter by featured status: 'true' or 'false'. |
| `level_id` | string | No | Filter by career level ID (encrypted ID). |
| `limit` | integer | No | Number of results per page. |
| `page` | integer | No | Page number for pagination. |
| `query` | string | No | Search keyword to match against job titles and descriptions. |
| `state_id` | string | No | Filter by state/location ID (numeric ID from list_locations). |
| `type_id` | string | No | Filter by employment type ID (encrypted ID). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ethiojobs-net-api-a9d190ac/search_jobs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","featured":"<string>","level_id":"<string>","limit":"<integer>","page":"<integer>","query":"<string>","state_id":"<string>","type_id":"<string>"}'
```
