New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@sharpapi/sharpapi-node-job-positions-database

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sharpapi/sharpapi-node-job-positions-database - npm Package Compare versions

Comparing version
1.0.1
to
1.0.2
+7
sharpapi-node-job-positions-database/CLAUDE.md
<claude-mem-context>
# Recent Activity
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
*No recent activity*
</claude-mem-context>
<claude-mem-context>
# Recent Activity
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
*No recent activity*
</claude-mem-context>
+1
-1
{
"name": "@sharpapi/sharpapi-node-job-positions-database",
"version": "1.0.1",
"version": "1.0.2",
"description": "SharpAPI.com Node.js SDK for Job Positions Database API",

@@ -5,0 +5,0 @@ "main": "src/index.js",

+38
-95

@@ -10,3 +10,3 @@ ![SharpAPI GitHub cover](https://sharpapi.com/sharpapi-github-php-bg.jpg "SharpAPI Node.js Client")

**SharpAPI Job Positions Database** provides access to a comprehensive database of professional job positions with categories, industries, levels, and related positions. Perfect for HR applications, job boards, and career platforms.
**SharpAPI Job Positions Database** provides access to a comprehensive database of job positions with detailed information about roles, responsibilities, and requirements. Perfect for HR tech applications and career platforms.

@@ -22,3 +22,6 @@ ---

5. [Examples](#examples)
6. [License](#license)
6. [Use Cases](#use-cases)
7. [API Endpoint](#api-endpoint)
8. [Related Packages](#related-packages)
9. [License](#license)

@@ -53,20 +56,16 @@ ---

const apiKey = process.env.SHARP_API_KEY;
const apiKey = process.env.SHARP_API_KEY; // Store your API key in environment variables
const service = new SharpApiJobPositionsDatabaseService(apiKey);
async function browseJobPositions() {
const text = 'Your content here...';
async function processText() {
try {
// Get list of all job positions
const positions = await service.getJobPositionsList();
console.log(`Found ${positions.length} job positions`);
// Submit processing job
const statusUrl = await service.processContent(text);
console.log('Job submitted. Status URL:', statusUrl);
// Search for specific positions
const results = await service.searchJobPositions('Software Engineer', {
limit: 10,
level: 'senior'
});
results.forEach(position => {
console.log(`${position.title} - ${position.category}`);
});
// Fetch results (polls automatically until complete)
const result = await service.fetchResults(statusUrl);
console.log('Result:', result.getResultJson());
} catch (error) {

@@ -77,3 +76,3 @@ console.error('Error:', error.message);

browseJobPositions();
processText();
```

@@ -87,36 +86,8 @@

#### `getJobPositionsList(): Promise<object>`
Get complete list of all available job positions.
This utility provides synchronous data access. Refer to the [Postman Documentation](https://documenter.getpostman.com/view/31106842/2sBXVeGsVm) for query parameters and response format.
#### `getJobPositionDetails(uuid: string): Promise<object>`
Get detailed information about a specific job position.
### Response Format
#### `searchJobPositions(query: string, options?:object): Promise<object>`
Search job positions by title or keyword with filters.
Returns JSON data immediately (synchronous operation).
**Options:**
- `limit` (number): Maximum results
- `offset` (number): Pagination offset
- `category` (string): Filter by category
- `industry` (string): Filter by industry
- `level` (string): Filter by job level
#### `getJobCategories(): Promise<object>`
Get all job categories.
#### `getIndustries(): Promise<object>`
Get all industries.
#### `getJobLevels(): Promise<object>`
Get all job levels.
#### `getRelatedJobPositions(jobPositionId: string, options?: object): Promise<object>`
Get related job positions.
#### `validateJobPosition(jobPositionTitle: string): Promise<object>`
Validate if a job position exists.
#### `getRecommendedSkills(jobPositionId: string, options?: object): Promise<object>`
Get recommended skills for a job position.
---

@@ -126,48 +97,19 @@

### Job Board Integration
### Basic Example
```javascript
const { SharpApiJobPositionsDatabaseService } = require('@sharpapi/sharpapi-node-job-positions-database');
const service = new SharpApiJobPositionsDatabaseService(process.env.SHARP_API_KEY);
async function buildJobFilters() {
const [categories, industries, levels] = await Promise.all([
service.getJobCategories(),
service.getIndustries(),
service.getJobLevels()
]);
// Customize polling behavior if needed
service.setApiJobStatusPollingInterval(10); // Poll every 10 seconds
service.setApiJobStatusPollingWait(180); // Wait up to 3 minutes
return {
categories: categories.map(c => ({ id: c.id, name: c.name })),
industries: industries.map(i => ({ id: i.id, name: i.name })),
levels: levels.map(l => ({ id: l.id, name: l.name }))
};
}
const filters = await buildJobFilters();
console.log('Available Filters:', filters);
// Use the service
// ... (implementation depends on specific service)
```
### Career Path Recommendations
For more examples, visit the [Product Page](https://sharpapi.com/en/catalog/utility/job-positions-api).
```javascript
const service = new SharpApiJobPositionsDatabaseService(process.env.SHARP_API_KEY);
async function suggestCareerPath(currentPosition) {
const related = await service.getRelatedJobPositions(currentPosition, {
limit: 5
});
console.log('Career Path Suggestions:');
related.forEach((position, index) => {
console.log(`${index + 1}. ${position.title}`);
console.log(` Similarity: ${position.weight}/10`);
console.log(` Category: ${position.category}`);
});
return related;
}
await suggestCareerPath('software-engineer-id');
```
---

@@ -177,8 +119,8 @@

- **Job Boards**: Standardized job position listings
- **ATS Systems**: Job position validation
- **Career Platforms**: Career path recommendations
- **HR Applications**: Position database and management
- **Recruitment Tools**: Position categorization
- **Skills Mapping**: Position-to-skills relationships
- **Job Boards**: Populate job listings with standardized position data
- **Career Planning**: Help users explore career options
- **HR Systems**: Integrate standardized job titles and descriptions
- **Recruitment Tools**: Enable consistent job position naming
- **Talent Management**: Structure organizational roles and hierarchies
- **Skills Mapping**: Link positions to required skills and qualifications

@@ -192,3 +134,3 @@ ---

For detailed API specifications, refer to:
- [Postman Documentation](https://documenter.getpostman.com/view/31106842/2sBXVeGsW5)
- [Postman Documentation](https://documenter.getpostman.com/view/31106842/2sBXVeGsVm)
- [Product Page](https://sharpapi.com/en/catalog/utility/job-positions-api)

@@ -200,4 +142,5 @@

- [@sharpapi/sharpapi-node-related-job-positions](https://www.npmjs.com/package/@sharpapi/sharpapi-node-related-job-positions) - AI-powered related positions
- [@sharpapi/sharpapi-node-skills-database](https://www.npmjs.com/package/@sharpapi/sharpapi-node-skills-database) - Skills database
- [@sharpapi/sharpapi-node-related-job-positions](https://www.npmjs.com/package/@sharpapi/sharpapi-node-related-job-positions)
- [@sharpapi/sharpapi-node-job-description](https://www.npmjs.com/package/@sharpapi/sharpapi-node-job-description)
- [@sharpapi/sharpapi-node-skills-database](https://www.npmjs.com/package/@sharpapi/sharpapi-node-skills-database)
- [@sharpapi/sharpapi-node-client](https://www.npmjs.com/package/@sharpapi/sharpapi-node-client) - Full SharpAPI SDK

@@ -204,0 +147,0 @@

@@ -5,2 +5,5 @@ const { SharpApiCoreService } = require('@sharpapi/sharpapi-node-core');

* Service for accessing Job Positions Database API using SharpAPI.com
*
* Provides access to a comprehensive database of job positions with detailed information.
* All endpoints are synchronous and return immediate responses.
*/

@@ -14,170 +17,43 @@ class SharpApiJobPositionsDatabaseService extends SharpApiCoreService {

constructor(apiKey, apiBaseUrl = 'https://sharpapi.com/api/v1') {
super(apiKey, apiBaseUrl, '@sharpapi/sharpapi-node-job-positions-database/1.0.1');
super(apiKey, apiBaseUrl, '@sharpapi/sharpapi-node-job-positions-database/1.0.2');
}
/**
* Get list of all available job positions
* Get list of all available job positions (synchronous endpoint)
*
* @returns {Promise<object>} - List of job positions
* Retrieves a paginated list of job positions with optional filtering.
*
* @param {object} [options={}] - Query options
* @param {number} [options.per_page] - Items per page (default 10, min 0, max 100)
* @param {boolean} [options.include_related] - Include related job positions with weights
* @param {string} [options.name] - Filter by job position name
* @returns {Promise<object>} - Paginated list of job positions with data, links, and meta
*
* @example
* const positions = await service.getJobPositionsList({ per_page: 50, name: 'Developer' });
* console.log('Total positions:', positions.meta.total);
* positions.data.forEach(pos => console.log(pos.name));
*/
async getJobPositionsList() {
const response = await this.makeRequest('GET', '/utilities/job_positions_list');
return response.data;
async getJobPositionsList(options = {}) {
const response = await this.makeRequest('GET', '/utilities/job_positions_list', options);
return response;
}
/**
* Get detailed information about a specific job position by UUID
* Get detailed information about a specific job position by UUID (synchronous endpoint)
*
* @param {string} uuid - The UUID of the job position
* @returns {Promise<object>} - Job position information
* @returns {Promise<object>} - Detailed job position information including name, description, related positions, etc.
*
* @example
* const position = await service.getJobPositionDetails('1ef266de-5a6c-67d6-86a1-06bb2780ed98');
* console.log('Position:', position.name);
* console.log('Description:', position.description);
*/
async getJobPositionDetails(uuid) {
const response = await this.makeRequest('GET', `/utilities/job_positions_details/${uuid}`);
return response.data;
return response;
}
/**
* Get information about a specific job position by ID (alias for getJobPositionDetails)
*
* @param {string} jobPositionId - The ID of the job position
* @returns {Promise<object>} - Job position information
*/
async getJobPositionById(jobPositionId) {
return this.getJobPositionDetails(jobPositionId);
}
/**
* Search for job positions by title or keyword
*
* @param {string} query - The search query
* @param {object} [options] - Additional options for search
* @param {number} [options.limit=20] - Maximum number of results to return
* @param {number} [options.offset=0] - Number of results to skip
* @param {string} [options.category] - Filter by job category
* @param {string} [options.industry] - Filter by industry
* @param {string} [options.level] - Filter by job level (entry, mid, senior, etc.)
* @returns {Promise<object>} - Search results
*/
async searchJobPositions(query, options = {}) {
const data = { query, ...options };
const response = await this.makeRequest('GET', '/utility/job-positions/search', data);
return response.data;
}
/**
* Get all job categories
*
* @returns {Promise<object>} - List of job categories
*/
async getJobCategories() {
const response = await this.makeRequest('GET', '/utility/job-positions/categories');
return response.data;
}
/**
* Get all industries
*
* @returns {Promise<object>} - List of industries
*/
async getIndustries() {
const response = await this.makeRequest('GET', '/utility/job-positions/industries');
return response.data;
}
/**
* Get all job levels
*
* @returns {Promise<object>} - List of job levels
*/
async getJobLevels() {
const response = await this.makeRequest('GET', '/utility/job-positions/levels');
return response.data;
}
/**
* Get related job positions for a specific job position
*
* @param {string} jobPositionId - The ID of the job position
* @param {object} [options] - Additional options
* @param {number} [options.limit=10] - Maximum number of related job positions to return
* @returns {Promise<object>} - Related job positions
*/
async getRelatedJobPositions(jobPositionId, options = {}) {
const data = { ...options };
const response = await this.makeRequest('GET', `/utility/job-positions/${jobPositionId}/related`, data);
return response.data;
}
/**
* Get job positions by category
*
* @param {string} categoryId - The ID of the category
* @param {object} [options] - Additional options
* @param {number} [options.limit=20] - Maximum number of job positions to return
* @param {number} [options.offset=0] - Number of job positions to skip
* @returns {Promise<object>} - Job positions in the category
*/
async getJobPositionsByCategory(categoryId, options = {}) {
const data = { ...options };
const response = await this.makeRequest('GET', `/utility/job-positions/category/${categoryId}`, data);
return response.data;
}
/**
* Get job positions by industry
*
* @param {string} industryId - The ID of the industry
* @param {object} [options] - Additional options
* @param {number} [options.limit=20] - Maximum number of job positions to return
* @param {number} [options.offset=0] - Number of job positions to skip
* @returns {Promise<object>} - Job positions in the industry
*/
async getJobPositionsByIndustry(industryId, options = {}) {
const data = { ...options };
const response = await this.makeRequest('GET', `/utility/job-positions/industry/${industryId}`, data);
return response.data;
}
/**
* Get job positions by level
*
* @param {string} levelId - The ID of the level
* @param {object} [options] - Additional options
* @param {number} [options.limit=20] - Maximum number of job positions to return
* @param {number} [options.offset=0] - Number of job positions to skip
* @returns {Promise<object>} - Job positions at the level
*/
async getJobPositionsByLevel(levelId, options = {}) {
const data = { ...options };
const response = await this.makeRequest('GET', `/utility/job-positions/level/${levelId}`, data);
return response.data;
}
/**
* Validate if a job position exists in the database
*
* @param {string} jobPositionTitle - The title of the job position to validate
* @returns {Promise<object>} - Validation result
*/
async validateJobPosition(jobPositionTitle) {
const data = { job_position: jobPositionTitle };
const response = await this.makeRequest('POST', '/utility/job-positions/validate', data);
return response.data;
}
/**
* Get recommended skills for a job position
*
* @param {string} jobPositionId - The ID of the job position
* @param {object} [options] - Additional options
* @param {number} [options.limit=20] - Maximum number of skills to return
* @returns {Promise<object>} - Recommended skills
*/
async getRecommendedSkills(jobPositionId, options = {}) {
const data = { ...options };
const response = await this.makeRequest('GET', `/utility/job-positions/${jobPositionId}/skills`, data);
return response.data;
}
}
module.exports = { SharpApiJobPositionsDatabaseService };