# FAQ

## General

### What is Cubit?

Cubit provides AI vulnerability intelligence for the US labor market. We analyze every occupation to measure exposure to AI automation and the protective factors that keep work human-centric.

### Where does the data come from?

Cubit combines data from:

* **O\*NET 29.0**: Occupational structure, tasks, and skill requirements
* **Stanford HELM**: AI model capability benchmarks
* **Bureau of Labor Statistics**: Employment and wage data

Our proprietary contribution is the annotation, linkage, and scoring that transforms these sources into actionable AI vulnerability intelligence.

### How often is the data updated?

* **Benchmark scores**: Quarterly, as new AI evaluations are released
* **O\*NET data**: Annually, following O\*NET release schedule
* **Employment projections**: Annually, following BLS releases

### Is the data available outside the US?

Currently, Cubit covers US occupations based on O\*NET and BLS data. International coverage would require mapping to local occupational taxonomies. Contact us if you're interested in international data.

***

## Scores & Methodology

### What do the scores mean?

* **Automation Susceptibility (0-100)**: How exposed is the job to AI automation? Higher = more vulnerable.
* **Human-Centric Resilience (0-100)**: How protected by human necessity? Higher = more protected.
* **Balanced Impact (-100 to +100)**: Net positioning. Positive = more protected than exposed.

### How is "AI capability" measured?

We map each occupational skill/ability/knowledge to AI benchmarks that test similar cognitive capabilities. Model performance on those benchmarks determines the AI resilience score for each requirement. Tasks inherit capability scores based on which requirements they need.

### Why task-level analysis?

Jobs are bundles of tasks with heterogeneous exposure. A "Financial Analyst" does data gathering (automatable), modeling (partially automatable), and client relationships (protected). Job-level analysis obscures these differences; task-level analysis reveals them.

### What's a "keystone skill"?

A skill that is both **high-relevance** to a job and **high-resilience** to AI. These are the capabilities that remain valuable as AI automates more routine work.

### Are these scores predictions?

No. Scores measure current positioning-how exposed a job is today and what protective factors exist. Actual displacement depends on adoption rates, economics, regulation, and organizational factors beyond task analysis.

***

## Using the API

### How do I get an API key?

1. Sign up at [cubit.maidenlabs.tools](https://cubit.maidenlabs.tools)
2. Go to your Dashboard
3. Click "Create API Key"
4. Copy and store securely (shown once)

### What's the difference between tiers?

| Feature            | Sandbox | Professional | Enterprise |
| ------------------ | ------- | ------------ | ---------- |
| Requests/day       | 100     | 5,000        | Unlimited  |
| Occupations        | 100     | All 923      | All 923    |
| Semantic search    |         |              |            |
| Task-level data    |         |              |            |
| Regional data      |         |              |            |
| Custom scoring     |         |              |            |
| Career transitions |         |              |            |

### What's a SOC code?

Standard Occupational Classification code from O\*NET. Format: `XX-XXXX.XX` (e.g., "15-1252.00" for Software Developers).

### What's an MSA code?

Metropolitan Statistical Area code. A 5-digit identifier for US metro regions (e.g., "31080" for Los Angeles).

### Can I cache API responses?

Yes, and we encourage it. Job profiles and skill data change infrequently. Cache with TTLs of 24 hours or more to reduce API calls.

***

## Technical

### What's the API base URL?

```
https://api.maidenlabs.tools
```

### Is there an OpenAPI specification?

Yes: `https://api.maidenlabs.tools/openapi.json`

### What's the Python package name?

```bash
pip install cubit-api
```

### Is there a JavaScript SDK?

Not yet. Use the REST API directly or let us know if you'd like one.

### How do I handle rate limits?

Check the `X-RateLimit-Remaining` header. When you hit a 429 error, wait for the `Retry-After` duration before retrying.

***

## Specific Use Cases

### How do I find career transitions?

Use the `/jobs/transitions` endpoint (Enterprise) or manually compare keystone skills between jobs using the Professional tier.

```python
transitions = client.find_transitions(
    source_soc="43-3031.00",  # Bookkeeper
    min_resilience_gain=10
)
```

### How do I analyze a workforce portfolio?

1. Get your organization's job codes
2. Fetch profiles for each (or use batch lookup)
3. Aggregate by headcount

```python
batch = client.batch_lookup(your_soc_codes)
for job in batch["jobs"]:
    exposure = job["scores"]["automation_susceptibility_score"]
    # Weight by headcount
```

### How do I build a regional dashboard?

Use `/regions` for list views and `/regions/{msa_code}` for details:

```python
regions = client.list_regions(state="CA")
for region in regions["regions"]:
    print(f"{region['msa_name']}: ${region['total_at_risk_wages']:,}")
```

### How do I find which skills to develop?

Look at keystone skills (high job relevance x high AI resilience):

```python
job = client.get_job("15-1252.00")
for skill in job["keystone_skills"]:
    print(f"{skill['name']}: {skill['ai_resilience']}% AI-resilient")
```

***

## Troubleshooting

### I'm getting 401 errors

* Check your API key for typos
* Ensure you're using the `Bearer` prefix: `Authorization: Bearer cubit_...`
* Your key may have been rotated-generate a new one

### I'm getting 403 errors

* You're accessing features not in your tier
* Sandbox tier: limited occupations, no semantic search
* Upgrade or use alternative endpoints

### I'm getting 429 errors

You've hit your rate limit. Options:

* Wait for reset (midnight UTC)
* Cache responses to reduce requests
* Upgrade to a higher tier

### Semantic search isn't working

* Requires Professional or Enterprise tier
* Check that the embedding service is available
* Fall back to keyword search if unavailable

***

## Contact

### How do I get support?

* **Documentation**: You're here!
* **Email**: <support@cubit.maidenlabs.tools>
* **Enterprise**: <enterprise@cubit.maidenlabs.tools>

### How do I report a bug?

Email <support@cubit.maidenlabs.tools> with:

* Your request (endpoint, parameters)
* The response you received
* The `request_id` if available

### How do I request a feature?

Email <support@cubit.maidenlabs.tools>. We'd love to hear what would make Cubit more useful for your use case.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.maidenlabs.tools/resources/faq.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
