npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@sharpapi/sharpapi-node-job-description

v1.0.1

Published

SharpAPI.com Node.js SDK for generating job descriptions

Readme

SharpAPI GitHub cover

Job Description Generator API for Node.js

📋 Generate professional job descriptions with AI — powered by SharpAPI.

npm version License

SharpAPI Job Description Generator creates comprehensive, professional job descriptions based on position details, requirements, and company information. Perfect for HR departments, recruitment agencies, and job boards.


📋 Table of Contents

  1. Requirements
  2. Installation
  3. Usage
  4. API Documentation
  5. Response Format
  6. Examples
  7. License

Requirements

  • Node.js >= 16.x
  • npm or yarn

Installation

Step 1. Install the package via npm:

npm install @sharpapi/sharpapi-node-job-description

Step 2. Get your API key

Visit SharpAPI.com to get your API key.


Usage

const { SharpApiJobDescriptionService, JobDescriptionParameters } = require('@sharpapi/sharpapi-node-job-description');

const apiKey = process.env.SHARP_API_KEY;
const service = new SharpApiJobDescriptionService(apiKey);

const params = new JobDescriptionParameters(
  'Senior Software Engineer',        // name
  'Tech Innovators Inc',             // company_name
  '5+ years',                        // minimum_work_experience
  "Bachelor's Degree",               // minimum_education
  'Full-time',                       // employment_type
  ['JavaScript', 'Node.js', 'React'], // required_skills
  ['TypeScript', 'Docker'],          // optional_skills
  'United States',                   // country
  true,                              // remote
  false,                             // visa_sponsored
  'Professional',                    // voice_tone
  null,                              // context
  'English'                          // language
);

async function generateJobDescription() {
  try {
    const statusUrl = await service.generateJobDescription(params);
    console.log('Job submitted. Status URL:', statusUrl);

    const result = await service.fetchResults(statusUrl);
    console.log('Job description:', result.getResultJson());
  } catch (error) {
    console.error('Error:', error.message);
  }
}

generateJobDescription();

API Documentation

Methods

generateJobDescription(params: JobDescriptionParameters): Promise<string>

Generates a comprehensive job description based on the provided parameters.

Parameters (JobDescriptionParameters):

  • name (string, required): Job position name
  • company_name (string, optional): Company name
  • minimum_work_experience (string, optional): Required experience (e.g., "3-5 years")
  • minimum_education (string, optional): Required education level
  • employment_type (string, optional): Full-time, part-time, contract, etc.
  • required_skills (array, optional): List of required skills
  • optional_skills (array, optional): List of nice-to-have skills
  • country (string, optional): Job location country
  • remote (boolean, optional): Whether remote work is allowed
  • visa_sponsored (boolean, optional): Whether visa sponsorship is available
  • voice_tone (string, optional): Tone of the description (e.g., 'Professional', 'Casual')
  • context (string, optional): Additional custom requirements
  • language (string, optional): Output language (default: 'English')

Returns:

  • Promise: Status URL for polling the job result

Response Format

The API returns a structured job description with three main sections:

{
  "data": {
    "type": "api_job_result",
    "id": "3c4e887a-0dfd-49b6-8edb-9280e468c210",
    "attributes": {
      "status": "success",
      "type": "hr_job_description",
      "result": {
        "job_position": "Senior PHP Software Engineer",
        "company_name": "Apple Inc",
        "job_short_description": "We are seeking an experienced Senior PHP Software Engineer to join our dynamic team at Apple Inc. This is a full-time, remote position based in the United Kingdom with visa sponsorship available for qualified candidates.",
        "job_requirements": [
          "Bachelor's Degree in Computer Science or related field",
          "Minimum 5 years of professional PHP development experience",
          "Expert knowledge of PHP8 and modern PHP practices",
          "Strong experience with Laravel framework",
          "Proficiency in MySQL database design and optimization",
          "Valid C-class driving license",
          "Excellent problem-solving and analytical skills",
          "Strong communication skills in English"
        ],
        "job_responsibilities": [
          "Design, develop, and maintain complex PHP applications using Laravel framework",
          "Write clean, maintainable, and efficient code following best practices",
          "Optimize database queries and ensure high performance of MySQL databases",
          "Collaborate with cross-functional teams to define and implement new features",
          "Participate in code reviews and provide constructive feedback",
          "Mentor junior developers and share knowledge with the team",
          "Stay updated with the latest PHP and Laravel developments",
          "Troubleshoot and resolve technical issues in production environments"
        ],
        "optional_skills": [
          "Experience with AWS RDS and AWS Aurora",
          "Familiarity with GitFlow workflow",
          "Knowledge of microservices architecture",
          "Experience with CI/CD pipelines"
        ]
      }
    }
  }
}

