For developers · Sandbox
Business API
Assess resumes from your ATS or CRM, and get evidence quoted from each resume. You make the hiring decision.
Sandbox only for now. It uses two fixed fake resumes and charges nothing. Real resume processing is not open yet.
$ curl https://www.craftmyresume.org/api/business/v1/assessments \-H "Authorization: Bearer $CMR_BUSINESS_KEY" \-H "Idempotency-Key: order-12345-attempt-0001" \-d '{"fixture_id":"backend-evidenced"}'202 Accepted# Later, a signed callback reaches your app:{ "type": "assessment.completed","data": { "status": "succeeded", "environment": "sandbox" } }X-CMR-Signature checked against the raw body
Build it with an AI coding tool
Paste one of these into Cursor, Claude Code or a similar tool. Each one points to a guide written for AI tools.
Connect my app
Read https://www.craftmyresume.org/business-llms.txt and follow its rules. Add a server-side client for the CraftMyResume Business sandbox to this project: start an assessment, then fetch its result when it finishes. Read the key from the CMR_BUSINESS_KEY environment variable. Do not invent endpoints.
Add the callback
Read https://www.craftmyresume.org/business-llms.txt and follow its rules. Add an HTTPS endpoint to this project that receives CraftMyResume callbacks. Verify X-CMR-Signature against the raw body before parsing, answer 2xx quickly, ignore event_ids already handled, then fetch the result with the API key and update our record. Add tests for a valid signature, a tampered body and a repeated event.
Show results safely
Read https://www.craftmyresume.org/business-llms.txt and follow its rules. Show a CraftMyResume result in our recruiter screen: score, coverage, and each requirement with its quote. Show "Not enough evidence" when score is null, and a warning when any requirement is contradictory. The recruiter makes the decision, so do not auto-reject anyone.
Quick start
- Create a workspace and a sandbox key.
- Start an assessment. It answers straight away with a job ID.
- Get told when it finishes by adding a callback address, or check
/jobs/{id}at most once every 5 seconds. - Fetch
/jobs/{id}/result.
Start an assessment
curl https://www.craftmyresume.org/api/business/v1/assessments \
-H "Authorization: Bearer $CMR_BUSINESS_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-12345-attempt-0001" \
-d '{"fixture_id":"backend-evidenced"}'Endpoints
Base URL: https://www.craftmyresume.org/api/business/v1
| POST | /assessments | Start an assessment |
| GET | /jobs/{id} | Check status |
| GET | /jobs/{id}/result | Get the result with evidence |
| POST | /jobs/{id}/cancel | Cancel a job |
| DELETE | /jobs/{id}/content | Delete a result |
| GET | /usage | Check usage |
| GET | /identity | Check your key |
OpenAPI spec · Full guide with callbacks, signatures and errors
Terms
Use of the API follows the business terms and acceptable use policy.