Trendsic Platform Service

<back to all web services

StaffMatchRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/staff/match
namespace CRM.AgencyPlatform.API.Internal

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type StaffSkillChip() = 
        member val Name:String = null with get,set
        member val Matched:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type StaffCandidate() = 
        member val ContactID:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Kind:String = null with get,set
        member val Rate:Decimal = new Decimal() with get,set
        member val Rating:Decimal = new Decimal() with get,set
        member val RatingCount:Int32 = new Int32() with get,set
        member val Base:String = null with get,set
        member val DistanceMi:Int32 = new Int32() with get,set
        member val MatchCount:Int32 = new Int32() with get,set
        member val TotalRequired:Int32 = new Int32() with get,set
        member val Skills:ResizeArray<StaffSkillChip> = new ResizeArray<StaffSkillChip>() with get,set
        member val Conflict:Boolean = new Boolean() with get,set
        member val BusyUntil:String = null with get,set
        member val BusyJob:String = null with get,set
        member val Phone:String = null with get,set
        member val Email:String = null with get,set
        member val Sms:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type StaffPosition() = 
        member val PlaceholderContactID:Int32 = new Int32() with get,set
        member val JobID:Int32 = new Int32() with get,set
        member val ProjectID:Int32 = new Int32() with get,set
        member val JobName:String = null with get,set
        member val PositionTag:String = null with get,set
        member val Skills:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val BudgetedHours:Double = new Double() with get,set
        member val TargetRate:Decimal = new Decimal() with get,set
        member val StartDate:String = null with get,set
        member val EndDate:String = null with get,set
        member val WindowText:String = null with get,set
        member val ResponsesActionable:Int32 = new Int32() with get,set
        member val PostingStatus:String = null with get,set
        member val ApplicantTotal:Int32 = new Int32() with get,set
        member val ApplicantStrong:Int32 = new Int32() with get,set
        member val Filled:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type StaffMatchResponse() = 
        member val ResponseStatus:ResponseStatus = null with get,set
        member val Candidates:ResizeArray<StaffCandidate> = new ResizeArray<StaffCandidate>() with get,set
        member val Position:StaffPosition = null with get,set

    [<AllowNullLiteral>]
    type StaffMatchRequest() = 
        member val PlaceholderContactID:Int32 = new Int32() with get,set
        member val JobID:Int32 = new Int32() with get,set

F# StaffMatchRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/staff/match HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	Candidates: 
	[
		{
			ContactID: 0,
			Name: String,
			Kind: String,
			Rate: 0,
			Rating: 0,
			RatingCount: 0,
			Base: String,
			DistanceMi: 0,
			MatchCount: 0,
			TotalRequired: 0,
			Skills: 
			[
				{
					Name: String,
					Matched: False
				}
			],
			Conflict: False,
			BusyUntil: String,
			BusyJob: String,
			Phone: String,
			Email: String,
			Sms: False
		}
	],
	Position: 
	{
		PlaceholderContactID: 0,
		JobID: 0,
		ProjectID: 0,
		JobName: String,
		PositionTag: String,
		Skills: 
		[
			String
		],
		BudgetedHours: 0,
		TargetRate: 0,
		StartDate: String,
		EndDate: String,
		WindowText: String,
		ResponsesActionable: 0,
		PostingStatus: String,
		ApplicantTotal: 0,
		ApplicantStrong: 0,
		Filled: False
	}
}