Introduction

Welcome to useResume API - a platform for programmatically generating professional, ATS-optimized resume PDFs. Integrate resume creation capabilities directly into your applications and workflows. The platform also offers AI-powered tailoring to automatically optimize resumes and cover letters for specific job postings.

  • Professional Templates

    Multiple ATS-friendly resume and cover letter designs

  • AI-Powered Tailoring

    Optimize documents for specific job postings

  • Flexible Styling

    Customize fonts, colors, layouts, and formatting

  • Global Support

    Multiple languages, date formats, and page sizes

All API requests require authentication via API key. Generate your API key from the dashboard after registration and include it in the Authorization header as a Bearer token for all requests.

The API uses a credit-based system. Each successfully generated PDF consumes 1 credit, regardless of template. Tailored resumes and cover letters consume 5 credits. API calls that don't result in a PDF (such as validation errors) do not consume credits.

Generated files are stored for 14 days, but download URLs expire after 24 hours - download your files promptly after generation.

Getting Started

  1. 1. Sign up for an account at useresume.ai
  2. 2. Generate your API key from the dashboard
  3. 3. Make your first API call using the 'Create a resume' endpoint
  4. 4. Download the generated PDF from the returned URL
Request typeCredits
Standard 1
Tailored 5

Create a resume

Generates a formatted resume PDF with your content and styling preferences.

Body

Response

Returns an object with a time-limited signed URL to download the resume PDF. The URL expires in 24 hours. Download the file promptly after generation.

POST /api/v3/resume/create
1const result = await fetch(`https://useresume.ai/api/v3/resume/create`, {
2    method: "POST",
3    headers: {
4        Authorization: `Bearer ${USERESUME_API_KEY}`,
5        "Content-Type": "application/json"
6    },
7    body: JSON.stringify({
8        content: {
9            name: "John Doe",
10            role: "Software Engineer",
11            email: "john.doe@example.com",
12            phone: "+1234567890",
13            address: "New York, NY",
14            summary: "Experienced software engineer with 5+ years building scalable web applications.",
15            employment: [
16                {
17                    title: "Senior Software Engineer",
18                    company: "Tech Corp",
19                    location: "New York, NY",
20                    start_date: "2020-01-01",
21                    present: true
22                }
23            ],
24            skills: [
25                {
26                    name: "JavaScript",
27                    proficiency: "Expert",
28                    display_proficiency: true
29                },
30                {
31                    name: "React",
32                    proficiency: "Advanced",
33                    display_proficiency: true
34                }
35            ]
36        },
37        style: {
38            template: "default",
39            template_color: "blue",
40            font: "inter",
41            page_padding: 1.54,
42            page_format: "a4",
43            date_format: "LLL yyyy",
44            background_color: "white",
45            profile_picture_radius: "rounded-full"
46        }
47    })
48});
Response
1{
2  "success": true,
3  "data": {
4    "file_url": "https://useresume-platform.com/resume/john-doe-resume.pdf",
5    "file_url_expires_at": 1728388800000,
6    "file_expires_at": 1728388800000,
7    "file_size_bytes": 251904,
8  },
9  "meta": {
10    "run_id": "run_123456789",
11    "credits_used": 1,
12    "credits_remaining": 499
13  }
14}
15

Create a tailored resume

Use this endpoint to create tailored resume files using LLMs. Provide the resume data, job description and the styling options to generate the document.

Body

Response

Returns an object with a time-limited signed URL to download the resume PDF. The URL expires in 24 hours. Download the file promptly after generation.

POST /api/v3/resume/create-tailored
1const result = await fetch(`https://useresume.ai/api/v3/resume/create-tailored`, {
2    method: "POST",
3    headers: {
4        Authorization: `Bearer ${USERESUME_API_KEY}`,
5        "Content-Type": "application/json"
6    },
7    body: JSON.stringify({
8        resume_content: {
9            content: {
10                name: "John Doe",
11                role: "Software Engineer",
12                email: "john.doe@example.com",
13                phone: "+1234567890",
14                address: "New York, NY",
15                summary: "Experienced software engineer with 5+ years building scalable web applications.",
16                employment: [
17                    {
18                        title: "Senior Software Engineer",
19                        company: "Tech Corp",
20                        location: "New York, NY",
21                        start_date: "2020-01-01",
22                        present: true
23                    }
24                ],
25                skills: [
26                    {
27                        name: "JavaScript",
28                        proficiency: "Expert",
29                        display_proficiency: true
30                    },
31                    {
32                        name: "React",
33                        proficiency: "Advanced",
34                        display_proficiency: true
35                    }
36                ]
37            },
38            style: {
39                template: "default",
40                template_color: "blue",
41                font: "inter",
42                page_padding: 1.54,
43                page_format: "a4",
44                date_format: "LLL yyyy",
45                background_color: "white",
46                profile_picture_radius: "rounded-full"
47            }
48        },
49        target_job: {
50            job_title: "Senior Software Engineer",
51            job_description: "We are looking for a Senior Software Engineer to join our team. The ideal candidate will have experience with JavaScript, React, Node.js, and cloud technologies. You will be responsible for developing scalable web applications and mentoring junior developers."
52        }
53    })
54});
Response
1{
2  "success": true,
3  "data": {
4    "file_url": "https://useresume-platform.com/resume/john-doe-resume.pdf",
5    "file_url_expires_at": 1728388800000,
6    "file_expires_at": 1728388800000,
7    "file_size_bytes": 251904,
8  },
9  "meta": {
10    "run_id": "run_123456789",
11    "credits_used": 5,
12    "credits_remaining": 495
13  }
14}
15

