@sharpapi/sharpapi-node-job-positions-database
Advanced tools
| <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 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 }; |
6
50%8471
-37.12%56
-66.86%156
-26.76%