Claude-Thesis-v1

Claude-Thesis-v1 preview image

1 collaborator

Default-person Mike Sheerin (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 7.0.3 • Viewed 4 times • Downloaded 0 times • Run 0 times
Download the 'Claude-Thesis-v1' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

(a general understanding of what the model is trying to show or explain)

HOW IT WORKS

(what rules the agents use to create the overall behavior of the model)

HOW TO USE IT

(how to use the model, including a description of each of the items in the Interface tab)

THINGS TO NOTICE

(suggested things for the user to notice while running the model)

THINGS TO TRY

(suggested things for the user to try to do (move sliders, switches, etc.) with the model)

EXTENDING THE MODEL

(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)

NETLOGO FEATURES

(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)

RELATED MODELS

(models in the NetLogo Models Library and elsewhere which are of related interest)

CREDITS AND REFERENCES

(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [candidates candidate]
breed [employers employer]

candidates-own [
  skill-score
  narrative-score
  dossier-score
  employed?
  my-employer
  ai-assisted?
]

employers-own [
  hiring-regime
  jd-complexity
  workforce-quality
  vacancies
  bad-hire-count
  hire-count
]

globals [
  market-signal-gap
  narrative-firm-quality
  evidence-firm-quality
]

to setup
  clear-all

  create-candidates num-candidates [
    set shape "person"
    set skill-score     clamp (random-normal 0.5 0.18) 0 1
    set narrative-score clamp (
      skill-score * narrative-skill-correlation
      + random-normal 0 0.2
    ) 0 1
    set dossier-score   clamp (skill-score + random-normal 0 0.05) 0 1
    set employed?       false
    set my-employer     nobody
    set ai-assisted?    (random-float 1.0 < pct-ai-candidates / 100)
    set color           scale-color green skill-score 0 1
    setxy random-xcor random-ycor
  ]

  create-employers num-employers [
    set shape "house"
    set size  2
    set color gray
    set hiring-regime   random-float 1.0
    set jd-complexity   0.3
    set workforce-quality 0.5
    set vacancies       2 + random 4
    setxy random-xcor random-ycor
  ]

  reset-ticks
end 

to-report clamp [val low high]
  report max (list low (min (list high val)))
end 

to go
  if ticks >= max-ticks [ stop ]

  candidate-ai-inflate
  employer-ai-adapt
  run-hiring-round
  update-job-performance
  update-hiring-regime
  labour-market-churn
  update-globals

  tick
end 

to candidate-ai-inflate
  ask candidates with [not employed?] [
    if ai-assisted? [
      let inflation ai-inflation-rate * (1 - narrative-score) * random-float 1.0
      set narrative-score clamp (narrative-score + inflation) 0 1
    ]
    set narrative-score clamp (narrative-score + 0.002 * random-float 1.0) 0 1
    set color scale-color green skill-score 0 1
  ]
end 

to employer-ai-adapt
  let market-narrative mean [narrative-score] of candidates
  ask employers [
    let gap market-narrative - 0.5
    set jd-complexity clamp (jd-complexity + 0.01 * gap) 0.1 1.0
  ]
end 

to run-hiring-round
  ask employers [
    let open-slots vacancies - count candidates with [my-employer = myself]
    if open-slots > 0 [
      let pool candidates with [not employed?]
      if any? pool [
        let scored map [ c ->
          list ((selection-score c) + random-float 0.0001) c
        ] sort pool
        let ranked sort-by [[a b] -> first a > first b] scored
        let n min (list open-slots length ranked)
        foreach (sublist ranked 0 n) [ pair ->
          let c last pair
          ask c [
            set employed?   true
            set my-employer myself
          ]
          set hire-count hire-count + 1
        ]
      ]
    ]
  ]
end 

to-report selection-score [c]
  let narrative-signal [narrative-score] of c - (jd-complexity * 0.3)
  let evidence-signal  [dossier-score] of c
  report (hiring-regime * evidence-signal)
       + ((1 - hiring-regime) * narrative-signal)
       + random-normal 0 0.03
end 

to update-job-performance
  ask employers [
    let staff candidates with [my-employer = myself and employed?]
    if any? staff [
      set workforce-quality mean [skill-score] of staff
    ]
  ]
end 

to update-hiring-regime
  ask employers [
    let quality-gap workforce-quality - 0.5
    set hiring-regime clamp (hiring-regime + 0.02 * quality-gap) 0 1
    let neighbours employers in-radius 5
    if any? neighbours [
      let best max-one-of neighbours [workforce-quality]
      if [workforce-quality] of best > workforce-quality + 0.05 [
        set hiring-regime [hiring-regime] of best
      ]
    ]
    set color scale-color blue hiring-regime 0 1
  ]
end 

to labour-market-churn
  ask candidates with [employed?] [
    if random-float 1.0 < 0.02 [
      set employed?   false
      set my-employer nobody
    ]
  ]
  create-candidates churn-rate [
    set shape "person"
    set skill-score     clamp (random-normal 0.5 0.18) 0 1
    set narrative-score clamp (skill-score * narrative-skill-correlation
                               + random-normal 0 0.2) 0 1
    set dossier-score   clamp (skill-score + random-normal 0 0.05) 0 1
    set employed?       false
    set my-employer     nobody
    set ai-assisted?    (random-float 1.0 < pct-ai-candidates / 100)
    set color           scale-color green skill-score 0 1
    setxy random-xcor random-ycor
  ]
end 

to update-globals
  set market-signal-gap
    mean [narrative-score] of candidates - mean [skill-score] of candidates

  let n-firms employers with [hiring-regime < 0.4]
  let e-firms employers with [hiring-regime > 0.6]
  if any? n-firms [
    set narrative-firm-quality mean [workforce-quality] of n-firms ]
  if any? e-firms [
    set evidence-firm-quality mean [workforce-quality] of e-firms ]
end 

There is only one version of this model, created 29 days ago by Mike Sheerin.

Attached files

File Type Description Last updated
Claude-Thesis-v1.png preview Preview for 'Claude-Thesis-v1' 29 days ago, by Mike Sheerin Download

This model does not have any ancestors.

This model does not have any descendants.