Create a cover letter

Use this endpoint to create a cover letter PDF file in your desired template. Provide the content and the styling options to generate the document.

Body

Response

Returns an object with a time-limited signed URL to download the cover letter PDF. The URL expires in 24 hours. Download the file promptly after generation.

POST /api/v3/cover-letter/create
1const result = await fetch(`https://useresume.ai/api/v3/cover-letter/create`, {
2    method: "POST",
3    headers: {
4        Authorization: `Bearer ${USERESUME_API_KEY}`,
5        "Content-Type": "application/json"
6    },
7    body: JSON.stringify({
8        content: {
9            name: "John Doe",
10            address: "123 Main St, Anytown, USA",
11            email: "john.doe@example.com",
12            phone: "+1234567890",
13            role: "Software Engineer",
14            hiring_manager_name: "Jane Smith",
15            hiring_manager_company: "Acme Corporation",
16            text: "Dear Hiring Manager,\nI am writing to express my strong interest in the Software Engineer position at Acme Corporation. With over 5 years of experience in full-stack development, I am confident that my skills and passion for innovation make me an ideal candidate for this role.\nThroughout my career, I have demonstrated expertise in building scalable web applications and collaborating with cross-functional teams. I am particularly excited about the opportunity to contribute to your team's mission of delivering cutting-edge solutions.\nThank you for considering my application. I look forward to the opportunity to discuss how my background and skills align with your needs.\nSincerely,\nJohn Doe"
17        },
18        style: {
19            template: "nova",
20            template_color: "blue",
21            font: "inter",
22            page_padding: 1.54,
23            document_language: "en",
24            page_format: "a4",
25            background_color: "white"
26        }
27    })
28});
Response
1{
2  "success": true,
3  "data": {
4    "file_url": "https://useresume-platform.com/cover-letter/john-doe-cover-letter.pdf",
5    "file_url_expires_at": 1728388800000,
6    "file_expires_at": 1728388800000,
7    "file_size_bytes": 251904,
8  },
9  "meta": {
10    "run_id": "run_123456789",
11    "credits_used": 1,
12    "credits_remaining": 499
13  }
14}
15

Create a tailored cover letter

Use this endpoint to create tailored cover letter files using LLMs. Provide the cover letter data, job description and the styling options to generate the document.

Body

Response

Returns an object with a time-limited signed URL to download the tailored cover letter PDF. The URL expires in 24 hours. Download the file promptly after generation.

POST /api/v3/cover-letter/create-tailored
1const result = await fetch(`https://useresume.ai/api/v3/cover-letter/create-tailored`, {
2    method: "POST",
3    headers: {
4        Authorization: `Bearer ${USERESUME_API_KEY}`,
5        "Content-Type": "application/json"
6    },
7    body: JSON.stringify({
8        cover_letter_content: {
9            content: {
10                name: "John Doe",
11                address: "123 Main St, Anytown, USA",
12                email: "john.doe@example.com",
13                phone: "+1234567890",
14                role: "Software Engineer",
15                hiring_manager_name: "Jane Smith",
16                hiring_manager_company: "Acme Corporation",
17                text: "Dear Hiring Manager,\\nI am writing to express my strong interest in the Software Engineer position at Acme Corporation. With over 5 years of experience in full-stack development, I am confident that my skills and passion for innovation make me an ideal candidate for this role.\\nThroughout my career, I have demonstrated expertise in building scalable web applications and collaborating with cross-functional teams. I am particularly excited about the opportunity to contribute to your team's mission of delivering cutting-edge solutions.\\nThank you for considering my application. I look forward to the opportunity to discuss how my background and skills align with your needs.\\nSincerely,\\nJohn Doe"
18            },
19            style: {
20                template: "nova",
21                template_color: "blue",
22                font: "inter",
23                page_padding: 1.54,
24                document_language: "en",
25                page_format: "a4",
26                background_color: "white"
27            }
28        },
29        target_job: {
30            job_title: "Senior Software Engineer",
31            job_description: "We are looking for a Senior Software Engineer to join our team. The ideal candidate will have experience with JavaScript, React, Node.js, and cloud technologies. You will be responsible for developing scalable web applications and mentoring junior developers."
32        }
33    })
34});
Response
1{
2  "success": true,
3  "data": {
4    "file_url": "https://useresume-platform.com/cover-letter/john-doe-cover-letter.pdf",
5    "file_url_expires_at": 1728388800000,
6    "file_expires_at": 1728388800000,
7    "file_size_bytes": 251904,
8  },
9  "meta": {
10    "run_id": "run_123456789",
11    "credits_used": 5,
12    "credits_remaining": 495
13  }
14};
15

Retrieve a run

Use this endpoint to retrieve a single run by its ID.

Body

No body parameters

Response

Returns an object with run details, including a signed URL to download the generated file if the file did not expire. The signed URL will expire in 24 hours.

GET /api/v3/run/get/{run_id}
1const result = await fetch(`https://useresume.ai/api/v3/run/get/run_123`, {
2    method: "GET",
3    headers: {
4        Authorization: `Bearer ${USERESUME_API_KEY}`
5    }
6});
Response
1{
2  "success": true,
3  "data": {
4    "id": "run_123",
5    "created_at": "1728388800000",
6    "endpoint": "resume/create",
7    "api_platform_user_id": "user_123",
8    "credits_used": 1,
9    "status": "success",
10    "file_url": "https://useresume-platform.com/{document_type}/abc123.pdf",
11    "file_url_expires_at": 1728388800000,
12    "file_expires_at": 1728388800000,
13    "file_size_bytes": 251904,
14  }
15};
16