Examples

Basic Job Description

const { SharpApiJobDescriptionService, JobDescriptionParameters } = require('@sharpapi/sharpapi-node-job-description');

const service = new SharpApiJobDescriptionService(process.env.SHARP_API_KEY);

const params = new JobDescriptionParameters(
  'Marketing Manager',
  'Acme Corp',
  '3-5 years',
  "Bachelor's Degree in Marketing",
  'Full-time',
  ['Digital Marketing', 'SEO', 'Content Strategy'],
  ['Google Analytics', 'HubSpot'],
  'Canada',
  false,
  false,
  'Professional',
  null,
  'English'
);

service.generateJobDescription(params)
  .then(statusUrl => service.fetchResults(statusUrl))
  .then(result => {
    const jobDesc = result.getResultJson().result;
    console.log('Position:', jobDesc.job_position);
    console.log('\nDescription:', jobDesc.job_short_description);
    console.log('\nRequirements:');
    jobDesc.job_requirements.forEach((req, i) => console.log(`${i + 1}. ${req}`));
  })
  .catch(error => console.error('Generation failed:', error));

Bulk Job Description Generation

const service = new SharpApiJobDescriptionService(process.env.SHARP_API_KEY);

const positions = [
  { title: 'Frontend Developer', skills: ['React', 'TypeScript', 'CSS'] },
  { title: 'Backend Developer', skills: ['Node.js', 'PostgreSQL', 'Docker'] },
  { title: 'Full Stack Developer', skills: ['JavaScript', 'MongoDB', 'Express'] }
];

async function generateMultipleDescriptions(positions) {
  const descriptions = [];

  for (const position of positions) {
    const params = new JobDescriptionParameters(
      position.title,
      'TechCorp',
      '2+ years',
      "Bachelor's Degree",
      'Full-time',
      position.skills,
      [],
      'United States',
      true,
      false,
      'Professional',
      null,
      'English'
    );

    const statusUrl = await service.generateJobDescription(params);
    const result = await service.fetchResults(statusUrl);
    descriptions.push(result.getResultJson().result);
  }

  return descriptions;
}

const allDescriptions = await generateMultipleDescriptions(positions);
console.log(`Generated ${allDescriptions.length} job descriptions`);

Customized Job Description with Context

const service = new SharpApiJobDescriptionService(process.env.SHARP_API_KEY);

const params = new JobDescriptionParameters(
  'DevOps Engineer',
  'CloudTech Solutions',
  '4+ years',
  "Bachelor's in Computer Science",
  'Full-time',
  ['Kubernetes', 'AWS', 'Terraform', 'CI/CD'],
  ['Prometheus', 'Grafana', 'Helm'],
  'Germany',
  true,
  true,
  'Professional',
  'Must have experience with financial services industry and German language skills',
  'English'
);

const statusUrl = await service.generateJobDescription(params);
const result = await service.fetchResults(statusUrl);
const jobDesc = result.getResultJson().result;

// Format for posting
console.log('='.repeat(60));
console.log(`${jobDesc.job_position} at ${jobDesc.company_name}`);
console.log('='.repeat(60));
console.log('\n' + jobDesc.job_short_description);
console.log('\n**Requirements:**');
jobDesc.job_requirements.forEach(req => console.log(`• ${req}`));
console.log('\n**Responsibilities:**');
jobDesc.job_responsibilities.forEach(resp => console.log(`• ${resp}`));

Use Cases

  • Job Postings: Create compelling job descriptions for job boards
  • Internal Recruitment: Generate consistent job descriptions for internal positions
  • Recruitment Agencies: Quickly create professional job specs for clients
  • Career Pages: Populate company career sites with well-written descriptions
  • ATS Integration: Generate descriptions for Applicant Tracking Systems
  • Job Description Templates: Create standardized templates for similar roles
  • Multi-language Hiring: Generate descriptions in multiple languages

API Endpoint

POST /hr/job_description

For detailed API specifications, refer to:


Related Packages


License

This project is licensed under the MIT License. See the LICENSE.md file for details.


Support


Powered by SharpAPI - AI-Powered API Workflow Automation